:root{--bg:#f3f6f9;--panel:#fff;--ink:#17202b;--muted:#667385;--line:#dfe5eb;--nav:#081d33;--accent:#ef7d00;--blue:#006cc5;--success:#0b8a57;--danger:#b42318}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body,Inter),Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--blue);text-decoration:none}.topbar{height:68px;background:var(--nav);color:#fff;display:flex;align-items:center;padding:0 32px;gap:36px;box-shadow:0 2px 12px #0002}.brand{font-size:23px;font-weight:800;color:#fff;letter-spacing:-.5px}.brand span,.login-brand span{color:var(--accent)}.topbar nav{display:flex;gap:22px;flex:1}.topbar nav a{color:#dfe8f1;font-weight:600}.userbox{display:flex;align-items:center;gap:18px;font-size:14px}.userbox a{color:#fff}.page{padding:32px;max-width:1500px;margin:auto}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#071b30,#0f416c 60%,#ef7d00)}.login-card{width:min(420px,92vw);background:#fff;padding:42px;border-radius:18px;box-shadow:0 28px 80px #0005}.login-brand{font-size:28px;font-weight:900;margin-bottom:28px}.login-card h1{margin:0 0 6px}.muted{color:var(--muted)}.tiny{font-size:12px;color:#8692a2;margin-top:24px}.stack{display:grid;gap:16px;margin-top:24px}label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#465467}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #ccd5de;border-radius:8px;background:#fff;font:inherit;color:var(--ink)}button,.button{border:0;border-radius:8px;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--blue);color:#fff}.secondary{background:#eaf0f5;color:#1d3449}.alert{padding:12px 14px;border-radius:8px;margin:16px 0}.error{background:#fff0ee;color:var(--danger);border:1px solid #ffd1cc}.page-heading,.report-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading h1,.report-heading h1{margin:3px 0 0;font-size:30px}.eyebrow{font-size:11px;letter-spacing:1.6px;color:var(--blue);font-weight:900;margin:0}.client-section{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:24px}.client-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}.client-heading img{max-height:46px;max-width:180px;object-fit:contain}.client-heading h2,.client-heading p{margin:0}.client-heading p{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.report-card{display:flex;gap:16px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);transition:.15s}.report-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #16344c12;border-color:#b9cbd9}.report-card h3{margin:0 0 6px}.report-card p{margin:0 0 13px;color:var(--muted);font-size:14px}.report-card span{font-weight:700;color:var(--blue);font-size:13px}.report-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:#eaf4fd;color:var(--blue);font-size:22px}.empty{padding:40px;background:#fff;border:1px dashed #bdc9d4;border-radius:12px;text-align:center;color:var(--muted)}.client-inline{display:flex;align-items:center;gap:16px}.client-inline img{max-width:180px;max-height:52px}.client-inline p,.client-inline h1{margin:0}.embed-wrap{height:calc(100vh - 150px);min-height:620px;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.embed-wrap iframe{width:100%;height:100%;border:0}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:16px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.metric strong{display:block;font-size:30px}.metric span{color:var(--muted);font-size:13px}.admin-cards{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #edf1f4;font-size:14px}th{background:#f7f9fb;color:#526172;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.pill{display:inline-block;padding:4px 8px;border-radius:99px;font-size:12px;font-weight:700}.pill.ok{background:#e6f7ef;color:var(--success)}.pill.off{background:#f1f3f5;color:#6d7784}.mono{font-family:Consolas,monospace;font-size:12px}.form-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;max-width:900px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span2{grid-column:1/-1}.form-actions{display:flex;gap:10px;margin-top:8px}fieldset{border:1px solid var(--line);border-radius:8px;padding:14px}legend{font-weight:700;color:#465467}.check{display:flex;align-items:center;gap:8px;margin:7px 0}.check input{width:auto}.tabs{display:flex;gap:8px;margin:0 0 14px}.tabs a{padding:8px 12px;background:#eaf0f5;border-radius:7px;color:#42566a}.tabs a.active{background:var(--blue);color:#fff}.permission-list{display:grid;gap:2px}.permission-row{display:grid;grid-template-columns:1fr 220px;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid #edf1f4}.permission-row small{display:block;color:var(--muted);margin-top:4px}@media(max-width:760px){.topbar{padding:0 16px}.topbar nav{display:none}.page{padding:18px}.grid-form{grid-template-columns:1fr}.span2{grid-column:auto}.metric-grid{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr}.embed-wrap{height:78vh;min-height:500px}}

/* 2.7.25 - Portales por cliente + administracion Jackpots Systems */
:root{--brand-primary:#081d33;--brand-secondary:#006cc5;--brand-accent:#ef7d00}
.topbar{background:var(--brand-primary)}
.topbar nav a:hover{color:#fff}
.eyebrow{color:var(--brand-secondary)}
.primary,.brand-button{background:var(--brand-secondary);color:#fff}
.report-card span{color:var(--brand-secondary)}
.report-icon{background:color-mix(in srgb,var(--brand-secondary) 10%,white);color:var(--brand-secondary)}
.tabs a.active{background:var(--brand-secondary)}
.brand-image{display:flex;align-items:center;min-width:150px;max-width:230px;height:46px}
.brand-image img{display:block;max-height:40px;max-width:220px;object-fit:contain}
.brand-image span{font-size:20px;font-weight:800;color:#fff}
.mode-client .topbar{border-bottom:3px solid var(--brand-accent)}
.login-shell{display:block;padding:0;background:#eef2f6}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(320px,46%) 1fr;background:#fff}
.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:64px;background:linear-gradient(145deg,var(--brand-primary),var(--brand-secondary));color:#fff;overflow:hidden}
.login-brand-panel:after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;right:-140px;bottom:-120px;background:var(--brand-accent);opacity:.25}
.admin-brand-panel{background:linear-gradient(145deg,var(--brand-primary),#102f4d)}
.client-logo-box{position:relative;z-index:1;width:min(360px,90%);min-height:112px;padding:24px;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 45px #0002}
.client-logo-box img{max-height:82px;max-width:100%;object-fit:contain}
.client-name-fallback{font-size:30px;font-weight:900;color:var(--brand-primary);text-align:center}
.login-brand-copy{position:relative;z-index:1;max-width:520px;margin-top:48px}
.login-brand-copy h1{font-size:42px;line-height:1.05;margin:8px 0 12px}
.login-brand-copy p{font-size:17px;opacity:.9}.eyebrow.light{color:#fff;opacity:.75;font-size:11px}
.login-form-panel{display:grid;place-items:center;padding:48px;background:#fff}
.login-card-flat{width:min(440px,100%);box-shadow:none;border:0;padding:24px}
.login-card-flat h2{font-size:30px;margin:0 0 8px}
.login-card-flat input{padding:13px 14px;border-radius:9px}
.login-card-flat button{margin-top:4px;padding:13px 16px}
.powered-login{margin-top:38px;padding-top:22px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}
.powered-login img{max-width:130px;max-height:34px;object-fit:contain}
.powered-login strong{font-size:15px;color:var(--ink)}
.powered-footer{max-width:1500px;margin:0 auto 24px;padding:0 32px;display:flex;justify-content:flex-end;align-items:center;gap:9px;color:var(--muted);font-size:11px}
.powered-footer img{max-height:24px;max-width:110px;object-fit:contain}
.client-page-heading{align-items:center}.page-client-logo{max-height:68px;max-width:240px;object-fit:contain}.client-section-flat{padding:0;background:transparent;border:0}
.table-logo{max-height:36px;max-width:150px;object-fit:contain}.actions-cell{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.actions-cell .button{font-size:12px;padding:8px 10px}
.branding-preview{border:1px solid var(--line);border-radius:10px;min-height:100px;display:flex;align-items:center;gap:20px;padding:20px;overflow:hidden;position:relative}.branding-preview .preview-strip{position:absolute;left:0;top:0;bottom:0;width:9px;background:linear-gradient(var(--preview-primary),var(--preview-secondary),var(--preview-accent))}.branding-preview img{max-height:52px;max-width:190px;object-fit:contain}.branding-preview strong{font-size:20px}
@media(max-width:900px){.login-layout{grid-template-columns:1fr}.login-brand-panel{min-height:300px;padding:36px}.login-brand-copy{margin-top:30px}.login-brand-copy h1{font-size:34px}.client-logo-box{min-height:90px;width:min(300px,90%)}.login-form-panel{padding:28px}.powered-footer{padding:0 18px}.brand-image{min-width:90px;max-width:150px}.brand-image img{max-width:145px}}

/* 2.7.26 - Tipografia por cliente, fondo login y Power BI App owns data */
h1,h2,h3,.brand,.client-name-fallback,.branding-preview strong{font-family:var(--font-title,Montserrat),sans-serif}
.eyebrow,button,.button,.topbar nav,.report-card span,.pill{font-family:var(--font-accent,Inter),sans-serif}
.login-brand-panel:before{content:"";position:absolute;inset:0;background-image:var(--login-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:var(--login-bg-opacity,.35);z-index:0;pointer-events:none}
.login-brand-panel:after{z-index:0}.client-logo-box,.login-brand-copy{z-index:1}
.branding-preview strong{display:block}.branding-preview small{display:block;margin-top:5px;color:var(--muted);font-family:var(--font-body,Inter),sans-serif}.branding-help{align-self:end;padding-bottom:10px;font-size:12px}
.embed-status{margin:-12px 0 10px;padding:8px 12px;border-radius:8px;background:#eef3f7;color:var(--muted);font-size:12px}.embed-status.ok{background:#e6f7ef;color:var(--success)}.embed-status.error{background:#fff0ee;color:var(--danger)}
.embed-wrap{position:relative}.embed-wrap>iframe{width:100%;height:100%;border:0}

/* 2.7.27 - administracion consolidada y permisos por usuario */
.wide-form{max-width:1180px}.section-title{font-size:18px;margin:8px 0 0;padding-top:12px;border-top:1px solid var(--line)}.section-title:first-child{border-top:0;padding-top:0}.inline-form{display:inline-flex;margin:0}.danger-soft{background:#fff0ee;color:var(--danger)}.success-soft{background:#e6f7ef;color:var(--success)}.info-box{padding:12px 14px;border-radius:8px;background:#eef6fc;color:#365267;border:1px solid #d9e9f5}.check-grid{display:flex;gap:20px;flex-wrap:wrap}.check-boxed{border:1px solid var(--line);border-radius:8px;padding:11px 12px;align-self:end}.editor-section{padding:4px 0 22px;border-bottom:1px solid var(--line);margin-bottom:22px}.editor-section:last-of-type{border-bottom:0}.editor-section h2{margin:0 0 8px;font-size:21px}.client-permission-card{border:1px solid var(--line);border-radius:10px;margin:12px 0;background:#fbfcfd}.client-permission-card summary{padding:14px 16px;cursor:pointer;list-style:none}.client-permission-card summary::-webkit-details-marker{display:none}.summary-check{display:inline-flex;margin:0;cursor:pointer}.client-permission-body{padding:0 16px 18px}.permission-columns{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-top:16px}.strong-check{font-weight:800;border-bottom:1px solid #edf1f4;padding-bottom:8px}.subchecks{max-height:210px;overflow:auto;padding-top:4px}.disabled-subchecks{opacity:.42}.th-filter{margin-top:7px;padding:6px 7px;font-size:11px;min-width:105px;text-transform:none;letter-spacing:0}.permission-summary{max-width:520px;white-space:normal;line-height:1.35}.actions-cell form button{font-size:12px;padding:8px 10px}.readonly-note{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.permission-columns{grid-template-columns:1fr}.wide-form{max-width:none}}
.button.disabled,button.disabled{opacity:.48;cursor:not-allowed;pointer-events:none;filter:grayscale(.15)}


/* 3.1.2 - Administrador de empresa + viewport login + Power BI 16:9 full width */
html,body{width:100%;min-height:100%;overflow-x:hidden}
.login-shell{width:100vw!important;max-width:none!important;margin:0!important;padding:0!important;min-height:100vh;min-height:100dvh}
.login-layout{width:100vw!important;max-width:none!important;margin:0!important;min-height:100vh;min-height:100dvh}
.company-admin-callout{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:24px}
.company-admin-callout h2{margin:2px 0 5px;font-size:20px}.company-admin-callout p{margin:0}.company-admin-icon{width:48px;height:48px}.company-admin-callout .button{white-space:nowrap}
@media(max-width:760px){.company-admin-callout{grid-template-columns:auto 1fr}.company-admin-callout .button{grid-column:1/-1;width:100%}}

/* Informe Power BI: el lienzo 1920x1080 usa todo el ancho disponible. */
.page:has(#powerbi-container){width:100%!important;max-width:none!important;margin:0!important;padding-left:0!important;padding-right:0!important}
.page:has(#powerbi-container) .report-heading,.page:has(#powerbi-container) .embed-status{margin-left:16px;margin-right:16px}
.page:has(#powerbi-container) .embed-wrap{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;border-left:0;border-right:0;border-radius:0;height:auto!important;min-height:0!important;aspect-ratio:16/9}

/* 3.1.3 - Previsión E-S mensual */
.admin-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.admin-option-card{display:flex;gap:18px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:.15s}.admin-option-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #16344c12;border-color:#b9cbd9}.admin-option-card h2{margin:0 0 7px}.admin-option-card p{margin:0 0 10px;color:var(--muted)}.admin-option-card strong{display:block;margin-bottom:10px}.admin-option-card span{font-weight:800;color:var(--brand-secondary)}.forecast-year-list{display:flex;gap:10px;flex-wrap:wrap}.forecast-year-list a{display:grid;gap:3px;min-width:190px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}.forecast-year-list span{font-size:12px;color:var(--muted)}.forecast-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.forecast-card{max-width:none}.forecast-card h2{margin:4px 0 8px}.compact-stack{gap:12px}.forecast-quick{display:flex;gap:8px;flex-wrap:wrap}.forecast-quick button{padding:7px 11px;background:#eaf0f5;color:#344b60}.forecast-download{margin:10px 0 4px}.success-alert{background:#e6f7ef;color:var(--success);border:1px solid #bce8d2}.forecast-heading{margin-bottom:16px;align-items:end}.forecast-heading h2{font-size:28px;margin:2px 0}.forecast-heading form{min-width:150px}.forecast-table-wrap{max-height:520px}.forecast-table{min-width:1250px}.forecast-table th:first-child,.forecast-table td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:220px}.forecast-table th:first-child{background:#f7f9fb;z-index:2}.forecast-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.forecast-status{padding:22px}
@media(max-width:900px){.admin-option-grid,.forecast-mode-grid{grid-template-columns:1fr}.forecast-heading{align-items:start;flex-direction:column}.forecast-heading form{width:100%}}
.year-jump{display:flex;align-items:end;gap:8px}.year-jump label{min-width:120px}.year-jump .button{height:40px}

/* Jackpot BI 3.1.6 - Proyeccion Automatica IA hasta diciembre */
.planning-mode-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:20px;margin-bottom:24px;align-items:start}.objective-group{max-width:none;padding:22px}.objective-group-heading{margin-bottom:18px}.objective-group-heading h2{margin:4px 0 8px}.objective-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.objective-option{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.objective-option h3{margin:4px 0 8px;font-size:20px}.projection-card{border-top:4px solid var(--brand-secondary);height:100%}.projection-rules{display:grid;gap:7px;padding:12px 14px;margin:12px 0;background:#f5f8fb;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:13px}.projection-rules strong{color:var(--ink)}.projection-status{margin-top:24px}.projection-table{min-width:1100px}.projection-base{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}.planning-powerbi-note{display:flex;gap:12px;align-items:center;margin-top:18px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;color:var(--muted);font-size:13px}.planning-powerbi-note strong{color:var(--ink)}.planning-powerbi-note code{color:var(--brand-secondary);font-weight:700}
@media(max-width:1180px){.planning-mode-grid{grid-template-columns:1fr}.objective-options-grid{grid-template-columns:1fr 1fr}.projection-card{height:auto}}@media(max-width:760px){.objective-options-grid{grid-template-columns:1fr}.objective-group{padding:18px}.planning-powerbi-note{align-items:flex-start;flex-direction:column}}


/* Jackpot BI 3.2.2 - frontend responsive + iconos multicolor */
.alert.success{background:#e6f7ef;color:var(--success);border:1px solid #bce8d2}
.bulk-report-assignment{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bulk-report-assignment p{margin:0;max-width:620px}
.bulk-report-assignment button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.25)}
.platform-card-icon{width:64px!important;height:64px!important;min-width:64px;border-radius:16px!important;background:linear-gradient(145deg,#fff,#eef6fc)!important;border:1px solid #dce9f3;box-shadow:0 8px 18px #0b355512}
.platform-card-icon svg{width:46px;height:46px;overflow:visible}
.platform-card-icon .ico-blue{fill:#0b76d1}.platform-card-icon .ico-blue-soft{fill:#7fc5f3}.platform-card-icon .ico-orange{fill:#f5a623}.platform-card-icon .ico-green{fill:#67b96f}.platform-card-icon .ico-red{fill:#e84455}.platform-card-icon .ico-paper{fill:#edf3f8;stroke:#9eb7c9;stroke-width:2}.platform-card-icon .ico-line{fill:none;stroke:#294d70;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.admin-cards .report-card{align-items:center;min-height:126px}.admin-cards .report-card h3{font-size:20px}
.mobile-nav-toggle{display:none;border:1px solid #ffffff35;background:#ffffff12;color:#fff;width:42px;height:42px;padding:0;font-size:22px;border-radius:9px}

@media(max-width:1100px){
  .page{max-width:none;width:100%;padding:24px 20px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-cards{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-heading,.report-heading{gap:16px}
}

@media(max-width:768px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .topbar{height:auto;min-height:64px;padding:9px 12px;gap:10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}
  .brand-image{min-width:0!important;max-width:145px!important;height:44px}.brand-image img{max-width:140px!important;max-height:38px!important}
  .mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;grid-column:2}
  .userbox{grid-column:3;gap:10px;font-size:12px;white-space:nowrap}.userbox strong{max-width:90px;overflow:hidden;text-overflow:ellipsis}
  .topbar nav{display:none!important;grid-column:1/-1;order:4;width:100%;flex-direction:column;gap:0;padding:7px 0 2px;border-top:1px solid #ffffff22}
  .topbar.nav-open nav{display:flex!important}.topbar nav a{padding:11px 8px;border-bottom:1px solid #ffffff14}
  .page{padding:16px 12px!important;max-width:100%!important}
  .page-heading,.report-heading{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-heading h1,.report-heading h1{font-size:25px;line-height:1.12;overflow-wrap:anywhere}
  .client-page-heading{position:relative}.page-client-logo{max-height:50px;max-width:160px;align-self:flex-start}
  .cards{grid-template-columns:1fr!important;gap:12px}.report-card{padding:16px;gap:13px}.report-card h3{font-size:18px}.report-card p{font-size:13px}
  .report-icon{width:50px;height:50px;min-width:50px;font-size:24px}.platform-card-icon{width:58px!important;height:58px!important;min-width:58px}.platform-card-icon svg{width:42px;height:42px}
  .company-admin-callout{grid-template-columns:1fr!important;padding:16px}.company-admin-callout .report-icon{margin-bottom:0}.company-admin-callout .button{grid-column:auto!important;width:100%}
  .admin-option-grid,.metric-grid,.forecast-mode-grid,.planning-mode-grid,.objective-options-grid{grid-template-columns:1fr!important}.admin-option-card{padding:18px}
  .client-section{padding:16px;margin-bottom:16px}.form-card,.wide-form{width:100%;max-width:none;padding:16px}.grid-form{grid-template-columns:1fr}.span2{grid-column:auto}.form-actions{flex-direction:column}.form-actions>*{width:100%}
  .permission-columns{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr}.bulk-report-assignment{align-items:stretch}.bulk-report-assignment button{width:100%}
  .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:720px}th,td{padding:10px 11px;font-size:12px}
  .forecast-table,.projection-table{min-width:1050px}.forecast-table th:first-child,.forecast-table td:first-child{min-width:150px}
  .powered-footer{max-width:none;padding:0 14px;margin:14px auto 18px}.powered-footer img{max-width:92px}
  .client-inline{width:100%;align-items:flex-start}.client-inline img{max-width:120px;max-height:44px}.client-inline h1{font-size:24px}
  .page:has(#powerbi-container){padding:0!important}.page:has(#powerbi-container) .report-heading{padding:12px 14px;margin:0!important}.page:has(#powerbi-container) .embed-status{margin:0 12px 10px!important}.page:has(#powerbi-container) .embed-wrap{aspect-ratio:auto!important;height:calc(100dvh - 150px)!important;min-height:560px!important;width:100%!important;border-radius:0!important}
  .login-layout{grid-template-columns:1fr!important;min-height:100dvh!important}.login-brand-panel{min-height:0!important;padding:18px!important}.login-brand-copy{display:none}.client-logo-box{width:min(230px,100%)!important;min-height:70px!important;padding:10px 14px!important;border-radius:12px!important}.client-logo-box img{max-height:52px!important}.login-form-panel{padding:18px 14px!important;place-items:start stretch!important}.login-card-flat{width:100%!important;padding:14px 2px!important}.login-card-flat h2{font-size:25px}
}

@media(max-width:420px){
  .topbar{grid-template-columns:minmax(0,1fr) auto}.mobile-nav-toggle{grid-column:2}.userbox{grid-column:1/-1;justify-self:end;margin-top:-2px}.topbar nav{grid-column:1/-1}
  .page{padding:14px 10px!important}.page-heading h1,.report-heading h1{font-size:23px}.eyebrow{font-size:10px}.page-client-logo{max-width:135px}
  .report-card{padding:14px}.platform-card-icon{width:54px!important;height:54px!important;min-width:54px}.platform-card-icon svg{width:39px;height:39px}
  input,select,textarea{font-size:16px}button,.button{min-height:42px}
  .page:has(#powerbi-container) .embed-wrap{height:calc(100dvh - 138px)!important;min-height:520px!important}
}


/* Jackpot BI 3.2.3 - iconografia semantica grande */
.semantic-icon{
  width:72px!important;height:72px!important;min-width:72px!important;
  border-radius:18px!important;background:linear-gradient(145deg,#ffffff,#eef6fc)!important;
  border:1px solid #d9e7f2;box-shadow:0 8px 20px #0b355512;
  display:grid!important;place-items:center!important;overflow:hidden;
}
.semantic-icon svg{width:54px;height:54px;display:block;overflow:visible}
.semantic-icon .si-blue{fill:#0877c9}.semantic-icon .si-blue-soft{fill:#8fd2f2}.semantic-icon .si-orange{fill:#f5a623}.semantic-icon .si-green{fill:#66b96f}.semantic-icon .si-red{fill:#e33f51}.semantic-icon .si-navy{fill:#183d63}.semantic-icon .si-paper{fill:#f7fbfe;stroke:#9fb8ca;stroke-width:2}.semantic-icon .si-paper-white{fill:#fff}.semantic-icon .si-navy-line{fill:none;stroke:#23496c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.semantic-icon .si-orange-line{fill:none;stroke:#f5a623;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.semantic-icon .si-blue-line-thick{fill:none;stroke:#0877c9;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.semantic-icon .si-orange-line-thick{fill:none;stroke:#f5a623;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.report-card>.semantic-icon,.admin-option-card>.semantic-icon{align-self:flex-start}
.report-card:has(.semantic-icon){gap:20px;min-height:150px;align-items:center}
.report-card:has(.semantic-icon) h3{font-size:20px;line-height:1.15}
.company-admin-callout .semantic-icon{width:68px!important;height:68px!important;min-width:68px!important}
.company-admin-callout .semantic-icon svg{width:50px;height:50px}
.admin-option-card .semantic-icon{width:76px!important;height:76px!important;min-width:76px!important}
.admin-option-card .semantic-icon svg{width:56px;height:56px}
.admin-cards .semantic-icon{width:76px!important;height:76px!important;min-width:76px!important}
.admin-cards .semantic-icon svg{width:56px;height:56px}
.icon-building{background:linear-gradient(145deg,#f9fcff,#e9f4fb)!important}.icon-euro{background:linear-gradient(145deg,#fffaf1,#eef7ff)!important}.icon-slot{background:linear-gradient(145deg,#f7fbff,#fff8ed)!important}.icon-bell{background:linear-gradient(145deg,#fffaf0,#f6fbff)!important}.icon-list{background:linear-gradient(145deg,#f8fcff,#f5fbf4)!important}.icon-trend{background:linear-gradient(145deg,#f7fbff,#fff9ef)!important}.icon-users{background:linear-gradient(145deg,#f7fbff,#f4fbf5)!important}
@media(max-width:768px){
  .semantic-icon{width:62px!important;height:62px!important;min-width:62px!important;border-radius:16px!important}
  .semantic-icon svg{width:46px;height:46px}
  .admin-option-card .semantic-icon,.admin-cards .semantic-icon{width:64px!important;height:64px!important;min-width:64px!important}
  .admin-option-card .semantic-icon svg,.admin-cards .semantic-icon svg{width:48px;height:48px}
  .report-card:has(.semantic-icon){min-height:0;align-items:flex-start}
}


/* Jackpot BI 3.2.4 - selector de iconos de plantilla */
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:500}
.icon-picker-fieldset{padding-bottom:18px}
.icon-picker{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin-top:12px}
.icon-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:116px;padding:10px 8px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.icon-choice:hover{border-color:#9fc5df;box-shadow:0 5px 16px #0b355510;transform:translateY(-1px)}
.icon-choice input{position:absolute;opacity:0;pointer-events:none}
.icon-choice:has(input:checked){border:2px solid var(--secondary);background:#f3f9fd;box-shadow:0 0 0 3px #0b76d110}
.icon-choice-preview{display:block}.icon-choice .semantic-icon{width:58px!important;height:58px!important;min-width:58px!important;border-radius:14px!important}.icon-choice .semantic-icon svg{width:43px;height:43px}
.icon-choice-label{font-size:12px;font-weight:800;text-align:center;line-height:1.15;color:var(--text)}
.semantic-icon .si-paper-white-fill{fill:#fff}.semantic-icon .si-red-line{fill:none;stroke:#e33f51;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.icon-check{background:linear-gradient(145deg,#f6fff8,#eef7ff)!important}.icon-mobile{background:linear-gradient(145deg,#f7fbff,#f5f2ff)!important}.icon-dashboard{background:linear-gradient(145deg,#f7fbff,#fff7ef)!important}.icon-chart{background:linear-gradient(145deg,#fff8f6,#f3f9ff)!important}
@media(max-width:900px){.icon-picker{grid-template-columns:repeat(3,minmax(100px,1fr))}}
@media(max-width:520px){.icon-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.icon-choice{min-height:104px}}

/* Jackpot BI 3.3.0 - Administracion ETL */
.icon-etl{background:linear-gradient(145deg,#f4fbff,#f8fff6)!important}
.etl-metrics{margin-bottom:20px}.runtime-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.runtime-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.runtime-card>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.runtime-card p{margin:8px 0;color:var(--muted)}
.etl-job-form{max-width:none}.etl-warning{align-self:end;padding:12px 14px;border-radius:10px;background:#fff8e6;border:1px solid #f0d590;font-size:13px;line-height:1.45}.etl-confirm-field{display:none}
.etl-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.etl-status-banner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:16px}.etl-status-banner>div{background:#fff;padding:15px}.etl-status-banner small{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em}.etl-status-banner strong{display:block;margin-top:5px;font-size:16px}.etl-status-banner.state-correcta{border-color:#9fd0aa}.etl-status-banner.state-error{border-color:#e8a9b0}
.etl-log{display:flex;flex-direction:column;gap:8px}.etl-log-row{display:grid;grid-template-columns:170px 70px 150px 1fr;gap:10px;align-items:start;border-bottom:1px solid var(--line);padding:10px 0}.etl-log-row p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.etl-log-row details{grid-column:1/-1}.etl-log-row pre,.technical-pre,.etl-error-card pre{max-height:520px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#0c1722;color:#e8f0f5;padding:12px;border-radius:8px;font-size:12px}.level-error strong{color:#b62334}.level-aviso strong{color:#9a6b00}.etl-error-card{border:1px solid #ecc3c8;border-radius:10px;padding:14px;margin-bottom:10px;background:#fff9fa}.etl-error-card p{white-space:pre-wrap}.error-section{border-color:#ecc3c8}
.pill.warning{background:#fff1c7;color:#765500}
@media(max-width:850px){.etl-status-banner{grid-template-columns:repeat(2,minmax(0,1fr))}.etl-log-row{grid-template-columns:1fr 70px}.etl-log-row>span:nth-child(3){grid-column:1/-1}.etl-log-row p{grid-column:1/-1}}
@media(max-width:520px){.etl-status-banner{grid-template-columns:1fr}.etl-detail-actions{width:100%}.etl-detail-actions>*{flex:1}.etl-log-row{grid-template-columns:1fr}}

/* Jackpot BI 3.3.0 - seguridad de dispositivos y sesiones */
.compact-stats{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin:0 0 16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat-card span{display:block;color:var(--muted);font-size:12px;font-weight:700}.stat-card strong{display:block;margin-top:5px;font-size:22px}.small-heading{margin-top:24px;margin-bottom:12px}.small-heading h2{margin:0}.button[disabled]{opacity:.45;cursor:not-allowed}.alert.success{background:#e6f7ef;color:var(--success);border:1px solid #bce8d2}@media(max-width:900px){.compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.compact-stats{grid-template-columns:1fr}}

/* 3.3.0-rc6 · observabilidad ETL */
.etl-progress-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:16px 0 22px}.etl-progress-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.etl-progress-head small{display:block;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.5px}.etl-progress-head strong{font-size:20px}.etl-progress-track{height:12px;background:#e8edf2;border-radius:99px;overflow:hidden;margin:12px 0 8px}.etl-progress-fill{height:100%;background:var(--blue);border-radius:99px;transition:width .3s ease}.etl-progress-card p{margin:8px 0 0;color:#465467;font-size:13px}.etl-log-table{display:grid;gap:0}.etl-log-head,.etl-log-row{display:grid;grid-template-columns:145px 80px minmax(180px,240px) minmax(0,1fr);gap:14px;align-items:start}.etl-log-head{padding:9px 12px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px 8px 0 0;color:#526172;font-size:11px;font-weight:800;text-transform:uppercase}.etl-log-row{padding:11px 12px;border:1px solid var(--line);border-top:0;background:#fff}.etl-log-row:last-child{border-radius:0 0 8px 8px}.etl-log-row>*{min-width:0}.etl-log-row p{margin:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.etl-phase{font-weight:700;overflow-wrap:anywhere}.etl-message details{margin-top:6px}.etl-message pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:900px){.etl-log-head{display:none}.etl-log-row{grid-template-columns:1fr;gap:5px}.etl-log-row .mono{color:var(--muted)}}

/* JSAnalytics 3.4.0-rc1 - periodo de prueba */
.trial-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 24px;border-bottom:1px solid #d7e3ec;background:#eef6fc;color:#294d70}.trial-banner>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.trial-banner strong{font-family:var(--font-title,Montserrat),sans-serif}.trial-banner span{font-size:13px}.trial-banner.trial-warning{background:#fff8e6;color:#765500;border-color:#f0d590}.trial-banner.trial-urgent,.trial-banner.trial-expired{background:#fff0ee;color:var(--danger);border-color:#e8a9b0}.trial-dismiss{width:30px;height:30px;padding:0;border-radius:50%;background:transparent;color:inherit;font-size:22px;line-height:1}.trial-metrics{grid-template-columns:repeat(4,minmax(150px,1fr))}.pill.danger{background:#fff0ee;color:var(--danger)}
@media(max-width:900px){.trial-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.trial-banner{padding:12px 16px;align-items:flex-start}}
@media(max-width:520px){.trial-metrics{grid-template-columns:1fr}.trial-banner>div{display:grid;gap:4px}}
