@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css");

/* HCT Certification Intelligence Platform v4
   1920 x 1080 fixed-canvas dashboard shell. Replace data/dashboard_cache.json to connect production data. */
:root{
  --navy-990:#03132b;
  --navy-950:#061b36;
  --navy-900:#072449;
  --navy-800:#0b3266;
  --blue-700:#0d56de;
  --blue-600:#1268ff;
  --blue-500:#2b7cff;
  --blue-100:#eaf2ff;
  --sky-500:#23b7ff;
  --green-600:#12a85b;
  --green-500:#19c37d;
  --teal-500:#12b8b0;
  --orange-600:#ff7a00;
  --amber-500:#ffb020;
  --purple-600:#7e4bf5;
  --purple-500:#8f66ff;
  --red-600:#ef3232;
  --pink-500:#f45b93;
  --text-950:#081936;
  --text-850:#102a4d;
  --text-700:#31435e;
  --text-600:#52627a;
  --text-400:#9aa8bd;
  --line:#dbe6f6;
  --line-strong:#c5d7ef;
  --canvas:#f5f9ff;
  --panel:#ffffff;
  --glass:rgba(255,255,255,.78);
  --shadow:0 16px 38px rgba(13,44,91,.10), 0 3px 10px rgba(13,44,91,.06);
  --shadow-soft:0 10px 24px rgba(9,32,71,.08);
  --radius-xl:22px;
  --radius-lg:16px;
  --radius-md:12px;
  --radius-sm:9px;
  --sidebar:264px;
  --app-w:1920px;
  --app-h:1080px;
  --topbar-h:108px;
  --filter-h:54px;
  --footer-h:0px;
  --content-h:918px;
  --font: Pretendard, "Pretendard Variable", "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#eaf2ff;color:var(--text-950);font-family:var(--font);letter-spacing:-0.02em;line-height:1.55;}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
#scale-root{width:var(--app-w);height:var(--app-h);transform-origin:left top;position:fixed;left:0;top:0;}
.app-frame{width:1920px;height:1080px;display:grid;grid-template-columns:var(--sidebar) 1fr;background:linear-gradient(135deg,#f8fbff 0%, #eef6ff 52%, #f7fbff 100%);position:relative;overflow:hidden;transition:grid-template-columns .22s ease;}
.app-frame.sidebar-collapsed{grid-template-columns:86px 1fr;}
.app-frame::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 2%,rgba(18,104,255,.10),transparent 33%),radial-gradient(circle at 96% 70%,rgba(126,75,245,.06),transparent 25%),linear-gradient(90deg,transparent 0 264px,rgba(255,255,255,.30) 264px);pointer-events:none;}
.app-frame.sidebar-collapsed::before{background:radial-gradient(circle at 80% 2%,rgba(18,104,255,.10),transparent 33%),radial-gradient(circle at 96% 70%,rgba(126,75,245,.06),transparent 25%),linear-gradient(90deg,transparent 0 86px,rgba(255,255,255,.30) 86px);}
/* Sidebar */
.sidebar{position:relative;z-index:3;background:linear-gradient(180deg,#061b36 0%,#041630 53%,#031227 100%);border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 42px rgba(3,15,35,.12);padding:28px 18px 24px;color:white;display:flex;flex-direction:column;}
.sidebar::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 40% -4%,rgba(43,124,255,.40),transparent 24%),radial-gradient(circle at 120% 82%,rgba(36,196,255,.14),transparent 32%);pointer-events:none;}
.brand{position:relative;z-index:1;height:82px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.10);}
.brand-logo{width:142px;height:auto;margin-left:0;}
.sidebar-collapsed .brand{justify-content:center;height:72px}
.sidebar-collapsed .brand-logo{width:46px;max-height:42px;object-fit:contain;object-position:left center;}
.brand-name{font-size:30px;font-weight:900;letter-spacing:-1.2px;line-height:1;color:#fff;display:none}
.brand-sub{font-size:13px;color:#bcd4ff;font-weight:650;display:none}
.nav{position:relative;z-index:1;padding-top:22px;display:flex;flex-direction:column;gap:9px;}
.nav-item{height:66px;border:1px solid transparent;border-radius:13px;display:grid;grid-template-columns:34px 1fr;align-items:center;padding:0 12px;color:#dbe8ff;background:transparent;transition:.18s ease;position:relative;}
.nav-item:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.08);transform:translateX(2px);}
.nav-item.active{background:linear-gradient(135deg,#1268ff 0%,#2159ff 55%,#0c42d7 100%);border-color:rgba(144,184,255,.56);box-shadow:0 14px 26px rgba(18,104,255,.32), inset 0 1px 0 rgba(255,255,255,.24);color:#fff;}
.nav-icon{width:27px;height:27px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;background:rgba(255,255,255,.08);}
.nav-item.active .nav-icon{background:rgba(255,255,255,.18)}
.nav-text{display:flex;flex-direction:column;gap:4px;line-height:1.1;font-size:15px;font-weight:760;}
.nav-text small{font-size:11px;color:#8bb7ff;font-weight:800;letter-spacing:.2px;}
.nav-item.active small{color:#dce9ff}
.sidebar-collapsed .nav{align-items:center;gap:10px}
.sidebar-collapsed .nav-item{width:48px;height:48px;grid-template-columns:1fr;padding:0;justify-items:center;border-radius:15px}
.sidebar-collapsed .nav-text,.sidebar-collapsed .sidebar-status{display:none}
.sidebar-collapsed .nav-icon{width:32px;height:32px;border-radius:11px;font-size:13px;background:rgba(255,255,255,.12)}
.sidebar-status{position:absolute;z-index:1;left:18px;right:18px;bottom:62px;padding:18px 16px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.10);}
.status-title{font-size:14px;font-weight:850;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.status-dot{width:10px;height:10px;border-radius:999px;background:#19d37e;box-shadow:0 0 0 5px rgba(25,211,126,.14);}
.status-caption{font-size:12px;color:#a9c4ea;margin-bottom:8px;}
.status-time{font-size:15px;font-weight:850;color:#fff;}
.sidebar-collapse{position:absolute;right:20px;bottom:20px;width:35px;height:35px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);color:white;font-size:22px;z-index:2;}
.sidebar-collapsed .sidebar-collapse{right:25px;background:rgba(255,255,255,.14)}
/* Main Shell */
.main-shell{position:relative;z-index:2;display:grid;grid-template-rows:var(--topbar-h) var(--filter-h) var(--content-h) var(--footer-h);min-width:0;max-width:100%;overflow:visible;}
.topbar{position:relative;z-index:80;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 24px;border-bottom:1px solid rgba(200,216,235,.72);background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(245,249,255,.68));backdrop-filter:blur(18px);box-shadow:0 14px 34px rgba(7,28,62,.06);min-width:0;overflow:visible;}
.heading-group{display:flex;align-items:flex-start;gap:16px;min-width:0;flex:1 1 260px;overflow:hidden;}
.page-number{font-size:30px;font-weight:950;letter-spacing:-1px;color:#071f4d;line-height:1;margin-top:2px;}
.heading-text{min-width:0;}
.heading-text h1{margin:0;font-size:29px;letter-spacing:-1.1px;line-height:1.08;color:#081936;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.heading-text p{margin:8px 0 0;color:#52627a;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.top-controls{position:relative;z-index:90;display:flex;align-items:end;justify-content:flex-end;gap:8px;flex:0 0 auto;max-width:calc(100% - 280px);padding:8px 10px;border:1px solid #d9e6f7;border-radius:18px;background:rgba(255,255,255,.78);box-shadow:0 12px 28px rgba(7,28,62,.07),inset 0 1px 0 rgba(255,255,255,.9);overflow:visible;}
.control,.search-control{display:flex;flex-direction:column;gap:6px;min-width:96px;}
.control.date-control{min-width:112px;}
.control.year-control{min-width:126px;}
.control label,.search-control label{font-size:11px;color:#4f6380;font-weight:950;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.25px;}
.filter-icon{width:19px;height:19px;border-radius:7px;display:inline-grid;place-items:center;background:linear-gradient(135deg,#eef5ff,#fff);border:1px solid #d8e7fb;box-shadow:0 3px 8px rgba(7,28,62,.06);font-size:12px;line-height:1;flex:0 0 auto;}
.control input,.control select,.searchbox,.year-multi summary{height:40px;border-radius:12px;border:1px solid #cfdff3;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 4px 10px rgba(7,28,62,.05);padding:0 14px;font-size:13px;font-weight:850;color:var(--text-850);outline:none;transition:.15s ease;}
.control input:focus,.control select:focus,.searchbox:focus{border-color:#8ab7ff;box-shadow:0 0 0 4px rgba(18,104,255,.10)}
.year-multi{position:relative;}
.year-multi summary{width:126px;display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;}
.summary-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.year-multi summary::-webkit-details-marker{display:none}
.year-multi summary::after{content:"";width:7px;height:7px;border-right:2px solid #64758d;border-bottom:2px solid #64758d;transform:rotate(45deg) translateY(-2px);}
.year-options{position:absolute;right:0;top:48px;z-index:999;width:184px;max-height:292px;overflow:auto;border:1px solid #cfdff3;border-radius:14px;background:#fff;box-shadow:0 24px 52px rgba(7,28,62,.20);padding:8px;display:grid;gap:4px;}
.year-option{height:34px;display:flex!important;align-items:center;gap:8px;padding:0 9px;border-radius:9px;color:#203b60!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;background:#fff;}
.year-option:hover{background:#f1f6ff}
.year-option.all{font-weight:950;border-bottom:1px solid #e7eff9;border-radius:9px 9px 4px 4px;margin-bottom:3px;}
.year-option input{width:14px;height:14px;box-shadow:none;padding:0}
.option-icon{width:22px;height:22px;border-radius:8px;display:inline-grid;place-items:center;background:#eef5ff;border:1px solid #d8e7fb;font-size:12px;}
.year-badge{min-width:39px;height:22px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1268ff,#6457ff);color:#fff;font-size:11px;font-weight:950;box-shadow:0 5px 12px rgba(18,104,255,.18);}
.search-wrap{display:flex;align-items:end;gap:0;}
.searchbox{width:170px;border-top-right-radius:0;border-bottom-right-radius:0;}
.search-btn{width:52px;height:40px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:linear-gradient(180deg,#fff,#f4f8ff);color:var(--navy-900);font-size:16px;box-shadow:0 3px 8px rgba(7,28,62,.04);}
.hv-toggle{height:40px;display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:3px;box-shadow:0 3px 8px rgba(7,28,62,.04);}
.hv-toggle button{height:32px;min-width:75px;border:0;border-radius:8px;background:transparent;font-size:13px;font-weight:900;color:#40516d;display:inline-flex;align-items:center;justify-content:center;gap:5px;}
.hv-toggle button.active{background:linear-gradient(135deg,#1268ff,#294cff);color:white;box-shadow:0 7px 16px rgba(18,104,255,.25);}
.primary-btn,.ghost-btn,.outline-btn{height:42px;border-radius:11px;padding:0 14px;font-size:13px;font-weight:900;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;}
.primary-btn{border:1px solid rgba(18,104,255,.10);background:linear-gradient(135deg,#1268ff,#0754df);color:white;box-shadow:0 14px 28px rgba(18,104,255,.22), inset 0 1px 0 rgba(255,255,255,.25);}
.ghost-btn{border:1px solid #cfdff3;background:linear-gradient(180deg,#fff,#f8fbff);color:#12305b;box-shadow:0 4px 10px rgba(7,28,62,.05);}
.outline-btn{border:1px solid #bcd3f4;background:#f9fcff;color:#0d56de;}
.advanced-filter-btn.active{border-color:#1268ff;background:#eef5ff;color:#0b56d6;box-shadow:0 0 0 3px rgba(18,104,255,.10),0 8px 18px rgba(18,104,255,.10)}
.app-frame:not(.sidebar-collapsed) .topbar{gap:10px;padding-left:22px;padding-right:18px;}
.app-frame:not(.sidebar-collapsed) .top-controls{max-width:calc(100% - 245px);}
.app-frame:not(.sidebar-collapsed) .page-number{font-size:27px;}
.app-frame:not(.sidebar-collapsed) .heading-group{gap:12px;}
.app-frame:not(.sidebar-collapsed) .heading-text h1{font-size:25px;}
.app-frame:not(.sidebar-collapsed) .heading-text p{font-size:12px;margin-top:6px;}
.app-frame:not(.sidebar-collapsed) .top-controls{gap:6px;padding:7px 8px;border-radius:16px;}
.app-frame:not(.sidebar-collapsed) .control{min-width:78px;gap:4px;}
.app-frame:not(.sidebar-collapsed) .control.date-control{min-width:102px;}
.app-frame:not(.sidebar-collapsed) .control.year-control{min-width:112px;}
.app-frame:not(.sidebar-collapsed) .control label{font-size:10px;}
.app-frame:not(.sidebar-collapsed) .control input,
.app-frame:not(.sidebar-collapsed) .control select,
.app-frame:not(.sidebar-collapsed) .searchbox,
.app-frame:not(.sidebar-collapsed) .year-multi summary{height:38px;padding:0 10px;font-size:12px;border-radius:10px;}
.app-frame:not(.sidebar-collapsed) .year-multi summary{width:112px;}
.app-frame:not(.sidebar-collapsed) .searchbox{width:132px;border-top-right-radius:0;border-bottom-right-radius:0;}
.app-frame:not(.sidebar-collapsed) .search-btn{width:42px;height:38px;font-size:18px;}
.app-frame:not(.sidebar-collapsed) .hv-toggle{height:38px;}
.app-frame:not(.sidebar-collapsed) .hv-toggle button{height:30px;min-width:56px;padding:0 7px;font-size:12px;}
.app-frame:not(.sidebar-collapsed) .primary-btn,
.app-frame:not(.sidebar-collapsed) .ghost-btn{height:38px;padding:0 9px;font-size:12px;gap:6px;border-radius:10px;}
.filter-strip{position:relative;z-index:70;display:flex;height:var(--filter-h);align-items:center;gap:12px;padding:7px 24px;background:rgba(247,251,255,.78);border-bottom:1px solid rgba(200,216,235,.66);min-width:0;max-width:100%;overflow:hidden;}
.filter-select{height:38px;min-width:132px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;font-size:13px;font-weight:850;color:#173151;box-shadow:0 3px 10px rgba(7,28,62,.04);}
.last-updated{margin-left:auto;font-size:12px;color:#77859a;font-weight:700;white-space:nowrap;}
.content{height:var(--content-h);padding:10px 34px 10px;overflow:hidden;min-width:0;max-width:100%;}
.bottom-bar{height:var(--footer-h);padding:0;display:none;align-items:center;gap:14px;min-width:0;max-width:100%;overflow:hidden;}
.chips{flex:1;min-width:0;height:48px;border:1px solid rgba(197,215,239,.9);border-radius:16px;background:rgba(255,255,255,.74);display:flex;align-items:center;gap:12px;padding:0 16px;box-shadow:0 8px 20px rgba(7,28,62,.05);overflow:hidden;}
.chips strong{font-size:14px;font-weight:950;margin-right:6px;color:#08204c;}
.chip{height:28px;padding:0 12px;border-radius:8px;background:#f2f6ff;border:1px solid #e2ebfa;color:#193252;font-size:12px;font-weight:850;display:inline-flex;align-items:center;gap:8px;}
.active-filter-chips{gap:8px;overflow:auto;scrollbar-width:thin}
.removable-chip{cursor:pointer;max-width:220px;border-color:#d8e5f6;background:#fff;color:#102a4d;box-shadow:0 4px 10px rgba(7,28,62,.04)}
.removable-chip span{color:#667892;font-weight:900}.removable-chip b{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#102a4d}.removable-chip i{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#eaf1fb;color:#405875;font-weight:950;line-height:1}
.removable-chip:hover{border-color:#1268ff;background:#f5f9ff}.removable-chip:hover i{background:#1268ff;color:#fff}
.removable-chip.high{border-color:#cbdcff;background:#eef5ff}.removable-chip.geo{border-color:#bcebe6;background:#effdfc}.removable-chip.advanced{border-color:#dfd4ff;background:#f7f3ff}.muted-chip{color:#708096;background:#f7f9fd}
/* Panels */
.page-grid{height:100%;display:grid;gap:14px;}
.panel{position:relative;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,251,255,.84));border:1px solid rgba(203,219,242,.94);box-shadow:0 18px 38px rgba(7,28,62,.09),0 2px 8px rgba(7,28,62,.04);overflow:hidden;}
.panel::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(18,104,255,.34),rgba(255,255,255,0) 35%,rgba(126,75,245,.24));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.66;}
.panel.accent-blue{--accent:var(--blue-600)}
.panel.accent-purple{--accent:var(--purple-600)}
.panel.accent-teal{--accent:var(--teal-500)}
.panel.accent-green{--accent:var(--green-600)}
.panel.accent-orange{--accent:var(--orange-600)}
.panel.accent-red{--accent:var(--red-600)}
.panel.accent-amber{--accent:var(--amber-500)}
.panel.accent-blue::before{background:linear-gradient(135deg,rgba(18,104,255,.52),rgba(255,255,255,0) 48%,rgba(18,104,255,.11));}
.panel.accent-purple::before{background:linear-gradient(135deg,rgba(126,75,245,.55),rgba(255,255,255,0) 48%,rgba(126,75,245,.11));}
.panel.accent-teal::before{background:linear-gradient(135deg,rgba(18,184,176,.55),rgba(255,255,255,0) 48%,rgba(18,184,176,.11));}
.panel.accent-orange::before{background:linear-gradient(135deg,rgba(255,122,0,.48),rgba(255,255,255,0) 48%,rgba(255,122,0,.11));}
.panel.accent-green::before{background:linear-gradient(135deg,rgba(18,168,91,.50),rgba(255,255,255,0) 48%,rgba(18,168,91,.10));}
.panel.accent-red::before{background:linear-gradient(135deg,rgba(239,50,50,.44),rgba(255,255,255,0) 48%,rgba(239,50,50,.08));}
.panel-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid rgba(219,230,246,.86);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(245,249,255,.72));backdrop-filter:blur(12px);}
.panel-title{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:950;color:#09204a;letter-spacing:-.25px;}
.panel-title .num{width:27px;height:27px;border-radius:9px;background:linear-gradient(135deg,var(--accent,var(--blue-600)),#294cff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 8px 16px rgba(18,104,255,.25);}
.panel-sub{font-size:12px;color:#687a92;font-weight:800;display:flex;align-items:center;justify-content:flex-end;min-width:0;}
.panel-body{padding:16px 18px;height:calc(100% - 54px);min-height:0;}
.panel::after{content:"";position:absolute;left:0;top:54px;bottom:0;width:4px;background:linear-gradient(180deg,var(--accent,var(--blue-600)),rgba(255,255,255,0));opacity:.72;pointer-events:none;}
.info-dot{width:16px;height:16px;border-radius:50%;border:1px solid #a8bad4;color:#5e718c;font-size:11px;display:inline-flex;align-items:center;justify-content:center;font-weight:900}
/* Common visual components */
.metric-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:0;height:100%;align-items:center;}
.metric{display:flex;align-items:center;gap:12px;padding:0 22px;min-width:0;border-right:1px solid rgba(202,218,240,.72);}
.metric:last-child{border-right:0}
.metric-icon{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;background:linear-gradient(135deg,rgba(18,104,255,.14),rgba(18,104,255,.05));color:var(--blue-600);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.metric.green .metric-icon{background:linear-gradient(135deg,rgba(25,195,125,.16),rgba(25,195,125,.05));color:var(--green-600)}
.metric.purple .metric-icon{background:linear-gradient(135deg,rgba(126,75,245,.15),rgba(126,75,245,.05));color:var(--purple-600)}
.metric.orange .metric-icon{background:linear-gradient(135deg,rgba(255,122,0,.16),rgba(255,122,0,.05));color:var(--orange-600)}
.metric.red .metric-icon{background:linear-gradient(135deg,rgba(239,50,50,.14),rgba(239,50,50,.05));color:var(--red-600)}
.metric-label{font-size:12px;font-weight:900;color:#52627a;margin-bottom:4px;white-space:nowrap;}
.metric-value{font-size:26px;font-weight:950;color:#0a1e46;letter-spacing:-.6px;}
.metric-delta{font-size:12px;font-weight:850;color:var(--green-600);margin-top:4px;}
.segmented{display:inline-flex;align-items:center;border:1px solid #d7e4f6;border-radius:13px;background:#fff;padding:4px;gap:4px;box-shadow:0 6px 16px rgba(7,28,62,.05);}
.segmented button{height:38px;padding:0 20px;border:0;border-radius:10px;background:transparent;font-weight:900;color:#40516d;}
.segmented button.active{background:linear-gradient(135deg,#1268ff,#284cf5);color:#fff;box-shadow:0 10px 18px rgba(18,104,255,.22);}
.segmented .teal.active{background:linear-gradient(135deg,#12b8b0,#08a395)}
.mode-note{margin-top:20px;padding:15px;border:1px solid #dbe8fb;background:linear-gradient(135deg,#f3f8ff,#ffffff);border-radius:12px;color:#3260a2;font-weight:800;font-size:13px;}
.table-wrap{height:100%;overflow:hidden;display:flex;flex-direction:column;}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;color:#142845;}
thead th{height:38px;background:#f5f8fd;color:#2e4565;font-weight:950;border-top:1px solid #e2ebf8;border-bottom:1px solid #d8e4f5;text-align:left;padding:0 12px;white-space:nowrap;position:sticky;top:0;z-index:2;}
thead th:first-child{border-top-left-radius:10px}
thead th:last-child{border-top-right-radius:10px}
tbody td{height:37px;border-bottom:1px solid #e7eef8;padding:0 12px;vertical-align:middle;font-weight:700;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;}
tbody tr{background:#fff;transition:.12s ease}
tbody tr:nth-child(even){background:#fbfdff}
tbody tr:hover{background:#eef6ff;box-shadow:inset 3px 0 0 var(--blue-600);}
th.sortable{cursor:pointer;}
.sort-ind{color:#7a8ba5;font-size:10px;margin-left:4px;}
.table-footer{display:flex;align-items:center;justify-content:space-between;padding-top:11px;color:#6a7890;font-size:12px;font-weight:850;}
.pager{display:flex;gap:8px;align-items:center;}
.page-btn,.page-size{height:30px;border:1px solid #d7e3f6;background:#fff;border-radius:8px;padding:0 9px;font-size:12px;font-weight:900;color:#36506f;}
.page-btn:disabled{opacity:.42;cursor:not-allowed}
.page-status{min-width:70px;height:30px;border:1px solid #d7e3f6;background:#1268ff;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:950;}
.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:7px;font-size:11px;font-weight:950;background:#eff5ff;color:#0d56de;border:1px solid #d8e6fb;}
.badge.high{background:#f1ebff;color:#7146e7;border-color:#e3d8ff;}
.badge.normal{background:#eaf6ff;color:#1470c9;border-color:#d6eaff;}
.badge.ok{background:#eafaf3;color:#0a9150;border-color:#c8efdd;}
.badge.warn{background:#fff7e6;color:#b56b00;border-color:#ffe3ad;}
.badge.danger{background:#fff0f0;color:#dc2727;border-color:#ffd1d1;}
.badge.purple{background:#f1ebff;color:#7044e8;border-color:#e3d8ff;}
.flag{font-size:16px;margin-right:7px;}
.link{color:#0d56de;font-weight:950;text-decoration:none}
/* Map */
.map-card{height:100%;display:flex;flex-direction:column;}
.map-tabs{display:flex;gap:8px;margin-bottom:10px;}
.map-tab{height:34px;border:1px solid #d7e3f6;background:#fff;border-radius:9px;padding:0 16px;font-size:12px;font-weight:950;color:#40516d;}
.map-tab.active{background:linear-gradient(135deg,#1268ff,#724cf4);color:#fff;border-color:transparent;box-shadow:0 12px 24px rgba(18,104,255,.22);}
.world-map{position:relative;flex:1;min-height:0;border-radius:15px;background:#f2f7ff url('../assets/world-map.svg') center/94% 92% no-repeat;overflow:hidden;border:1px solid #e2ebf9;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.world-map::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(18,104,255,.12),transparent 18%),radial-gradient(circle at 70% 25%,rgba(126,75,245,.10),transparent 20%),linear-gradient(180deg,rgba(255,255,255,.28),transparent);pointer-events:none;}
.map-bubble{position:absolute;transform:translate(-50%,-50%);border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:950;box-shadow:0 15px 28px rgba(14,47,94,.18), inset 0 1px 0 rgba(255,255,255,.42);border:2px solid rgba(255,255,255,.72);transition:.15s ease;}
.map-bubble:hover{transform:translate(-50%,-50%) scale(1.08);z-index:5}
.map-label{position:absolute;transform:translate(-50%,-50%);font-size:12px;font-weight:950;color:#22385a;text-shadow:0 2px 5px #fff;white-space:nowrap;text-align:center;line-height:1.2;}
.map-legend{position:absolute;left:18px;bottom:16px;width:150px;height:55px;border-radius:12px;background:rgba(255,255,255,.82);border:1px solid #e2ebf9;padding:10px;font-size:11px;color:#63728a;font-weight:850;}
.legend-line{height:8px;border-radius:999px;background:linear-gradient(90deg,#b8d3ff,#1268ff,#7e4bf5);margin-top:7px;}
.leaflet-card{height:100%;display:flex;flex-direction:column;min-height:0;}
.premium-map-tabs{position:relative;z-index:4;margin-bottom:10px;}
.header-map-tabs{margin:0;justify-content:flex-end;gap:6px;}
.header-map-tabs .map-tab{height:32px;border-radius:999px;padding:0 13px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 4px 10px rgba(7,28,62,.05);}
.header-map-tabs .map-tab.active{background:linear-gradient(135deg,#1268ff,#12b8b0);box-shadow:0 10px 20px rgba(18,104,255,.20);}
.header-map-tabs .map-tab.drill-back{border-color:#cfe0ff;background:#eef5ff;color:#0d56de}
.leaflet-stage{position:relative;flex:1;min-height:0;border-radius:15px;overflow:hidden;border:1px solid #dbe8f8;background:#eef6ff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 30px rgba(7,28,62,.07);}
.leaflet-map{position:absolute;inset:0;z-index:1;background:#eaf3ff;}
.leaflet-fallback{display:none;position:absolute;inset:0;z-index:0;}
.leaflet-missing .leaflet-map{display:none}
.leaflet-missing .leaflet-fallback{display:block}
.leaflet-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.24),transparent 32%,rgba(255,255,255,.10)),radial-gradient(circle at 18% 18%,rgba(18,104,255,.12),transparent 26%);}
.leaflet-control-zoom{border:0!important;box-shadow:0 14px 28px rgba(7,28,62,.13)!important;border-radius:12px!important;overflow:hidden;}
.leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:32px!important;border:0!important;background:rgba(255,255,255,.92)!important;color:#0b3266!important;font-weight:950!important;}
.leaflet-control-zoom a:hover{background:#eef6ff!important;color:#1268ff!important;}
.leaflet-container{font-family:var(--font);letter-spacing:-0.02em;line-height:1.55;}
.leaflet-popup-content-wrapper{border-radius:16px!important;border:1px solid rgba(198,216,241,.94);box-shadow:0 18px 38px rgba(7,28,62,.18)!important;background:rgba(255,255,255,.96)!important;}
.leaflet-popup-content{margin:0!important;}
.leaflet-popup-tip{background:rgba(255,255,255,.96)!important;border:1px solid rgba(198,216,241,.94);}
.leaflet-popup-card{width:286px;padding:16px 16px 14px;color:#102a4d;}
.leaflet-popup-card b{display:block;font-size:15px;font-weight:950;color:#081936;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;}
.leaflet-popup-card p{margin:0 0 12px;color:#60718a;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.popup-grid{display:grid;grid-template-columns:1fr auto;gap:7px 14px;padding:11px;border-radius:12px;background:linear-gradient(135deg,#f6faff,#fff);border:1px solid #e2ebf8;}
.popup-grid span{font-size:11px;color:#718096;font-weight:900}.popup-grid strong{font-size:12px;color:#0b254c;font-weight:950;text-align:right;}
.popup-action{width:100%;height:34px;border:0;border-radius:10px;margin-top:11px;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;font-size:12px;font-weight:950;box-shadow:0 10px 20px rgba(18,104,255,.22);}
.premium-marker{position:relative;border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:950;border:2px solid rgba(255,255,255,.86);box-shadow:0 16px 30px rgba(7,28,62,.20),inset 0 1px 0 rgba(255,255,255,.48);transition:transform .16s ease,filter .16s ease;}
.premium-marker::before{content:"";position:absolute;inset:-8px;border-radius:inherit;opacity:.32;background:currentColor;filter:blur(7px);}
.premium-marker span{position:relative;z-index:1;text-shadow:0 1px 5px rgba(0,0,0,.24);}
.premium-marker small{position:absolute;left:50%;top:100%;transform:translate(-50%,6px);min-width:34px;padding:2px 6px;border-radius:999px;background:rgba(10,28,58,.86);color:#fff;font-size:10px;font-weight:950;line-height:1;box-shadow:0 6px 14px rgba(7,28,62,.22)}
.premium-marker:hover{transform:scale(1.08);filter:saturate(1.08)}
.premium-marker.blue{background:linear-gradient(135deg,#1268ff,#294cff);color:#1268ff}
.premium-marker.teal{background:linear-gradient(135deg,#12b8b0,#19c37d);color:#12b8b0}
.premium-marker.purple{background:linear-gradient(135deg,#7e4bf5,#1268ff);color:#7e4bf5}
.premium-marker.rank-pin{border-radius:12px 12px 12px 3px;transform:rotate(-45deg);box-shadow:0 12px 24px rgba(76,51,211,.24),inset 0 1px 0 rgba(255,255,255,.48)}
.premium-marker.rank-pin::before{display:none}
.premium-marker.rank-pin span{transform:rotate(45deg);font-size:13px;color:#fff;text-shadow:none}
.premium-marker.rank-pin small{top:94%;left:86%;transform:translate(-50%,6px) rotate(45deg)}
.premium-marker.approx{background:repeating-linear-gradient(135deg,#64748b 0 8px,#94a3b8 8px 16px);color:#64748b;border-style:dashed;opacity:.92}
.premium-marker.amber{background:linear-gradient(135deg,#ff7a00,#ffb020);color:#ff9500}
.premium-marker.red{background:linear-gradient(135deg,#ef3232,#f45b93);color:#ef3232}
.entity-label-marker{display:inline-flex;align-items:center;gap:5px;max-width:92px;height:26px;padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.88);border:1px solid rgba(196,215,240,.86);box-shadow:0 8px 18px rgba(7,28,62,.14);backdrop-filter:blur(7px);white-space:nowrap;color:#0b254c}
.entity-label-marker span{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:5px;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;font-size:10px;font-weight:950;line-height:1}
.entity-label-marker b{min-width:0;max-width:42px;overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:950;color:#102a4d;line-height:1}
.entity-label-marker strong{font-size:10px;font-weight:950;color:#1268ff;line-height:1}
.country-dot-marker{position:relative;display:inline-grid;grid-template-rows:17px 13px;place-items:center;gap:2px;height:32px;padding:0;color:#0b254c;white-space:nowrap}
.country-dot-line{display:inline-flex;align-items:center;justify-content:center;gap:4px}
.country-dot-line span{font-size:11px;font-weight:950;line-height:1;letter-spacing:.02em;color:#071f4d;text-shadow:0 1px 0 #fff,0 0 4px rgba(255,255,255,.92)}
.country-dot-marker strong{font-size:11px;font-weight:950;color:#1268ff;line-height:1;text-shadow:0 1px 0 #fff,0 0 4px rgba(255,255,255,.92)}
.country-dot-marker.blue,.country-dot-marker.red,.country-dot-marker.teal{border-color:transparent}
.premium-cluster{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(234,242,255,.88));border:1px solid rgba(179,205,240,.95);box-shadow:0 16px 30px rgba(7,28,62,.22),inset 0 1px 0 rgba(255,255,255,.95);}
.premium-cluster b{width:34px;height:34px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;font-size:13px;font-weight:950;}
.map-floating-legend{position:absolute;left:16px;bottom:16px;z-index:3;min-width:174px;border-radius:14px;background:rgba(255,255,255,.88);border:1px solid #dce8f8;box-shadow:0 14px 28px rgba(7,28,62,.10);backdrop-filter:blur(12px);padding:11px 12px;display:grid;gap:7px;font-size:11px;color:#586a83;font-weight:850;}
.map-floating-legend b{font-size:12px;color:#0b254c;font-weight:950;margin-bottom:1px;}
.map-floating-legend em{font-style:normal;color:#7a4b00;background:#fff7e6;border:1px solid #ffe2ad;border-radius:8px;padding:6px 7px;line-height:1.35}
.drill-rank-overlay{position:absolute;right:16px;top:16px;z-index:4;width:min(300px,38%);max-height:calc(100% - 32px);overflow:auto;border:1px solid rgba(202,218,240,.9);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 18px 38px rgba(7,28,62,.14);padding:12px;backdrop-filter:blur(10px)}
.drill-rank-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}
.drill-rank-head b{font-size:13px;color:#0d254c}.drill-rank-head span{font-size:10px;font-weight:950;color:#6d7f98}
.drill-rank-item{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid rgba(213,226,246,.88);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);padding:7px 9px;margin-top:6px;color:#173052;text-align:left;font-weight:900}
.drill-rank-item i{width:24px;height:24px;border-radius:9px;background:linear-gradient(135deg,#7e4bf5,#1268ff);display:grid;place-items:center;color:#fff;font-style:normal;font-size:12px;box-shadow:0 8px 16px rgba(76,51,211,.18)}
.drill-rank-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.drill-rank-item b{font-size:12px;color:#1268ff}
.drill-rank-item:hover{border-color:#1268ff;box-shadow:0 10px 22px rgba(18,104,255,.10);transform:translateY(-1px)}
.legend-dot{width:9px;height:9px;border-radius:999px;display:inline-block;margin-right:7px;box-shadow:0 0 0 4px rgba(18,104,255,.10)}
.legend-dot.blue{background:#1268ff}.legend-dot.amber{background:#ff9a00}.legend-dot.red{background:#ef3232}.legend-dot.teal{background:#12b8b0}.legend-dot.gray{background:#64748b}
.popup-note{margin-top:10px;border:1px solid #ffe0a8;background:#fff7e8;color:#8a5600;border-radius:10px;padding:8px 10px;font-size:11px;font-weight:850;line-height:1.4}
/* Stacked bars */
.stack-list{display:flex;flex-direction:column;gap:22px;padding:15px 20px;}
.stack-row{display:grid;grid-template-columns:60px 1fr 52px;align-items:center;gap:18px;}
.stack-label{font-size:25px;font-weight:950;color:#081936;}
.stack-track{height:50px;border-radius:12px;background:#e9eef7;display:flex;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.06);}
.stack-seg{height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:950;font-size:14px;white-space:nowrap;}
.stack-seg.gray{color:#27354a;background:#edf1f7;}
.stack-seg.blue{background:linear-gradient(90deg,#1268ff,#7b4df5)}
.stack-seg.orange{background:linear-gradient(90deg,#ff7a00,#ffb020)}
.stack-100{font-size:13px;font-weight:900;color:#52627a}
/* Heatmap */
.heatmap-table{table-layout:fixed;height:100%;}
.heatmap-table th,.heatmap-table td{text-align:center;padding:0;border:1px solid #e3ebf7;height:38px;}
.heatmap-table thead th{font-size:12px;line-height:1.15;background:#f7faff;position:static;}
.heatmap-table tbody th{font-size:12px;background:#f8fbff;color:#1a3153;font-weight:950;text-align:left;padding-left:12px;}
.heatcell{font-size:12px;font-weight:950;color:#122848;cursor:pointer;transition:.12s ease;}
.heatcell:hover{outline:2px solid #1268ff;outline-offset:-2px;transform:scale(1.02)}
.scale-note{display:flex;align-items:center;gap:10px;justify-content:center;font-size:11px;font-weight:850;color:#63728a;margin-top:10px;}
.gradient-scale{width:270px;height:9px;border-radius:999px;background:linear-gradient(90deg,#eef5ff,#d6e7ff,#9bc3ff,#1268ff,#064cdb);}
/* Treemap */
.treemap{display:grid;gap:3px;height:100%;border-radius:12px;overflow:hidden;background:#e6edf8;border:1px solid #e2ebf9;}
.treemap .tile{position:relative;border-radius:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#fff;padding:7px;font-weight:950;overflow:hidden;min-height:60px;cursor:pointer;transition:.12s ease;}
.treemap .tile:hover{filter:brightness(1.06);transform:scale(.995)}
.tile-title{font-size:14px;line-height:1.12;letter-spacing:-.1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.tile-value{font-size:20px;margin-top:6px;letter-spacing:-.3px;}
.tile-percent{font-size:12px;margin-top:2px;opacity:.92;}
/* bars */
.bar-list{display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center;}
.bar-row{display:grid;grid-template-columns:140px 1fr 92px;align-items:center;gap:12px;}
.bar-label{font-weight:900;color:#1b3456;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bar-track{height:13px;border-radius:999px;background:#e7edf7;overflow:hidden;}
.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#1268ff,#7e4bf5);}
.bar-value{font-size:12px;font-weight:900;color:#52627a;text-align:right;}
.bar-fill.teal{background:linear-gradient(90deg,#12b8b0,#19c37d)}
.bar-fill.orange{background:linear-gradient(90deg,#ff7a00,#ffb020)}
.bar-fill.red{background:linear-gradient(90deg,#ef3232,#f45b93)}
[data-quick-search]{cursor:pointer}
[data-quick-search]:hover{filter:saturate(1.08)}
/* Momentum / quality / conversion */
.momentum-card{height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:54px 1fr 20px;gap:7px;padding:0 8px;}
.momentum-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:center;}
.momentum-summary div{border:1px solid #e2ebf8;border-radius:14px;background:#fff;padding:8px 12px;box-shadow:0 8px 18px rgba(7,28,62,.05)}
.momentum-summary label{display:block;font-size:11px;color:#66758b;font-weight:950;margin-bottom:3px}
.momentum-summary b{display:block;font-size:18px;color:#09234e;line-height:1}
.momentum-summary span{font-size:10px;color:#64758d;font-weight:850}
.mini-trend{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;align-items:end;min-width:0;}
.mini-month{height:100%;display:grid;grid-template-rows:1fr 18px;gap:5px;align-items:end;text-align:center}
.mini-bars{height:100%;display:flex;align-items:end;justify-content:center;gap:5px;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#eef5ff);border:1px solid #e1ebf9;padding:8px 7px 5px}
.mini-bars i{width:14px;border-radius:8px 8px 3px 3px;display:block;min-height:6px}
.mini-bars i.fcc,.trend-legend i.fcc{background:linear-gradient(180deg,#1268ff,#294cff)}
.mini-bars i.kc,.trend-legend i.kc{background:linear-gradient(180deg,#12b8b0,#19c37d)}
.mini-month span{font-size:11px;font-weight:950;color:#61718a}
.trend-legend{display:flex;align-items:center;justify-content:center;gap:18px;font-size:11px;font-weight:950;color:#60718a}
.trend-legend i{width:9px;height:9px;border-radius:999px;display:inline-block;margin-right:6px}
.quality-grid{height:100%;display:grid;grid-template-columns:repeat(4,1fr) 1.35fr;gap:9px;align-items:stretch}
.quality-card{border:1px solid #e2ebf8;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);padding:12px 13px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.quality-card label{font-size:11px;font-weight:950;color:#66758b;margin-bottom:5px}
.quality-card b{font-size:20px;color:#09234e;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quality-card span{font-size:10px;font-weight:850;color:#7b889b;margin-top:5px}
.quality-missing{min-width:0;border:1px solid #e2ebf8;border-radius:14px;background:#fff;padding:6px 10px;overflow:hidden}
.quality-missing .bar-list{gap:5px;justify-content:center}
.quality-missing .bar-row{grid-template-columns:82px 1fr 56px;gap:8px}
.quality-missing .bar-label,.quality-missing .bar-value{font-size:10px}
.quality-missing .bar-track{height:8px}
.conversion-funnel{height:100%;display:grid;grid-template-columns:1fr;gap:9px;padding:2px 2px}
.funnel-row{position:relative;min-height:32px;border:1px solid #dfe9f7;border-radius:13px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:0 14px}
.funnel-row i{position:absolute;left:0;top:0;bottom:0;opacity:.14;z-index:0}
.funnel-row div,.funnel-row strong{position:relative;z-index:1}
.funnel-row b{display:block;font-size:12px;color:#173151}
.funnel-row span{font-size:10px;color:#68788f;font-weight:900}
.funnel-row strong{font-size:17px;color:#0b254c}
.funnel-row.blue i{background:#1268ff}.funnel-row.purple i{background:#7e4bf5}.funnel-row.red i{background:#ef3232}.funnel-row.teal i{background:#12b8b0}.funnel-row.orange i{background:#ff7a00}
/* Layouts */
.exec-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);gap:16px;}
.p1-map{grid-column:1/9;grid-row:1/8}.p1-geo{grid-column:1/9;grid-row:8/13}.p1-summary{grid-column:9/13;grid-row:1/5}.p1-coverage{grid-column:9/13;grid-row:5/8}.p1-country{grid-column:9/13;grid-row:8/13}
.p1-map .panel-head{height:58px}.p1-map .panel-body{height:calc(100% - 58px);padding:14px 16px 16px}.p1-map .leaflet-stage{border-radius:18px;aspect-ratio:16/9;max-height:100%;min-height:0}.p1-map .map-floating-legend{left:18px;bottom:18px;min-width:210px}
.exec-kpi-grid{height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:1px}
.exec-kpi-card{position:relative;min-width:0;border:1px solid #dce8f8;border-radius:15px;background:linear-gradient(135deg,#fff,#f8fbff);padding:13px 14px;box-shadow:0 10px 22px rgba(7,28,62,.05);overflow:hidden}
.exec-kpi-card::before{content:"";position:absolute;right:-20px;top:-26px;width:74px;height:74px;border-radius:999px;background:rgba(18,104,255,.10)}
.exec-kpi-card span{display:block;color:#60718a;font-size:11px;font-weight:950;margin-bottom:7px}.exec-kpi-card b{display:block;color:#071f4d;font-size:25px;line-height:1;font-weight:950;letter-spacing:-.5px}.exec-kpi-card p{margin:8px 0 0;color:#687a92;font-size:11px;font-weight:800;line-height:1.25}
.kpi-card-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 82px;align-items:center;gap:8px}
.kpi-card-copy{min-width:0}.kpi-card-copy b{white-space:nowrap}
.kpi-spark{height:54px;display:grid;grid-template-rows:38px 10px;align-items:center;justify-items:stretch;gap:2px;border-radius:12px;padding:4px 5px;background:rgba(255,255,255,.72);border:1px solid rgba(207,224,255,.72);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.kpi-spark svg{width:100%;height:38px;overflow:visible}.kpi-spark rect{fill:rgba(18,104,255,.13)}.kpi-spark polyline{stroke:#1268ff;filter:drop-shadow(0 2px 3px rgba(18,104,255,.18))}
.spark-years{display:flex;justify-content:space-between;gap:2px}.spark-years span{margin:0;color:#8290a4;font-size:8px;font-weight:950;line-height:1}
.kpi-spark strong{position:absolute;right:6px;top:5px;border-radius:999px;padding:2px 5px;background:rgba(255,255,255,.88);font-size:8px;font-weight:950;color:#08a65a;box-shadow:0 2px 7px rgba(7,28,62,.08)}.kpi-spark strong.down{color:#e24747}
.kpi-spark.purple rect{fill:rgba(126,75,245,.14)}.kpi-spark.purple polyline{stroke:#7e4bf5}.kpi-spark.green rect{fill:rgba(18,168,91,.14)}.kpi-spark.green polyline{stroke:#12a85b}.kpi-spark.teal rect{fill:rgba(18,184,176,.14)}.kpi-spark.teal polyline{stroke:#12b8b0}.kpi-spark.orange rect{fill:rgba(255,122,0,.15)}.kpi-spark.orange polyline{stroke:#ff7a00}
.exec-kpi-card.blue{border-color:#cfe0ff}.exec-kpi-card.green{border-color:#cdeedc}.exec-kpi-card.purple{border-color:#ddcffc}.exec-kpi-card.orange{border-color:#ffe0bb}.exec-kpi-card.teal{border-color:#c8eee9}
.exec-kpi-card.blue::before{background:rgba(18,104,255,.12)}.exec-kpi-card.green::before{background:rgba(18,168,91,.12)}.exec-kpi-card.purple::before{background:rgba(126,75,245,.12)}.exec-kpi-card.orange::before{background:rgba(255,122,0,.12)}.exec-kpi-card.teal::before{background:rgba(18,184,176,.12)}
.country-snapshot{height:100%;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}
.country-snapshot-card{min-height:0;border:1px solid #dce8f8;border-radius:15px;background:linear-gradient(135deg,#fff,#f8fbff);padding:11px 12px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;box-shadow:0 8px 18px rgba(7,28,62,.04)}
.snapshot-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.snapshot-title b{font-size:13px;color:#0b254c;font-weight:950}.snapshot-title span{font-size:10px;color:#687a92;font-weight:850;text-align:right;line-height:1.25;max-width:150px}
.snapshot-list{display:grid;gap:6px;align-content:start;overflow:hidden}
.snapshot-row{position:relative;height:25px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;border-radius:8px;padding:0 8px;overflow:hidden;background:#f5f8ff;border:1px solid #e5eefb;cursor:pointer}
.snapshot-row i{position:relative;z-index:1;width:17px;height:17px;border-radius:6px;background:#fff;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:950;color:#1268ff;box-shadow:0 2px 6px rgba(7,28,62,.06)}
.snapshot-row span,.snapshot-row strong{position:relative;z-index:1;font-size:11px;font-weight:950;color:#142d52;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snapshot-row strong{font-size:12px;text-align:right}
.snapshot-row em{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,rgba(18,104,255,.12),rgba(18,104,255,.03));z-index:0}
.country-snapshot-card.teal .snapshot-row em{background:linear-gradient(90deg,rgba(18,184,176,.14),rgba(18,184,176,.03))}.country-snapshot-card.purple .snapshot-row em{background:linear-gradient(90deg,rgba(126,75,245,.14),rgba(126,75,245,.03))}
.geo-detail{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}
.geo-hero{min-height:70px;border:1px solid #dce8f8;border-radius:16px;background:linear-gradient(135deg,#fff,#f7fbff);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;box-shadow:0 10px 22px rgba(7,28,62,.05)}
.geo-hero span{font-size:11px;color:#60718a;font-weight:950}.geo-hero h3{margin:5px 0 0;color:#071f4d;font-size:22px;line-height:1;font-weight:950}
.geo-drill-note{margin:7px 0 0;color:#0d56de;font-size:11px;font-weight:900}
.geo-hero-metrics{display:grid;grid-template-columns:repeat(5,auto);gap:8px}.geo-hero-metrics b{min-width:76px;border-radius:13px;background:#f3f7ff;border:1px solid #e1ebfa;padding:9px 10px;color:#071f4d;font-size:18px;line-height:1;font-weight:950;text-align:right}.geo-hero-metrics small{display:block;margin-top:5px;color:#687a92;font-size:10px;font-weight:900}
.geo-detail-grid{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.geo-mini{min-height:0;border:1px solid #dce8f8;border-radius:16px;background:linear-gradient(135deg,#fff,#f8fbff);padding:12px;display:grid;align-content:start;gap:8px;box-shadow:0 8px 18px rgba(7,28,62,.04);overflow:hidden}
.geo-mini>b{font-size:13px;color:#0b254c;font-weight:950}.geo-mini-row{position:relative;height:30px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;border-radius:9px;background:#f5f8ff;border:1px solid #e5eefb;padding:0 8px;overflow:hidden;cursor:pointer}
.geo-mini-row span,.geo-mini-row em,.geo-mini-row strong{position:relative;z-index:1}.geo-mini-row span{width:17px;height:17px;border-radius:6px;background:#fff;display:grid;place-items:center;color:#1268ff;font-size:10px;font-weight:950;box-shadow:0 2px 6px rgba(7,28,62,.06)}.geo-mini-row em{font-style:normal;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#142d52;font-size:12px;font-weight:900}.geo-mini-row strong{color:#0b254c;font-size:12px;font-weight:950;text-align:right}
.geo-mini-row i{position:absolute;left:0;top:0;bottom:0;border-radius:9px;background:linear-gradient(90deg,rgba(18,104,255,.13),rgba(18,104,255,.03));z-index:0}.geo-mini.purple .geo-mini-row i{background:linear-gradient(90deg,rgba(126,75,245,.13),rgba(126,75,245,.03))}.geo-mini.teal .geo-mini-row i{background:linear-gradient(90deg,rgba(18,184,176,.13),rgba(18,184,176,.03))}
.matrix-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:104px 1fr 278px;}
.p2-axis{grid-column:1/13;grid-row:1}.p2-heatmap{grid-column:1/8;grid-row:2}.p2-tree{grid-column:8/13;grid-row:2}.p2-table{grid-column:1/9;grid-row:3}.p2-white{grid-column:9/13;grid-row:3}
.manufacturer-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:330px 1fr;}
.p3-table{grid-column:1/7;grid-row:1/3}.p3-profile{grid-column:7/13;grid-row:1}.p3-workspace{grid-column:7/13;grid-row:2}
.manufacturer360-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:188px 270px 1fr;gap:14px}
.p10-hero{grid-column:1/8;grid-row:1}.p10-insights{grid-column:8/13;grid-row:1}.p10-trend{grid-column:1/5;grid-row:2}.p10-lab{grid-column:5/9;grid-row:2}.p10-class{grid-column:9/13;grid-row:2}.p10-source{grid-column:1/8;grid-row:3}.p10-playbook{grid-column:8/13;grid-row:3}
.lab-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:370px 1fr;}
.p4-map{grid-column:1/9;grid-row:1}.p4-profile{grid-column:9/13;grid-row:1}.p4-table{grid-column:1/9;grid-row:2}.p4-rel{grid-column:9/13;grid-row:2}
.source-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:170px 1fr;}
.p5-toolbar{grid-column:1/8;grid-row:1}.p5-quality{grid-column:8/13;grid-row:1}.p5-grid{grid-column:1/13;grid-row:2}
.kc-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:295px 1fr;}
.p6-control{grid-column:1/4;grid-row:1}.p6-map{grid-column:4/9;grid-row:1}.p6-tree{grid-column:9/13;grid-row:1}.p6-table{grid-column:1/9;grid-row:2}.p6-evidence{grid-column:9/13;grid-row:2}
.opp-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:112px 1fr 270px;}
.p7-mode{grid-column:1/13;grid-row:1}.p7-table{grid-column:1/8;grid-row:2/4}.p7-reason{grid-column:8/11;grid-row:2}.p7-evidence{grid-column:11/13;grid-row:2}.p7-conversion{grid-column:8/13;grid-row:3}
.unified-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:150px 350px 1fr;}
.p8-notice{grid-column:1/13;grid-row:1}.p8-flow{grid-column:1/8;grid-row:2}.p8-matrix{grid-column:8/13;grid-row:2}.p8-breakdown{grid-column:1/13;grid-row:3}
.report-grid{grid-template-columns:repeat(12,1fr);grid-template-rows:210px 1fr;}
.p9-scope{grid-column:1/6;grid-row:1}.p9-summary{grid-column:6/13;grid-row:1}.p9-preview{grid-column:1/7;grid-row:2}.p9-export{grid-column:7/13;grid-row:2}
/* Specialized cards */
.scope-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;height:100%;}
.scope-card{border:1px solid #dbe7f8;border-radius:15px;background:linear-gradient(180deg,#fff,#f8fbff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;transition:.15s ease;}
.scope-card.active{border-color:#1268ff;box-shadow:0 12px 24px rgba(18,104,255,.16);background:linear-gradient(180deg,#fff,#f1f7ff)}
.scope-icon{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 12px 22px rgba(18,104,255,.20)}
.scope-card:nth-child(3) .scope-icon{background:linear-gradient(135deg,#12b8b0,#19c37d)}
.scope-card:nth-child(4) .scope-icon{background:linear-gradient(135deg,#ff7a00,#ffb020)}
.scope-card:nth-child(5) .scope-icon{background:linear-gradient(135deg,#ef3232,#f45b93)}
.scope-title{font-weight:950;font-size:13px;color:#132b4e;text-align:center}
.scope-sub{font-weight:750;font-size:11px;color:#60718a;text-align:center}
.profile-hero{height:112px;border-radius:18px;background:radial-gradient(circle at 78% 15%,rgba(126,75,245,.14),transparent 35%),linear-gradient(135deg,#ffffff,#f7f3ff);border:1px solid #eadfff;display:flex;align-items:center;padding:0 22px;gap:18px;margin-bottom:14px;}
.avatar{width:72px;height:72px;border-radius:22px;background:linear-gradient(135deg,#1268ff,#8f66ff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:950;box-shadow:0 16px 26px rgba(126,75,245,.25)}
.profile-name{font-size:23px;font-weight:950;letter-spacing:-.5px;margin-bottom:7px}
.profile-meta{font-weight:800;color:#52627a;font-size:13px}
.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.stat-mini{border:1px solid #e2eaf6;border-radius:13px;background:rgba(255,255,255,.78);padding:14px;}
.stat-mini label{display:block;font-size:11px;color:#718096;font-weight:900;margin-bottom:6px}.stat-mini b{font-size:21px;letter-spacing:-.4px;color:#0b254c}
.profile-actions{display:flex;gap:8px;margin-top:12px}.profile-actions .pill-btn{height:38px;padding:0 14px;font-size:12px}
.m360-hero{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 1.35fr;gap:14px;align-items:center;padding:0 4px}
.m360-kicker{font-size:10px;font-weight:950;color:#1268ff;letter-spacing:.9px;margin-bottom:6px}.m360-hero h3{margin:0 0 7px;font-size:24px;letter-spacing:-.5px;color:#081f49;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m360-hero p{margin:0;font-weight:850;color:#52637b;font-size:12px;line-height:1.45}
.m360-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.m360-metrics div{height:78px;border:1px solid #dce8f8;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);display:flex;flex-direction:column;justify-content:center;padding:0 10px;min-width:0}.m360-metrics label{font-size:10px;font-weight:950;color:#718096;margin-bottom:6px}.m360-metrics b{font-size:17px;color:#0b254c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m360-card-grid{height:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.m360-card{border-radius:15px;padding:13px 12px;color:#fff;display:flex;flex-direction:column;justify-content:center;min-width:0;box-shadow:0 14px 28px rgba(7,28,62,.10)}.m360-card span{font-size:11px;font-weight:950;opacity:.9}.m360-card b{font-size:20px;margin:7px 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m360-card p{margin:0;font-size:10px;line-height:1.35;font-weight:850;opacity:.94}.m360-card.blue{background:linear-gradient(135deg,#1268ff,#294cff)}.m360-card.teal{background:linear-gradient(135deg,#12b8b0,#19c37d)}.m360-card.orange{background:linear-gradient(135deg,#ff7a00,#ffb020)}.m360-card.purple{background:linear-gradient(135deg,#7e4bf5,#a05cff)}
.m360-playbook{height:100%;display:grid;grid-template-rows:22px repeat(4,1fr);gap:7px}.m360-playbook-title{font-size:12px;font-weight:950;color:#173151}.m360-action{border:1px solid #dfe9f7;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:8px 11px;min-width:0}.m360-action i{width:27px;height:27px;border-radius:9px;background:#eff5ff;color:#1268ff;font-style:normal;font-weight:950;display:flex;align-items:center;justify-content:center}.m360-action b{display:block;font-size:12px;color:#193557;margin-bottom:3px}.m360-action span{font-size:10px;font-weight:820;color:#5f7088;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-icons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.product-icon{width:32px;height:32px;border-radius:10px;background:#f3f7ff;border:1px solid #dfe8f6;display:flex;align-items:center;justify-content:center;color:#31557f}
.workspace-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;border-bottom:1px solid #e2ebf7;margin:-4px -2px 12px;min-height:48px}
.workspace-tabs{height:48px;display:flex;align-items:center;min-width:0}.workspace-tab{height:48px;padding:0 18px;border:0;background:transparent;font-weight:950;color:#53647d;border-bottom:3px solid transparent;white-space:nowrap}.workspace-tab.active{color:#079a92;border-color:#12b8b0;background:linear-gradient(180deg,rgba(18,184,176,.05),transparent)}
.viz-switcher{display:flex;align-items:center;gap:6px;background:#f3f7ff;border:1px solid #dce8f8;border-radius:13px;padding:5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.viz-switcher button{height:30px;border:0;border-radius:9px;background:transparent;color:#52637b;font-size:12px;font-weight:950;padding:0 11px;white-space:nowrap}
.viz-switcher button.active{background:#fff;color:#0b56d6;box-shadow:0 6px 14px rgba(7,28,62,.10)}
.manufacturer-viz-body{height:calc(100% - 60px);min-height:0}
.empty-viz{height:100%;display:flex;align-items:center;justify-content:center;border:1px dashed #cddbf0;border-radius:14px;color:#66758b;font-weight:900;background:#f8fbff}
.viz-donut-layout{height:100%;display:grid;grid-template-columns:210px 1fr;gap:20px;align-items:center}
.donut.custom{width:190px;height:190px}.donut.custom::after{width:104px;height:104px}
.viz-legend{gap:11px;min-width:0}.viz-legend .legend-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px}.viz-legend .legend-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1a3153}.viz-legend .legend-item span:last-child{font-size:11px;color:#66758b;font-weight:950}
.viz-line-card{height:100%;display:grid;grid-template-rows:24px 1fr 28px;gap:9px}
.viz-title{font-size:12px;font-weight:950;color:#52637b}
.viz-line-plot{min-height:0;display:grid;grid-template-columns:repeat(7,1fr);gap:12px;align-items:end}
.viz-line-col{height:100%;display:grid;grid-template-rows:1fr 18px;gap:5px;text-align:center;min-width:0}
.viz-line-bars{height:100%;display:flex;align-items:end;justify-content:center;gap:5px;border:1px solid #e0eaf7;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#eef5ff);padding:9px 7px 6px;min-height:120px}
.viz-line-bars i{width:12px;min-height:4px;border-radius:8px 8px 3px 3px;display:block}
.viz-line-col span{font-size:11px;font-weight:950;color:#66758b}
.viz-line-legend{overflow:hidden;justify-content:flex-start;gap:12px;white-space:nowrap}.viz-line-legend span{overflow:hidden;text-overflow:ellipsis}.viz-line-legend i.s0,.viz-line-bars i.s0{background:linear-gradient(180deg,#1268ff,#294cff)}.viz-line-legend i.s1,.viz-line-bars i.s1{background:linear-gradient(180deg,#12b8b0,#19c37d)}.viz-line-legend i.s2,.viz-line-bars i.s2{background:linear-gradient(180deg,#7e4bf5,#a05cff)}.viz-line-legend i.s3,.viz-line-bars i.s3{background:linear-gradient(180deg,#ff7a00,#ffb020)}
.lab-year-stack{height:100%;display:grid;grid-template-rows:58px 1fr 30px;gap:10px}
.lab-year-summary{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:10px}
.lab-year-summary div{border:1px solid #e2ebf8;border-radius:13px;background:linear-gradient(180deg,#fff,#f8fbff);padding:8px 12px;min-width:0}
.lab-year-summary label{display:block;font-size:10px;font-weight:950;color:#718096;margin-bottom:3px}.lab-year-summary b{font-size:17px;color:#0b254c;white-space:nowrap}
.lab-year-rows{display:flex;flex-direction:column;gap:9px;justify-content:center;min-height:0;overflow:hidden}
.lab-year-row{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:12px}
.lab-year-label{font-size:13px;font-weight:950;color:#1b3456}.lab-year-label span{display:block;font-size:10px;color:#718096;margin-top:2px}
.lab-year-track{height:31px;border-radius:11px;background:#e8eff8;overflow:hidden;display:flex;border:1px solid #dce8f8}
.lab-year-segment{height:100%;border:0;border-right:1px solid rgba(255,255,255,.44);color:#fff;font-size:10px;font-weight:950;min-width:5%;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lab-year-segment:hover{filter:brightness(1.08);transform:translateY(-1px)}
.lab-year-legend{display:flex;gap:12px;align-items:center;overflow:hidden;white-space:nowrap;font-size:11px;font-weight:950;color:#52637b}
.lab-year-legend span{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.lab-year-legend i{width:9px;height:9px;border-radius:999px;flex:0 0 auto}
.side-metric-list{display:grid;grid-template-columns:1fr;gap:10px}.side-metric{border:1px solid #dbe7f6;border-radius:13px;padding:12px 14px;background:#fbfdff;display:flex;justify-content:space-between;align-items:center}.side-metric span{font-weight:900;color:#61718a;font-size:12px}.side-metric b{font-size:18px;color:#0b254c}
.match-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;height:100%;}.match-card{border-radius:15px;border:1px solid #dce8f8;background:linear-gradient(135deg,#fff,#f8fbff);padding:16px;display:flex;flex-direction:column;justify-content:center;gap:9px}.match-card b{font-size:24px}.match-card strong{font-size:13px;color:#4a5f7a}.match-card.blue{background:linear-gradient(135deg,#1268ff,#514cff);color:#fff}.match-card.green{background:linear-gradient(135deg,#e7fbf2,#fff)}.match-card.red{background:linear-gradient(135deg,#fff0ef,#fff)}.match-card.amber{background:linear-gradient(135deg,#fff8e8,#fff)}.match-card.purple{background:linear-gradient(135deg,#f5f0ff,#fff)}
.evidence-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e2ebf7;margin-bottom:12px}.evidence-tab{height:42px;border:0;background:transparent;font-weight:950;color:#53647d;border-bottom:3px solid transparent}.evidence-tab.active{border-color:#1268ff;color:#1268ff;background:#f7fbff}.kv-list{display:grid;grid-template-columns:1fr;gap:8px}.kv{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center;min-height:30px}.kv label{font-size:12px;font-weight:950;color:#62748e}.kv span{font-size:13px;font-weight:850;color:#122848;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-bars{display:flex;flex-direction:column;gap:14px}.score-line{display:grid;grid-template-columns:84px 1fr 36px;gap:10px;align-items:center}.score-line label{font-size:12px;font-weight:950;color:#4f617b}.score-value{text-align:right;font-size:12px;font-weight:950;color:#152b4e}
.notice-card{height:100%;display:flex;align-items:center;gap:28px;padding:0 28px}.notice-icon{width:74px;height:74px;border-radius:22px;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 16px 28px rgba(18,104,255,.25)}.notice-copy h3{margin:0 0 10px;font-size:22px}.notice-copy p{margin:0;color:#465b76;font-weight:780;line-height:1.7;font-size:14px}.criteria-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-left:auto;min-width:650px}.criteria{height:88px;border-radius:15px;border:1px solid #dce8f8;background:#fff;padding:14px}.criteria b{display:block;font-size:15px;margin-bottom:8px}.criteria span{font-size:12px;color:#66758b;font-weight:850}
.flow-steps{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 4px}
.flow-step{flex:1;height:218px;border-radius:20px;background:linear-gradient(160deg,#fff 0%,#f3f8ff 100%);border:1px solid #d5e4f7;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;position:relative;padding:22px 20px;box-shadow:0 16px 32px rgba(7,28,62,.08),inset 0 1px 0 rgba(255,255,255,.96);overflow:hidden}
.flow-step::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#1268ff,#7e4bf5)}
.flow-step:nth-child(2)::before{background:linear-gradient(90deg,#7e4bf5,#f45b93)}
.flow-step:nth-child(3)::before{background:linear-gradient(90deg,#12b8b0,#19c37d)}
.flow-step:nth-child(4)::before{background:linear-gradient(90deg,#ff7a00,#ffb020)}
.flow-step:nth-child(5)::before{background:linear-gradient(90deg,#0b3266,#1268ff)}
.flow-step:not(:last-child)::after{content:"";position:absolute;right:-21px;top:50%;width:30px;height:30px;border-top:4px solid rgba(18,104,255,.30);border-right:4px solid rgba(18,104,255,.30);transform:translateY(-50%) rotate(45deg);z-index:2;background:rgba(255,255,255,.4)}
.flow-step .flow-num{font-size:30px;font-weight:950;color:#071f4d;line-height:1;letter-spacing:-.8px}
.flow-step .flow-label{font-weight:950;margin-top:16px;font-size:16px;color:#16375f}
.flow-step .flow-sub{font-size:12px;color:#64758d;font-weight:850;margin-top:7px;line-height:1.45}
.flow-step .flow-index{position:absolute;right:16px;top:16px;width:30px;height:30px;border-radius:10px;background:#eef5ff;border:1px solid #d8e7fb;color:#31557f;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:950}
.donut{width:172px;height:172px;border-radius:50%;background:conic-gradient(#1268ff 0 34%,#19c37d 34% 58%,#ffb020 58% 73%,#7e4bf5 73% 86%,#dbe3ef 86% 100%);display:flex;align-items:center;justify-content:center;margin:auto;position:relative}.donut::after{content:"";position:absolute;width:95px;height:95px;background:#fff;border-radius:50%;box-shadow:inset 0 1px 4px rgba(0,0,0,.06)}.donut-label{z-index:1;text-align:center}.donut-label b{font-size:24px}.donut-label span{font-size:12px;font-weight:950;color:#64758d;display:block}.legend-list{display:flex;flex-direction:column;gap:9px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:850;color:#4c5f78}.legend-dot{width:10px;height:10px;border-radius:50%}
.report-summary{height:100%;border:1px solid #e3d9ff;background:linear-gradient(135deg,#fff,#fbf8ff);border-radius:15px;padding:20px 22px;line-height:1.75;font-size:14px;font-weight:800;color:#1a3053}.report-summary li{margin-bottom:7px}.report-summary .warning{color:#dd3131;font-weight:950}.export-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.export-card{height:130px;border:1px solid #dbe7f6;border-radius:15px;background:linear-gradient(180deg,#fff,#f9fcff);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:10px}.export-card:nth-child(1){border-color:#bdebe3;background:#f3fffd}.export-card:nth-child(3){border-color:#e5d7ff;background:#fbf8ff}.export-card:nth-child(4){border-color:#ffdcb8;background:#fff9f2}.export-icon{font-size:30px}.check-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.check-card{height:52px;border:1px solid #dce8f8;border-radius:13px;background:#fbfdff;display:flex;align-items:center;gap:10px;padding:0 14px;font-weight:900;color:#213b60}.check{width:22px;height:22px;border-radius:7px;background:#19c37d;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}
.toolbar-row{height:100%;display:flex;align-items:center;gap:16px;padding:0 2px}.toolbar-spacer{flex:1}.pill-btn{height:44px;border:1px solid #dbe7f6;border-radius:12px;background:#fff;padding:0 20px;font-weight:950;color:#1e3556;box-shadow:0 5px 12px rgba(7,28,62,.04)}.pill-btn.active-blue{border-color:#cfddff;background:#eff5ff;color:#0d56de}.pill-btn.active-purple{border-color:#dfd4ff;background:#f5f0ff;color:#7044e8}.pill-btn.active-green{border-color:#c5efdf;background:#effcf6;color:#098c4d}.pill-btn.active-cyan{border-color:#bfece9;background:#effdfc;color:#059b91}
/* Drawer */
.detail-drawer{position:absolute;right:0;top:0;width:460px;height:1080px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-left:1px solid #d6e5f8;z-index:10;box-shadow:-28px 0 58px rgba(7,28,62,.18);transform:translateX(105%);transition:.22s ease;display:flex;flex-direction:column;}
.detail-drawer.open{transform:translateX(0)}.drawer-head{height:96px;padding:22px 24px;border-bottom:1px solid #e0eaf7;display:flex;align-items:flex-start;justify-content:space-between;background:linear-gradient(180deg,#fff,#f7fbff)}.drawer-kicker{font-size:11px;font-weight:950;color:#1268ff;letter-spacing:.8px}.drawer-head h2{margin:6px 0 0;font-size:22px;letter-spacing:-.4px}.icon-button{width:36px;height:36px;border:1px solid #dce8f8;border-radius:10px;background:#fff;font-size:23px;color:#304866}.drawer-content{padding:22px 24px;overflow:auto}.drawer-section{border:1px solid #dfe9f8;border-radius:14px;background:#fff;margin-bottom:14px;padding:16px}.drawer-section h3{margin:0 0 12px;font-size:15px}.drawer-row{display:grid;grid-template-columns:145px 1fr;gap:8px;min-height:30px;align-items:center;font-size:13px}.drawer-row label{color:#63738b;font-weight:900}.drawer-row span{font-weight:850;color:#152b4e;word-break:break-all}
/* Advanced filters */
.advanced-filter-backdrop{position:fixed;inset:0;z-index:120;background:rgba(3,19,43,.42);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:28px}
.advanced-filter-modal{width:min(1160px,96vw);max-height:min(860px,94vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid rgba(196,215,241,.96);border-radius:22px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 32px 90px rgba(3,19,43,.32);overflow:hidden}
.advanced-filter-head{min-height:104px;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px 24px;border-bottom:1px solid #dce8f7;background:radial-gradient(circle at 90% 0%,rgba(18,104,255,.10),transparent 35%),linear-gradient(180deg,#fff,#f8fbff)}
.advanced-filter-head span{font-size:11px;font-weight:950;color:#1268ff;text-transform:uppercase;letter-spacing:.7px}.advanced-filter-head h2{margin:4px 0 5px;font-size:25px;color:#081f49}.advanced-filter-head p{margin:0;color:#5c6e88;font-size:13px;font-weight:800}
.modal-close{height:38px;border:1px solid #d7e4f6;border-radius:11px;background:#fff;padding:0 15px;font-weight:950;color:#203b60}
.advanced-filter-content{padding:18px 20px;overflow:auto;display:grid;gap:16px}
.filter-group{border:1px solid #dce8f7;border-radius:17px;background:rgba(255,255,255,.88);box-shadow:0 10px 24px rgba(7,28,62,.05);overflow:hidden}
.filter-group-title{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e3edf9;background:linear-gradient(180deg,#fbfdff,#f4f8ff)}.filter-group-title b{display:block;font-size:15px;color:#102a4d}.filter-group-title span{display:block;font-size:12px;color:#64758d;font-weight:850;margin-top:3px}.group-icon{width:38px;height:38px;border-radius:13px;display:grid!important;place-items:center;flex:0 0 auto;margin-top:0!important;border:1px solid #dbe8f9;box-shadow:0 8px 18px rgba(7,28,62,.07);font-size:18px!important}.group-icon.fcc{background:linear-gradient(135deg,#eaf3ff,#fff)}.group-icon.kc{background:linear-gradient(135deg,#ecfff7,#fff)}.group-icon.lab{background:linear-gradient(135deg,#fff3e7,#fff)}
.advanced-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:15px}
.advanced-field{display:flex;flex-direction:column;gap:7px;min-width:0}.advanced-field span{font-size:11px;font-weight:950;color:#4f6380;text-transform:uppercase;display:flex;align-items:center;gap:7px}.advanced-field span b{font-size:11px}.field-icon{width:20px;height:20px;border-radius:7px;display:inline-grid;place-items:center;background:#eef5ff;border:1px solid #d8e7fb;box-shadow:0 3px 8px rgba(7,28,62,.05);font-style:normal;font-size:12px;line-height:1}.advanced-field select{height:42px;border:1px solid #cfddf1;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);padding:0 12px;color:#142d52;font-size:13px;font-weight:850;min-width:0}
.advanced-field select:focus{outline:none;border-color:#1268ff;box-shadow:0 0 0 3px rgba(18,104,255,.11)}
.advanced-filter-actions{height:70px;padding:14px 20px;border-top:1px solid #dce8f7;background:#fbfdff;display:flex;justify-content:flex-end;gap:10px}
/* Animations */
.fade-in{height:100%;animation:fadeIn .26s ease both}.panel{animation:panelIn .28s ease both}.panel:nth-child(2){animation-delay:.03s}.panel:nth-child(3){animation-delay:.06s}.panel:nth-child(4){animation-delay:.09s}.panel:nth-child(5){animation-delay:.12s}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes panelIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/* Utility */
.scroll-area{height:100%;overflow:auto;padding-right:3px}.scroll-area::-webkit-scrollbar{width:7px;height:7px}.scroll-area::-webkit-scrollbar-thumb{background:#cbd9ed;border-radius:999px}.text-right{text-align:right!important}.text-center{text-align:center!important}.muted{color:#66758b!important}.strong{font-weight:950!important}.nowrap{white-space:nowrap}.no-overflow{overflow:hidden}.mini-caption{font-size:11px;color:#77859a;font-weight:850}.flag-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;box-shadow:0 0 0 3px rgba(18,104,255,.08);vertical-align:middle}.country-cell{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%}.country-cell b{font-size:12px;font-weight:950;color:#102a4d;white-space:nowrap}.country-cell .mini-caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flag-badge{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:4px;overflow:hidden;border:1px solid rgba(12,37,76,.16);box-shadow:0 1px 0 rgba(255,255,255,.72) inset,0 2px 5px rgba(7,28,62,.12);background:#e8eef8;color:#fff;font-weight:950;letter-spacing:.01em}.flag-badge i{position:absolute;inset:0;display:block}.flag-badge em{display:none}.flag-cell{width:25px;height:17px;font-size:8px}.flag-mini{width:22px;height:15px;font-size:7px;vertical-align:middle}.flag-map{width:26px;height:17px;font-size:8px;margin:0}.flag-cn i{background:linear-gradient(135deg,#de2910 0 100%)}.flag-cn i::after{content:"";position:absolute;left:4px;top:4px;width:6px;height:6px;background:#ffde00;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%)}.flag-us i{background:repeating-linear-gradient(180deg,#b22234 0 2px,#fff 2px 4px)}.flag-us i::after{content:"";position:absolute;left:0;top:0;width:44%;height:54%;background:#3c3b6e}.flag-kr i{background:linear-gradient(90deg,#fff 0 100%)}.flag-kr i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#cd2e3a 0 50%,#0047a0 50%)}.flag-jp i{background:#fff}.flag-jp i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);background:#bc002d}.flag-tw i{background:#fe0000}.flag-tw i::after{content:"";position:absolute;left:0;top:0;width:45%;height:55%;background:#000095}.flag-hk i{background:#de2910}.flag-sg i{background:linear-gradient(180deg,#ef3340 0 50%,#fff 50%)}.flag-de i{background:linear-gradient(180deg,#000 0 33%,#dd0000 33% 66%,#ffce00 66%)}.flag-gb i{background:linear-gradient(135deg,#012169 0 40%,#fff 40% 46%,#c8102e 46% 54%,#fff 54% 60%,#012169 60%)}.flag-ca i{background:linear-gradient(90deg,#d52b1e 0 25%,#fff 25% 75%,#d52b1e 75%)}.flag-fr i{background:linear-gradient(90deg,#0055a4 0 33%,#fff 33% 66%,#ef4135 66%)}.flag-se i{background:linear-gradient(90deg,transparent 0 28%,#fecc00 28% 38%,transparent 38%),linear-gradient(180deg,#006aa7 0 42%,#fecc00 42% 56%,#006aa7 56%)}.flag-in i{background:linear-gradient(180deg,#ff9933 0 33%,#fff 33% 66%,#138808 66%)}.flag-vn i{background:#da251d}.flag-vn i::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;background:#ff0;transform:translate(-50%,-50%);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%)}.flag-au i{background:#012169}.flag-it i{background:linear-gradient(90deg,#009246 0 33%,#fff 33% 66%,#ce2b37 66%)}.flag-nl i{background:linear-gradient(180deg,#ae1c28 0 33%,#fff 33% 66%,#21468b 66%)}.flag-es i{background:linear-gradient(180deg,#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75%)}.flag-my i{background:repeating-linear-gradient(180deg,#cc0001 0 2px,#fff 2px 4px)}.flag-my i::after{content:"";position:absolute;left:0;top:0;width:48%;height:55%;background:#010066}.flag-th i{background:linear-gradient(180deg,#a51931 0 16%,#fff 16% 32%,#2d2a4a 32% 68%,#fff 68% 84%,#a51931 84%)}.flag-mx i{background:linear-gradient(90deg,#006847 0 33%,#fff 33% 66%,#ce1126 66%)}.flag-br i{background:#009b3a}.flag-br i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:10px;transform:translate(-50%,-50%) rotate(45deg);background:#ffdf00}.flag-ot i{background:linear-gradient(135deg,#94a3b8,#1268ff)}.row{display:flex;gap:14px}.col{display:flex;flex-direction:column}.space-between{justify-content:space-between}.align-center{align-items:center}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.h-full{height:100%}

/* Adaptive layout for tablets and phones. Desktop keeps the 1920 x 1080 command-center canvas. */
body.responsive-dashboard{overflow:auto;background:#edf5ff;}
body.responsive-dashboard #scale-root{position:static!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:100dvh;transform:none!important;}
body.responsive-dashboard .app-frame{width:100%!important;height:auto!important;min-height:100dvh;display:flex;flex-direction:column;overflow:visible;background:linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%);}
body.responsive-dashboard .app-frame::before{background:radial-gradient(circle at 85% 0%,rgba(18,104,255,.12),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.36),transparent 280px);}
body.responsive-dashboard .sidebar{position:sticky;top:0;z-index:40;height:auto;min-height:0;padding:12px 14px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;border-right:0;border-bottom:1px solid rgba(255,255,255,.10);box-shadow:0 16px 34px rgba(3,15,35,.16);}
body.responsive-dashboard .sidebar::after{opacity:.72}
body.responsive-dashboard .brand{height:44px;border-bottom:0;z-index:1}
body.responsive-dashboard .brand-logo{width:86px;max-height:34px}
body.responsive-dashboard .nav{grid-column:1/3;z-index:1;display:flex;flex-direction:row;gap:8px;padding:4px 0 2px;overflow-x:auto;scrollbar-width:thin;}
body.responsive-dashboard .nav::-webkit-scrollbar{height:4px}
body.responsive-dashboard .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
body.responsive-dashboard .nav-item{height:46px;min-width:150px;grid-template-columns:30px minmax(0,1fr);padding:0 10px;border-radius:13px;transform:none!important;}
body.responsive-dashboard .nav-icon{width:28px;height:28px;border-radius:9px;font-size:12px}
body.responsive-dashboard .nav-text{font-size:12px;gap:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.responsive-dashboard .sidebar-status,
body.responsive-dashboard .sidebar-collapse{display:none!important}
body.responsive-dashboard .main-shell{display:block;width:100%;overflow:visible;max-width:none;}
body.responsive-dashboard .topbar{height:auto;min-height:0;display:grid;grid-template-columns:1fr;align-items:stretch;gap:12px;padding:16px clamp(14px,3vw,26px);overflow:visible;}
body.responsive-dashboard .heading-group{align-items:center;gap:12px;min-width:0}
body.responsive-dashboard .page-number{font-size:22px;width:42px;height:42px;border-radius:14px;background:#eaf2ff;display:flex;align-items:center;justify-content:center;color:#0d56de;flex:0 0 auto;}
body.responsive-dashboard .heading-text h1{font-size:clamp(20px,4vw,26px);white-space:normal;line-height:1.2!important;}
body.responsive-dashboard .heading-text p{font-size:13px;white-space:normal;margin-top:4px;}
body.responsive-dashboard .top-controls{max-width:none!important;width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));align-items:end;justify-content:stretch;gap:9px;padding:10px;border-radius:17px;overflow:visible;}
body.responsive-dashboard .control,
body.responsive-dashboard .control.date-control,
body.responsive-dashboard .control.year-control{min-width:0!important;width:100%}
body.responsive-dashboard .control input,
body.responsive-dashboard .control select,
body.responsive-dashboard .searchbox,
body.responsive-dashboard .year-multi summary{width:100%!important;height:42px!important;font-size:13px!important;border-radius:12px!important;}
body.responsive-dashboard .search-wrap{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:end;width:100%;}
body.responsive-dashboard .searchbox{border-radius:12px 0 0 12px!important;}
body.responsive-dashboard .search-btn{height:42px!important;width:48px!important;border-radius:0 12px 12px 0!important;}
body.responsive-dashboard .hv-toggle,
body.responsive-dashboard .primary-btn,
body.responsive-dashboard .ghost-btn{height:42px!important;width:100%;justify-content:center}
body.responsive-dashboard .content{height:auto!important;min-height:0;padding:14px clamp(12px,3vw,24px) 18px;overflow:visible;}
body.responsive-dashboard .bottom-bar{height:auto;min-height:0;padding:0 clamp(12px,3vw,24px) 86px;display:block;overflow:visible;}
body.responsive-dashboard .chips{height:auto;min-height:48px;flex-wrap:wrap;align-items:flex-start;padding:12px;overflow:visible;}
body.responsive-dashboard .page-grid{height:auto!important;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));grid-auto-rows:auto;gap:14px;}
body.responsive-dashboard .page-grid>.panel{grid-column:auto!important;grid-row:auto!important;min-height:280px;height:auto;overflow:hidden;}
body.responsive-dashboard .page-grid>.panel:has(.metric-strip),
body.responsive-dashboard .page-grid>.panel:has(.toolbar-row),
body.responsive-dashboard .page-grid>.panel:has(.scope-cards){min-height:180px;}
body.responsive-dashboard .panel-body{height:auto;min-height:210px;padding:14px;}
body.responsive-dashboard .metric-strip,
body.responsive-dashboard .quality-grid,
body.responsive-dashboard .scope-cards,
body.responsive-dashboard .profile-stats,
body.responsive-dashboard .m360-metrics,
body.responsive-dashboard .m360-card-grid,
body.responsive-dashboard .export-grid,
body.responsive-dashboard .check-row,
body.responsive-dashboard .criteria-grid,
body.responsive-dashboard .lab-year-summary,
body.responsive-dashboard .match-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));height:auto;min-width:0;}
body.responsive-dashboard .metric{min-height:86px;border-right:0;border-bottom:1px solid rgba(202,218,240,.72);padding:10px 12px;}
body.responsive-dashboard .metric:last-child{border-bottom:0}
body.responsive-dashboard .m360-hero,
body.responsive-dashboard .viz-donut-layout,
body.responsive-dashboard .workspace-head,
body.responsive-dashboard .notice-card{height:auto;display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch;}
body.responsive-dashboard .m360-card-grid,
body.responsive-dashboard .m360-playbook,
body.responsive-dashboard .manufacturer-viz-body,
body.responsive-dashboard .viz-line-card,
body.responsive-dashboard .lab-year-stack,
body.responsive-dashboard .flow-steps,
body.responsive-dashboard .bar-list,
body.responsive-dashboard .map-card,
body.responsive-dashboard .leaflet-card,
body.responsive-dashboard .report-summary,
body.responsive-dashboard .table-wrap,
body.responsive-dashboard .scroll-area{height:auto;min-height:0;}
body.responsive-dashboard .world-map,
body.responsive-dashboard .leaflet-stage,
body.responsive-dashboard .leaflet-map{min-height:320px;}
body.responsive-dashboard .table-wrap{overflow-x:auto;display:block;}
body.responsive-dashboard table{min-width:760px;}
body.responsive-dashboard .flow-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
body.responsive-dashboard .flow-step{height:auto;min-height:170px;}
body.responsive-dashboard .flow-step::after{display:none}
body.responsive-dashboard .toolbar-row,
body.responsive-dashboard .workspace-tabs,
body.responsive-dashboard .profile-actions{height:auto;display:flex;flex-wrap:wrap;}
body.responsive-dashboard .detail-drawer{position:fixed;width:min(94vw,460px);height:100dvh;z-index:70;}
body.responsive-dashboard .ai-fab{position:fixed;right:18px;bottom:18px;z-index:65;width:58px;height:58px;border-radius:17px;}
body.responsive-dashboard .advanced-filter-backdrop{align-items:flex-end;padding:0}
body.responsive-dashboard .advanced-filter-modal{width:100vw;max-height:92dvh;border-radius:22px 22px 0 0}
body.responsive-dashboard .advanced-filter-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
body.ai-sheet-open{overflow:hidden!important;}

@media (max-width: 640px){
  body.responsive-dashboard .sidebar{grid-template-columns:1fr;padding:10px 10px 8px}
  body.responsive-dashboard .brand{justify-content:center}
  body.responsive-dashboard .brand-logo{width:78px}
  body.responsive-dashboard .nav{grid-column:1;gap:7px}
  body.responsive-dashboard .nav-item{min-width:54px;width:54px;grid-template-columns:1fr;padding:0;justify-items:center}
  body.responsive-dashboard .nav-text{display:none}
  body.responsive-dashboard .nav-icon{width:32px;height:32px}
  body.responsive-dashboard .top-controls{grid-template-columns:1fr 1fr}
  body.responsive-dashboard .search-wrap,
  body.responsive-dashboard .primary-btn,
  body.responsive-dashboard .ghost-btn{grid-column:1/-1}
  body.responsive-dashboard .hv-toggle button{min-width:0;flex:1;padding:0 8px}
  body.responsive-dashboard .page-grid{grid-template-columns:1fr}
  body.responsive-dashboard .panel-head{height:auto;min-height:54px;padding:10px 14px;align-items:flex-start;gap:8px}
  body.responsive-dashboard .panel-title{font-size:15px}
  body.responsive-dashboard .panel-body{min-height:190px;padding:12px}
  body.responsive-dashboard .metric-value{font-size:22px}
  body.responsive-dashboard .bar-row,
  body.responsive-dashboard .score-line,
  body.responsive-dashboard .lab-year-row{grid-template-columns:1fr;gap:6px}
  body.responsive-dashboard .bar-value,
  body.responsive-dashboard .score-value{text-align:left}
  body.responsive-dashboard .advanced-filter-head{padding:18px 16px 14px}
  body.responsive-dashboard .advanced-filter-head h2{font-size:22px}
  body.responsive-dashboard .advanced-filter-grid{grid-template-columns:1fr;padding:12px}
  body.responsive-dashboard .filter-group-title{display:block}.filter-group-title span{display:block;margin-top:4px}
  body.responsive-dashboard .advanced-filter-actions{height:auto;padding:12px;display:grid;grid-template-columns:1fr 1fr}
}

/* Global HCT typography contract */
.app-frame,
.app-frame *{
  font-family:var(--font) !important;
  letter-spacing:-0.02em !important;
  line-height:1.55 !important;
}
.app-frame{
  line-height:1.55 !important;
}
.app-frame p,
.app-frame li,
.app-frame td,
.app-frame th,
.app-frame label,
.app-frame span,
.app-frame button,
.app-frame input,
.app-frame select{
  line-height:1.55 !important;
}

/* AI Copilot */
.ai-fab{position:absolute;right:34px;bottom:32px;z-index:24;width:66px;height:66px;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:linear-gradient(135deg,#1268ff,#7e4bf5);color:#fff;font-weight:950;font-size:20px;box-shadow:0 18px 42px rgba(18,104,255,.32),inset 0 1px 0 rgba(255,255,255,.38)}
.ai-window-fab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1}
.ai-window-fab span{font-size:19px;font-weight:950}
.ai-window-fab small{font-size:10px;font-weight:950;color:rgba(255,255,255,.86)}
.ai-fab.hidden{display:none}
.ai-panel{position:absolute;right:0;top:0;width:480px;height:1080px;z-index:25;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-left:1px solid #d7e5f7;box-shadow:-30px 0 70px rgba(7,28,62,.18);transform:translateX(105%);transition:.22s ease;display:grid;grid-template-rows:98px 64px auto 1fr auto 190px;color:#102542}
.ai-panel.open{transform:translateX(0)}
.ai-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #dfe9f7;background:linear-gradient(180deg,#fff,#f7fbff)}
.ai-kicker{font-size:11px;font-weight:950;letter-spacing:.8px;text-transform:uppercase;color:#1268ff}.ai-head h2{margin:5px 0 0;font-size:22px;letter-spacing:-.4px}.ai-close{width:36px;height:36px;border:1px solid #dce8f8;border-radius:10px;background:#fff;color:#304866;font-weight:950}
.ai-context{display:grid;grid-template-columns:58px 1fr;gap:4px 12px;padding:12px 24px;border-bottom:1px solid #e4edf9;font-size:12px}.ai-context span{font-weight:950;color:#6b7c94}.ai-context b{font-weight:950;color:#18375f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-suggestions{display:flex;gap:8px;flex-wrap:wrap;align-content:flex-start;padding:14px 24px;border-bottom:1px solid #e8eff9;max-height:118px;overflow:auto}.ai-chip{border:1px solid #d9e6f7;background:#f8fbff;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900;color:#244467}.ai-chip:hover{border-color:#1268ff;color:#1268ff;background:#f1f6ff}
.ai-messages{padding:18px 24px;overflow:auto;display:flex;flex-direction:column;gap:12px}.ai-message{border:1px solid #dfe9f7;border-radius:15px;padding:14px 16px;background:#fff;font-size:13px;font-weight:800;color:#1d365a;box-shadow:0 8px 18px rgba(7,28,62,.05)}.ai-message.user{align-self:flex-end;max-width:88%;background:linear-gradient(135deg,#1268ff,#284cf5);color:#fff;border-color:#1268ff}.ai-message.assistant{background:linear-gradient(180deg,#fff,#f9fcff)}.ai-message.loading{color:#64758d}.ai-message h3{margin:0 0 8px;font-size:16px;color:#0d254c}.ai-message p{margin:0 0 10px}.ai-message ul{margin:7px 0 0;padding-left:18px}.ai-basis{display:grid;grid-template-columns:82px 1fr;gap:5px 10px;margin-top:12px;padding:10px;border-radius:12px;background:#f4f8fe;border:1px solid #e0eaf7}.ai-basis span{font-size:11px;color:#64758d;font-weight:950}.ai-basis b{font-size:12px;color:#18375f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-note,.ai-warning{margin-top:10px;font-size:12px}.ai-warning{color:#bd3d00}
.ai-preview{border-top:1px solid #e2ebf7;padding:14px 24px;background:#fbfdff;min-height:92px}.ai-preview-title{font-size:12px;font-weight:950;color:#1268ff;text-transform:uppercase;margin-bottom:9px}.ai-preview-grid{display:grid;grid-template-columns:58px 1fr;gap:5px 10px;font-size:12px}.ai-preview-grid span{font-weight:950;color:#64758d}.ai-preview-grid b,.ai-preview-grid code{font-weight:900;color:#18375f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-preview-grid code{font-family:Consolas,monospace;font-size:11px;background:#eef5ff;border-radius:7px;padding:2px 6px}
.ai-form{padding:16px 24px 22px;border-top:1px solid #e0eaf7;background:linear-gradient(180deg,#fff,#f7fbff)}.ai-form textarea{width:100%;height:88px;resize:none;border:1px solid #d5e3f5;border-radius:13px;background:#fff;padding:12px;font-size:13px;font-weight:850;outline:none}.ai-form textarea:focus{border-color:#1268ff;box-shadow:0 0 0 3px rgba(18,104,255,.12)}.ai-actions{display:flex;align-items:center;gap:10px;margin-top:12px}.ai-toggle{margin-right:auto;font-size:12px;font-weight:950;color:#53647d;display:flex;align-items:center;gap:6px}.ai-submit,.ai-apply{height:38px;border:0;border-radius:10px;padding:0 16px;font-weight:950}.ai-submit{background:linear-gradient(135deg,#1268ff,#284cf5);color:#fff;box-shadow:0 10px 18px rgba(18,104,255,.22)}.ai-apply{background:#eaf3ff;color:#0d56de;border:1px solid #cfe0ff}.ai-apply:disabled{opacity:.45;cursor:not-allowed}
.ai-highlight{outline:3px solid rgba(255,176,32,.92)!important;outline-offset:-4px;box-shadow:0 0 0 6px rgba(255,176,32,.16),var(--shadow-soft)!important}.ai-focus-ring{animation:aiPulse 1.4s ease-in-out 2}@keyframes aiPulse{0%,100%{filter:none}50%{filter:drop-shadow(0 0 16px rgba(18,104,255,.45)) saturate(1.1)}}

.ai-mobile-shell{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;transition:opacity .18s ease;}
.ai-mobile-shell.open{pointer-events:auto;opacity:1;}
.ai-mobile-backdrop{position:absolute;inset:0;background:rgba(3,19,43,.46);backdrop-filter:blur(4px);}
.ai-mobile-sheet{position:absolute;left:0;right:0;bottom:0;height:min(92dvh,820px);background:#f4f8ff;border-radius:22px 22px 0 0;box-shadow:0 -24px 70px rgba(3,19,43,.32);overflow:hidden;transform:translateY(105%);transition:transform .22s ease;display:flex;flex-direction:column;}
.ai-mobile-shell.open .ai-mobile-sheet{transform:translateY(0);}
.ai-mobile-grip{position:absolute;left:50%;top:9px;z-index:3;width:48px;height:5px;border-radius:999px;background:#c8d7ec;transform:translateX(-50%);}
.ai-mobile-close{position:absolute;right:12px;top:12px;z-index:4;width:36px;height:36px;border:1px solid #d7e4f6;border-radius:12px;background:rgba(255,255,255,.94);color:#173151;font-size:22px;font-weight:950;box-shadow:0 8px 18px rgba(7,28,62,.10);}
.ai-mobile-frame{width:100%;height:100%;border:0;background:#f4f8ff;}

@media (min-width: 1180px) and (min-height: 680px){
  .ai-mobile-shell{display:none}
}
