:root{
  --ga-bg:#06101f;
  --ga-bg-2:#081528;
  --ga-panel:rgba(15,23,42,.82);
  --ga-panel-soft:rgba(255,255,255,.04);
  --ga-border:rgba(148,163,184,.18);
  --ga-border-strong:rgba(var(--ga-accent-rgb),.42);
  --ga-text:#eef7f1;
  --ga-muted:#94a3b8;
  --ga-accent:#22c55e;
  --ga-accent-dark:#16a34a;
  --ga-accent-rgb:34,197,94;
  --ga-primary-text:#ffffff;
  --ga-blue:#60a5fa;
  --ga-warn:#facc15;
  --ga-danger:#fb7185;
  --ga-input-bg:rgba(2,6,23,.50);
  --ga-option-bg:#0b1425;
  --ga-scroll-track:rgba(2,6,23,.42);
  --ga-scroll-thumb:rgba(var(--ga-accent-rgb),.72);
}
html[data-mfe-theme="light"]{
  --ga-bg:#eef4f1;
  --ga-bg-2:#f8fafc;
  --ga-panel:rgba(255,255,255,.94);
  --ga-panel-soft:rgba(15,23,42,.035);
  --ga-border:rgba(15,23,42,.11);
  --ga-border-strong:rgba(var(--ga-accent-rgb),.34);
  --ga-text:#142033;
  --ga-muted:#64748b;
  --ga-input-bg:rgba(255,255,255,.92);
  --ga-option-bg:#ffffff;
  --ga-accent:#16a34a;
  --ga-accent-dark:#15803d;
  --ga-accent-rgb:22,163,74;
  --ga-scroll-track:rgba(15,23,42,.08);
  --ga-scroll-thumb:rgba(var(--ga-accent-rgb),.58);
}
html[data-mfe-theme="gray"]{
  --ga-bg:#111315;
  --ga-bg-2:#1f2328;
  --ga-panel:rgba(24,27,32,.86);
  --ga-panel-soft:rgba(255,255,255,.05);
  --ga-border:rgba(255,255,255,.10);
  --ga-border-strong:rgba(209,213,219,.34);
  --ga-text:#f3f4f6;
  --ga-muted:#a1a1aa;
  --ga-accent:#d1d5db;
  --ga-accent-dark:#71717a;
  --ga-accent-rgb:209,213,219;
  --ga-input-bg:rgba(255,255,255,.05);
  --ga-option-bg:#181b20;
  --ga-scroll-track:rgba(255,255,255,.05);
  --ga-scroll-thumb:rgba(209,213,219,.52);
}
html[data-mfe-theme="custom"]{
  --ga-accent:var(--mfe-custom-primary,#22c55e);
  --ga-accent-dark:var(--mfe-custom-primary-dark,#16a34a);
  --ga-accent-rgb:var(--mfe-custom-primary-rgb,34,197,94);
  --ga-border-strong:rgba(var(--ga-accent-rgb),.42);
  --ga-scroll-thumb:rgba(var(--ga-accent-rgb),.72);
}
*{box-sizing:border-box}
html,body{width:100%;min-height:100%;margin:0;background:var(--ga-bg);color:var(--ga-text);font-family:Arial,Helvetica,sans-serif}
body{background:radial-gradient(circle at 8% 4%,rgba(var(--ga-accent-rgb),.10),transparent 24%),linear-gradient(145deg,var(--ga-bg),var(--ga-bg-2));overflow-x:hidden;overflow-y:auto}
a{color:inherit;text-decoration:none}
.gps-page-shell{width:min(1540px,100%);margin:0 auto;padding:18px;display:grid;gap:14px;min-height:100vh;overflow:visible}
.gps-header,.gps-card,.gps-notice{border:1px solid var(--ga-border);background:var(--ga-panel);border-radius:22px;box-shadow:0 18px 46px rgba(0,0,0,.22)}
.gps-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;justify-content:stretch;gap:22px;padding:24px 28px}
.gps-header-logo{width:96px;height:96px;flex:0 0 96px;border:1px solid var(--ga-border);border-radius:24px;background:rgba(255,255,255,.06);display:inline-flex;align-items:center;justify-content:center;padding:0;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.gps-header-logo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.gps-header-title{min-width:0;display:grid;gap:8px;justify-items:start;align-content:center}.gps-kicker{font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--ga-accent)}.gps-header-title .gps-kicker,.gps-header-title h1{margin:0;text-align:left}.gps-header h1{margin:0;font-size:clamp(34px,3.2vw,64px);line-height:.96;letter-spacing:-.055em}.gps-header-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.btn{border:1px solid var(--ga-border);background:rgba(255,255,255,.055);color:var(--ga-text);border-radius:13px;min-height:40px;padding:9px 13px;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer}.btn:hover{border-color:var(--ga-border-strong);background:rgba(255,255,255,.08)}.btn.primary{background:linear-gradient(135deg,var(--ga-accent),var(--ga-accent-dark));border-color:rgba(var(--ga-accent-rgb),.62);color:var(--ga-primary-text)}.tag{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ga-border);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;color:var(--ga-muted);white-space:nowrap}.tag.empty{border-color:rgba(148,163,184,.30);color:var(--ga-muted);background:rgba(148,163,184,.08)}
.gps-card{padding:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.section-head h2{margin:0;font-size:18px;line-height:1.1;letter-spacing:-.02em}.section-meta{font-size:12px;color:var(--ga-muted);font-weight:800}.gps-notice{padding:12px 15px;color:var(--ga-muted);line-height:1.45;border-style:dashed;background:rgba(2,6,23,.32)}
.gps-analysis-card{padding:14px}.gps-mode-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.mode-btn{border:1px solid var(--ga-border);background:var(--ga-panel-soft);color:var(--ga-text);border-radius:15px;padding:10px 12px;text-align:center;cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:center}.mode-btn strong{font-size:13px;line-height:1.2}.mode-btn span{display:none}.mode-btn:hover{background:rgba(255,255,255,.065);border-color:var(--ga-border-strong)}.mode-btn.active{border-color:rgba(var(--ga-accent-rgb),.75);background:rgba(var(--ga-accent-rgb),.13);box-shadow:0 0 0 1px rgba(var(--ga-accent-rgb),.22)}
.gps-filter-card{padding:16px}.gps-filters{display:grid;grid-template-columns:1.05fr 1fr 1fr 1.15fr 1.15fr 1fr .9fr .9fr;gap:10px;align-items:end}.field{display:grid;gap:6px;min-width:0}.label{font-size:10.5px;color:var(--ga-accent);font-weight:950;text-transform:uppercase;letter-spacing:.08em}.input,.select{width:100%;min-width:0;border:1px solid var(--ga-border);border-radius:14px;background:var(--ga-input-bg);color:var(--ga-text);min-height:46px;padding:10px 12px;outline:none;font-size:13.5px}.input:focus,.select:focus{border-color:rgba(var(--ga-accent-rgb),.55);box-shadow:0 0 0 3px rgba(var(--ga-accent-rgb),.10)}.select option{background:var(--ga-option-bg);color:var(--ga-text)}
.gps-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.gps-kpi{border:1px solid var(--ga-border);background:var(--ga-panel-soft);border-radius:16px;padding:13px 14px}.gps-kpi strong{display:block;font-size:24px;line-height:1}.gps-kpi span{display:block;margin-top:6px;color:var(--ga-muted);font-size:12px;font-weight:850}.gps-dashboard-grid{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(300px,.85fr);gap:14px;align-items:stretch}.gps-side-panels{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:14px;height:100%;min-height:0}.gps-chart-card{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.chart-wrap{height:100%;min-height:420px;border:1px solid var(--ga-border);border-radius:18px;background:rgba(2,6,23,.30);padding:14px;overflow:hidden;display:flex;align-items:stretch;justify-content:stretch}.chart-wrap svg{width:100%;height:100%;display:block}.chart-label{fill:var(--ga-muted);font-size:11px}.grid-line{stroke:rgba(148,163,184,.14);stroke-width:1}.bar{fill:var(--ga-accent);opacity:.92}.bar.secondary{fill:var(--ga-blue)}.line{fill:none;stroke:var(--ga-accent);stroke-width:3}.dot{fill:var(--ga-accent);stroke:#07111f;stroke-width:2}
.alert-list{display:grid;gap:8px}.alert-item{border:1px solid var(--ga-border);background:var(--ga-panel-soft);border-radius:15px;padding:11px 12px;display:grid;gap:4px}.alert-item strong{font-size:13.5px}.alert-item span{font-size:12px;color:var(--ga-muted);line-height:1.4}.empty{border:1px dashed rgba(148,163,184,.28);border-radius:15px;padding:13px;color:var(--ga-muted);line-height:1.45;background:rgba(2,6,23,.22)}
.table-wrap{max-height:390px;overflow:auto;overscroll-behavior:auto;border:1px solid var(--ga-border);border-radius:16px}.gps-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:980px}.gps-table th,.gps-table td{padding:10px 11px;border-bottom:1px solid rgba(148,163,184,.12);text-align:left;vertical-align:middle}.gps-table th{position:sticky;top:0;background:rgba(8,15,34,.98);z-index:1;color:var(--ga-accent);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:1380px){.gps-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gps-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.gps-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gps-dashboard-grid{grid-template-columns:1fr}.gps-side-panels{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;height:auto}.gps-chart-card{height:auto}.chart-wrap{height:360px;min-height:360px}}
@media(max-width:820px){.gps-page-shell{padding:12px}.gps-header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px}.gps-header-logo{width:76px;height:76px;flex-basis:76px}.gps-header-actions{grid-column:1/-1;width:100%;justify-content:flex-start}.gps-header-actions .btn{flex:1 1 150px}.gps-mode-grid,.gps-filters,.gps-kpi-grid,.gps-side-panels{grid-template-columns:1fr}.gps-side-panels{grid-template-rows:auto;height:auto}.gps-card,.gps-header{border-radius:20px;padding:15px}.chart-wrap{height:310px;min-height:310px}.gps-table{min-width:820px}}
@media(max-width:560px){.gps-header{grid-template-columns:1fr;gap:14px}.gps-header-logo{width:82px;height:82px}.gps-header-actions{grid-column:auto}.gps-header h1{font-size:clamp(32px,14vw,46px)}}


html{scrollbar-color:var(--ga-scroll-thumb) var(--ga-scroll-track);scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--ga-scroll-track);border-radius:999px}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--ga-accent),var(--ga-accent-dark));border:2px solid var(--ga-scroll-track);border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--ga-accent),var(--ga-accent-dark))}
.field.is-hidden{display:none!important}
.gps-filters{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))!important}
.gps-export-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(2,6,23,.72);backdrop-filter:blur(14px)}
.gps-export-modal.is-open{display:flex}
.gps-export-card{width:min(720px,96vw);max-height:90vh;overflow:auto;border:1px solid var(--ga-border);border-radius:24px;background:linear-gradient(145deg,rgba(15,23,42,.98),rgba(8,15,34,.98));box-shadow:0 28px 90px rgba(0,0,0,.48);padding:22px;display:grid;gap:16px}
.gps-export-head{display:grid;gap:6px}.gps-export-head h3{margin:0;font-size:26px;letter-spacing:-.035em}.gps-export-head p{margin:0;color:var(--ga-muted);line-height:1.45}
.gps-export-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gps-export-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--ga-border);background:var(--ga-panel-soft);border-radius:16px;padding:12px;color:var(--ga-text);font-weight:850}.gps-export-option input{margin-top:2px;accent-color:var(--ga-accent)}.gps-export-option small{display:block;margin-top:3px;color:var(--ga-muted);font-weight:700;line-height:1.35}.gps-export-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.gps-export-actions .btn{min-width:130px}.gps-export-status{min-height:18px;color:var(--ga-muted);font-size:13px;font-weight:800}
@media(max-width:720px){.gps-export-options{grid-template-columns:1fr}.gps-export-actions .btn{flex:1 1 140px}}


/* GPS analytics v8: two vertical charts + export controls */
.gps-chart-card{display:grid;grid-template-rows:auto minmax(0,1fr);gap:0;min-height:0}
.chart-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;height:100%;min-height:720px}
.chart-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0}
.chart-panel-head{display:flex;align-items:end;justify-content:space-between;gap:12px;min-width:0}
.chart-panel-head h3{margin:0;font-size:15px;letter-spacing:-.01em;line-height:1.1}
.chart-controls{display:grid;grid-template-columns:minmax(170px,220px) minmax(140px,180px);gap:8px;align-items:center}
.chart-controls .select{min-height:38px;padding:8px 10px;border-radius:12px;font-size:12.5px}
.chart-wrap{min-height:0!important;height:100%!important;padding:10px!important}
.chart-wrap svg{height:100%!important;min-height:0}
.gps-export-metrics{display:grid;gap:8px}.gps-export-metrics h4{margin:0;font-size:14px;color:var(--ga-accent);text-transform:uppercase;letter-spacing:.08em}.gps-export-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gps-export-option.compact{padding:9px 10px;align-items:center}.gps-export-option.compact span{font-size:12.5px}.gps-progress-bar{height:14px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.gps-progress-bar div{height:100%;width:0;background:linear-gradient(90deg,var(--ga-accent),var(--ga-blue));border-radius:999px;transition:width .2s ease}.progress-card{width:min(520px,94vw)}
@media(max-width:1380px){.chart-stack{min-height:620px}.chart-controls{grid-template-columns:minmax(150px,1fr) minmax(130px,160px)}}
@media(max-width:820px){.chart-stack{min-height:680px}.chart-panel-head{align-items:stretch;flex-direction:column}.chart-controls{grid-template-columns:1fr}.gps-export-metric-grid{grid-template-columns:1fr}.chart-wrap{min-height:260px!important}}


/* GPS analytics professional export/loading refinements — 2026-06-30 */
.gps-export-theme-field{margin-top:-2px}
.gps-page-loader{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:22px;background:radial-gradient(circle at 12% 8%,rgba(var(--ga-accent-rgb),.13),transparent 25%),rgba(2,6,23,.82);backdrop-filter:blur(16px)}
.gps-page-loader.is-open{display:flex}
.gps-page-loader-card{width:min(520px,94vw);border:1px solid var(--ga-border);border-radius:24px;background:linear-gradient(145deg,rgba(15,23,42,.98),rgba(8,15,34,.98));box-shadow:0 28px 90px rgba(0,0,0,.50);padding:22px;display:grid;gap:14px;color:var(--ga-text)}
.gps-page-loader-card h3{margin:0;font-size:24px;letter-spacing:-.035em}
.gps-page-loader-card p{margin:0;color:var(--ga-muted);line-height:1.45;font-weight:800}
.gps-page-loader-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ga-accent);font-size:13px;font-weight:950}
.gps-page-loader-bar{height:14px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.gps-page-loader-bar div{height:100%;width:0;background:linear-gradient(90deg,var(--ga-accent),var(--ga-blue));border-radius:999px;transition:width .22s ease}
body.gps-loading-state .gps-page-shell{opacity:0;visibility:hidden;pointer-events:none}

/* GPS theme and mobile final alignment */
html,body{overflow-x:hidden}
body{background:radial-gradient(circle at 8% 4%,rgba(var(--ga-accent-rgb),.10),transparent 24%),linear-gradient(145deg,var(--ga-bg),var(--ga-bg-2))}
html[data-mfe-theme="light"] body{background:linear-gradient(145deg,var(--ga-bg),var(--ga-bg-2))}
.gps-header,.gps-card,.gps-notice{backdrop-filter:blur(10px)}
.btn.primary{background:linear-gradient(135deg,var(--ga-accent),var(--ga-accent-dark));border-color:rgba(var(--ga-accent-rgb),.62)}
.mode-btn.active{border-color:rgba(var(--ga-accent-rgb),.72);background:rgba(var(--ga-accent-rgb),.13);box-shadow:0 0 0 1px rgba(var(--ga-accent-rgb),.22)}
.input:focus,.select:focus{border-color:rgba(var(--ga-accent-rgb),.55);box-shadow:0 0 0 3px rgba(var(--ga-accent-rgb),.10)}
.gps-export-option input{accent-color:var(--ga-accent)}
.gps-progress-bar div,.gps-page-loader-bar div{background:linear-gradient(90deg,var(--ga-accent),var(--ga-blue))}
.gps-export-card,.gps-page-loader-card{background:linear-gradient(145deg,var(--ga-panel),rgba(8,15,34,.96));color:var(--ga-text)}
html[data-mfe-theme="light"] .gps-export-card,
html[data-mfe-theme="light"] .gps-page-loader-card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(248,250,252,.98));box-shadow:0 24px 70px rgba(15,23,42,.16)}
html[data-mfe-theme="light"] .gps-export-modal,
html[data-mfe-theme="light"] .gps-page-loader{background:rgba(238,244,241,.74)}
.table-wrap,.gps-export-card{scrollbar-color:var(--ga-scroll-thumb) var(--ga-scroll-track);scrollbar-width:thin}
.table-wrap::-webkit-scrollbar,.gps-export-card::-webkit-scrollbar{width:10px;height:10px}
.table-wrap::-webkit-scrollbar-track,.gps-export-card::-webkit-scrollbar-track{background:var(--ga-scroll-track);border-radius:999px}
.table-wrap::-webkit-scrollbar-thumb,.gps-export-card::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--ga-accent),var(--ga-accent-dark));border:2px solid var(--ga-scroll-track);border-radius:999px}
.gps-page-shell,.gps-card,.gps-dashboard-grid,.gps-chart-card,.chart-panel,.gps-side-panels{min-width:0}
.gps-header-title{overflow:hidden}.gps-header-title h1{overflow-wrap:anywhere}
@media(max-width:980px){
  .gps-page-shell{padding:14px;gap:12px}
  .gps-header{grid-template-columns:auto minmax(0,1fr);gap:16px;padding:18px}
  .gps-header-logo{width:78px;height:78px;flex-basis:78px;border-radius:22px}
  .gps-header-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;justify-content:stretch}
  .gps-header-actions .btn,.gps-header-actions .tag{width:100%;min-width:0;white-space:normal;text-align:center}
  .gps-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gps-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gps-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gps-dashboard-grid{grid-template-columns:1fr}
  .gps-side-panels{grid-template-columns:1fr;grid-template-rows:auto;height:auto}
  .chart-stack{min-height:0;height:auto;grid-template-rows:none;grid-auto-rows:auto}
  .chart-panel{min-height:330px}
  .chart-wrap{height:280px!important;min-height:280px!important}
}
@media(max-width:640px){
  .gps-page-shell{padding:10px;gap:10px}
  .gps-header,.gps-card{border-radius:18px;padding:14px}
  .gps-header{grid-template-columns:auto minmax(0,1fr);gap:12px}
  .gps-header-logo{width:64px;height:64px;flex-basis:64px;border-radius:18px}
  .gps-header h1{font-size:clamp(28px,10vw,40px);letter-spacing:-.045em}
  .gps-header-actions{grid-template-columns:1fr}
  .gps-filters,.gps-mode-grid,.gps-kpi-grid{grid-template-columns:1fr!important}
  .chart-panel-head{gap:10px}
  .chart-controls{grid-template-columns:1fr!important;width:100%}
  .chart-panel{min-height:300px}
  .chart-wrap{height:250px!important;min-height:250px!important;padding:8px!important}
  .gps-table{min-width:760px}
  .table-wrap{max-height:62vh}
  .gps-export-card{width:100%;max-height:88vh;border-radius:20px;padding:16px}
  .gps-export-actions{display:grid;grid-template-columns:1fr;width:100%}
  .gps-export-actions .btn{width:100%;min-width:0}
}
@media(max-width:420px){
  .gps-header{grid-template-columns:1fr;justify-items:start}
  .gps-header-logo{width:72px;height:72px}
}


/* GPS page scroll contract: page scroll stays on document; internal tables/modals keep their own scroll without trapping the mouse wheel. */
html{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto}
.gps-page-shell{height:auto;min-height:100vh;overflow:visible;overscroll-behavior:auto}
.gps-card,.gps-dashboard-grid,.gps-chart-card,.chart-panel,.gps-side-panels{overflow:visible}
.table-wrap{overscroll-behavior:auto}
.gps-page-loader:not(.is-open),.gps-export-modal:not(.is-open){display:none!important;pointer-events:none!important}
.gps-page-loader.is-open,.gps-export-modal.is-open{pointer-events:auto}
