:root{
  --bg:#f7fbff;
  --paper:rgba(255,255,255,.76);
  --paper-strong:rgba(255,255,255,.92);
  --glass:rgba(255,255,255,.58);
  --glass-2:rgba(255,255,255,.42);
  --text:#102033;
  --muted:#64748b;
  --muted2:#94a3b8;
  --line:rgba(148,163,184,.28);
  --blue:#2563eb;
  --sky:#0ea5e9;
  --green:#10b981;
  --amber:#f59e0b;
  --red:#ef4444;
  --purple:#7c3aed;
  --teal:#14b8a6;
  --navy:#0f172a;
  --shadow:0 24px 70px rgba(15,23,42,.10);
  --shadow-soft:0 12px 36px rgba(15,23,42,.07);
  --radius:24px;
  --radius-sm:16px;
  font-family:Inter, Segoe UI, Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0;color:var(--text);background:
  radial-gradient(circle at 5% 2%, rgba(37,99,235,.18), transparent 26%),
  radial-gradient(circle at 92% 4%, rgba(20,184,166,.15), transparent 24%),
  linear-gradient(135deg,#f8fbff 0%, #ffffff 48%, #eef7ff 100%);
}
body{overflow-x:hidden}.bg-orb{position:fixed;z-index:-1;border-radius:999px;filter:blur(46px);opacity:.36;animation:float 14s ease-in-out infinite alternate}.orb-a{width:440px;height:440px;background:#bfdbfe;top:-110px;left:12%}.orb-b{width:380px;height:380px;background:#bbf7d0;right:2%;bottom:5%;animation-delay:1.6s}.orb-c{width:300px;height:300px;background:#ddd6fe;left:48%;bottom:-100px;animation-delay:2.3s}@keyframes float{from{transform:translate3d(0,0,0)}to{transform:translate3d(22px,-18px,0)}}
button,input,select{font:inherit}.shell{display:flex;min-height:100vh}.glass-panel{background:var(--glass);border:1px solid rgba(255,255,255,.66);box-shadow:var(--shadow);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.glass-soft{background:var(--glass-2);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.sidebar{width:300px;flex:0 0 300px;position:sticky;top:0;height:100vh;overflow-y:auto;padding:22px 16px;border-right:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.brand-logo{width:50px;height:50px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#2563eb 55%,#10b981);color:#fff;font-size:24px;font-weight:950;box-shadow:0 18px 38px rgba(37,99,235,.25)}.brand-title{font-weight:950;font-size:18px;letter-spacing:-.04em}.brand-subtitle{font-size:10px;line-height:1.3;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}.nav{display:grid;gap:7px}.nav-item{border:1px solid transparent;background:transparent;color:#334155;text-align:left;border-radius:16px;padding:11px 12px;display:flex;gap:10px;align-items:center;cursor:pointer;transition:.18s ease;min-height:42px}.nav-item span{font-size:11px;color:var(--muted2);font-weight:950;min-width:24px}.nav-item b{font-size:13px;line-height:1.2;font-weight:850;white-space:normal}.nav-item:hover{background:rgba(255,255,255,.72);border-color:rgba(148,163,184,.22);transform:translateX(2px)}.nav-item.active{background:linear-gradient(135deg,rgba(238,246,255,.94),rgba(236,253,245,.76));border-color:rgba(37,99,235,.18);box-shadow:0 12px 30px rgba(37,99,235,.11);color:#0f172a}.nav-item.active span{color:var(--blue)}
.sidebar-actions{display:grid;gap:8px;margin-top:18px}.btn{border:0;border-radius:15px;padding:11px 14px;cursor:pointer;font-weight:900;transition:.18s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--blue),var(--sky));color:white;box-shadow:0 16px 32px rgba(37,99,235,.22)}.btn-soft{background:rgba(255,255,255,.64);border:1px solid var(--line);color:#334155}.btn-reset{background:#fff;border:1px solid var(--line);height:42px;align-self:end;color:#334155}.side-info{margin-top:18px;border-radius:20px;padding:16px}.side-info-title{font-weight:950;color:#334155;font-size:13px}.side-plan{font-size:26px;font-weight:950;letter-spacing:-.05em;margin:4px 0}.side-info p{font-size:12px;line-height:1.45;color:var(--muted);margin:0 0 12px}.data-stamp{border-top:1px dashed var(--line);padding-top:10px;color:var(--muted2);font-size:11px;line-height:1.35}
.main{flex:1;min-width:0;padding:24px 28px 58px}.topbar{display:flex;justify-content:space-between;gap:24px;padding:24px 26px;border-radius:var(--radius);margin-bottom:16px;overflow:hidden;position:relative}.topbar:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.58),rgba(255,255,255,.16));pointer-events:none}.topbar:after{content:"";position:absolute;right:-85px;top:-110px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.16),transparent 68%)}.topbar>*{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--blue);font-weight:950}.topbar h1{margin:6px 0 8px;font-size:34px;line-height:1.06;letter-spacing:-.06em}.topbar p{margin:0;color:var(--muted);font-size:14px;max-width:850px;line-height:1.5}.topbar-status{display:grid;gap:8px;justify-items:end;align-content:start;min-width:190px}.status-pill{padding:9px 13px;border-radius:999px;background:rgba(16,185,129,.12);color:#047857;font-weight:950;font-size:12px;border:1px solid rgba(16,185,129,.22)}.status-note{font-size:12px;color:var(--muted);text-align:right;line-height:1.35}.filters{display:grid;grid-template-columns:1.1fr 1.05fr .84fr .84fr 1.05fr 1.05fr 1.05fr 1.05fr .9fr .8fr 1.6fr auto;gap:10px;align-items:end;border-radius:var(--radius);padding:15px;margin-bottom:13px}.field{min-width:0}.field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:950;margin:0 0 6px}.field input,.field select{width:100%;height:42px;border-radius:14px;border:1px solid rgba(148,163,184,.30);background:rgba(255,255,255,.82);color:#1e293b;padding:0 12px;outline:none;min-width:0}.field input:focus,.field select:focus{border-color:rgba(37,99,235,.45);box-shadow:0 0 0 4px rgba(37,99,235,.08)}.search{min-width:190px}.quick-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.chip{border:1px solid var(--line);background:rgba(255,255,255,.64);border-radius:999px;padding:9px 12px;color:#334155;cursor:pointer;font-size:12px;font-weight:850;transition:.18s}.chip:hover,.chip.active{background:#fff;border-color:rgba(37,99,235,.26);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.content{display:grid;gap:16px}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.panel{background:var(--paper);border:1px solid rgba(255,255,255,.66);box-shadow:var(--shadow-soft);border-radius:var(--radius);padding:18px;min-width:0;overflow:hidden;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:rise .28s ease both}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.panel-title{font-size:16px;font-weight:950;letter-spacing:-.03em}.panel-subtitle{font-size:12px;color:var(--muted);line-height:1.35;margin-top:4px}.kpi{position:relative;padding:17px 17px 16px;min-height:148px}.kpi-label{font-size:12px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.kpi-value{font-size:30px;font-weight:950;letter-spacing:-.06em;margin:10px 0 8px;line-height:1.02}.kpi-meta{font-size:12px;color:var(--muted);line-height:1.35}.kpi .spark{position:absolute;right:14px;bottom:12px;width:80px;height:36px;opacity:.50}.kpi.good .kpi-value{color:#047857}.kpi.warn .kpi-value{color:#b45309}.kpi.bad .kpi-value{color:#b91c1c}.kpi.blue .kpi-value{color:var(--blue)}.kpi.purple .kpi-value{color:var(--purple)}.progress{height:11px;border-radius:999px;background:rgba(148,163,184,.18);overflow:hidden;margin-top:12px}.progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--teal));width:0;transition:width .5s ease}.progress-bar.red{background:linear-gradient(90deg,#ef4444,#f59e0b)}.progress-bar.green{background:linear-gradient(90deg,#10b981,#22c55e)}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;white-space:nowrap}.tag.blue{background:#dbeafe;color:#1d4ed8}.tag.green{background:#dcfce7;color:#047857}.tag.amber{background:#fef3c7;color:#b45309}.tag.red{background:#fee2e2;color:#b91c1c}.tag.purple{background:#ede9fe;color:#6d28d9}.tag.gray{background:#f1f5f9;color:#475569}.chart{width:100%;min-height:280px}.chart.large{min-height:350px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.axis{font-size:11px;fill:#64748b}.chart-label{font-size:11px;fill:#334155;font-weight:700}.chart-note{font-size:11px;color:var(--muted);line-height:1.45;margin-top:8px}.bar{transition:.22s ease}.bar:hover{opacity:.78}.legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}.legend-item{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px;font-weight:800}.swatch{width:10px;height:10px;border-radius:3px}.score-list{display:grid;gap:10px}.score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(148,163,184,.18);background:rgba(255,255,255,.58);border-radius:16px;padding:12px 13px}.score-title{font-weight:900;line-height:1.28}.score-meta{color:var(--muted);font-size:12px;line-height:1.3;margin-top:3px}.score-value{font-size:18px;font-weight:950;white-space:nowrap}.score-value.good{color:#047857}.score-value.warn{color:#b45309}.score-value.bad{color:#b91c1c}.table-wrap{overflow:auto;border:1px solid rgba(148,163,184,.20);border-radius:17px;background:rgba(255,255,255,.46);max-height:560px}table{width:100%;border-collapse:separate;border-spacing:0;min-width:850px}th,td{padding:11px 12px;border-bottom:1px solid rgba(148,163,184,.16);vertical-align:top;text-align:left}th{position:sticky;top:0;z-index:2;background:rgba(248,250,252,.96);backdrop-filter:blur(12px);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#475569;font-weight:950;white-space:nowrap}td{font-size:12px;color:#1e293b;line-height:1.35;max-width:360px;word-break:normal;overflow-wrap:anywhere}tr:hover td{background:rgba(37,99,235,.035)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}.nowrap{white-space:nowrap}.linkish{color:var(--blue);font-weight:950;cursor:pointer}.empty{padding:24px;border:1px dashed rgba(148,163,184,.42);border-radius:18px;background:rgba(255,255,255,.45);color:var(--muted);line-height:1.45}.alert{border-radius:18px;padding:15px 16px;background:rgba(254,243,199,.55);border:1px solid rgba(245,158,11,.26);color:#78350f;line-height:1.45}.alert.blue{background:rgba(219,234,254,.55);border-color:rgba(37,99,235,.24);color:#1e3a8a}.alert.green{background:rgba(220,252,231,.55);border-color:rgba(16,185,129,.24);color:#064e3b}.schema-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schema-card{border:1px solid rgba(148,163,184,.20);background:rgba(255,255,255,.55);border-radius:18px;padding:14px}.schema-title{font-weight:950;margin-bottom:6px}.schema-card ul{margin:9px 0 0;padding-left:18px;color:var(--muted);font-size:12px;line-height:1.55}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.detail-item{background:rgba(255,255,255,.55);border:1px solid rgba(148,163,184,.18);border-radius:14px;padding:10px;min-width:0}.detail-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:950}.detail-value{font-size:13px;margin-top:4px;overflow-wrap:anywhere}.modal.hidden{display:none}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.28);backdrop-filter:blur(8px)}.modal-card{position:relative;width:min(940px,96vw);max-height:88vh;overflow:auto;border-radius:28px;padding:24px;background:rgba(255,255,255,.9)}.modal-close{position:absolute;right:18px;top:14px;border:0;background:#fff;border-radius:12px;width:34px;height:34px;font-size:24px;cursor:pointer;color:#334155;border:1px solid var(--line)}
@media(max-width:1500px){.filters{grid-template-columns:repeat(6,minmax(0,1fr))}.search{grid-column:span 2}.btn-reset{grid-column:span 1}.grid.cols-5{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1080px){.shell{display:block}.sidebar{position:relative;width:auto;height:auto;max-height:none}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:18px}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5,.schema-grid{grid-template-columns:1fr}.topbar{display:block}.topbar-status{justify-items:start;margin-top:14px}.detail-grid{grid-template-columns:1fr}}
@media print{.sidebar,.filters,.quick-row,.modal,.bg-orb{display:none!important}.main{padding:0}.topbar,.panel{box-shadow:none;border:1px solid #dbe3ef;background:white}.content{gap:10px}body{background:white}}

/* v8.4 interactive polish */
.chart{position:relative;padding:4px 0 0;min-height:286px}.chart svg{filter:drop-shadow(0 10px 24px rgba(15,23,42,.055))}.chart-hint{position:absolute;right:0;top:-3px;z-index:3;font-size:10px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;color:#64748b;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.22);border-radius:999px;padding:6px 10px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.chart-node{cursor:pointer;outline:none;transition:opacity .18s ease, filter .18s ease, transform .18s ease}.chart-node:hover,.chart-node:focus{opacity:1!important;filter:drop-shadow(0 10px 18px rgba(37,99,235,.22));stroke-width:34px}.bar.chart-node:hover,.bar.chart-node:focus{filter:drop-shadow(0 8px 16px rgba(37,99,235,.22));opacity:1!important}.line-point{transition:r .18s ease, filter .18s ease}.line-point:hover,.line-point:focus{r:7}.line-hit{cursor:pointer}.line-series{filter:drop-shadow(0 4px 10px rgba(15,23,42,.08))}.donut-segment{transition:stroke-width .18s ease, opacity .18s ease, filter .18s ease}.donut-segment:hover,.donut-segment:focus{stroke-width:36;opacity:.94;filter:drop-shadow(0 9px 16px rgba(15,23,42,.16))}.axis-label{font-weight:800}.chart-tooltip{position:fixed;z-index:9999;max-width:320px;padding:12px 14px;border-radius:16px;background:rgba(15,23,42,.92);color:#fff;font-size:12px;line-height:1.45;box-shadow:0 24px 58px rgba(15,23,42,.28);pointer-events:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.16)}.chart-tooltip.hidden{display:none}.chart-tooltip b{font-weight:950;color:#bfdbfe}.chart-detail-card{margin:14px 0;padding:18px;border-radius:20px;background:linear-gradient(135deg,rgba(219,234,254,.78),rgba(236,253,245,.72));border:1px solid rgba(37,99,235,.14);font-size:15px;line-height:1.6;color:#0f172a}.chart-detail-card b{color:#1d4ed8}.chart-detail-note{padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.22);color:#64748b}.panel{contain:layout paint}.panel:hover{box-shadow:0 24px 70px rgba(15,23,42,.105);border-color:rgba(37,99,235,.14)}.panel-header{padding-right:164px}.legend{padding-top:2px}.legend-item{background:rgba(255,255,255,.58);border:1px solid rgba(148,163,184,.14);padding:5px 8px;border-radius:999px}.kpi{overflow:hidden}.kpi:after{content:"";position:absolute;inset:auto -30px -60px auto;width:140px;height:140px;border-radius:999px;background:radial-gradient(circle,rgba(37,99,235,.10),transparent 68%);pointer-events:none}.filters{position:sticky;top:12px;z-index:10}.table-wrap table tbody tr{transition:background .16s ease, transform .16s ease}.table-wrap table tbody tr:hover{transform:translateX(2px)}@media (max-width:1500px){.filters{grid-template-columns:repeat(4,minmax(0,1fr));}.btn-reset{height:42px}.panel-header{padding-right:0}.chart-hint{position:static;display:inline-flex;margin-bottom:8px}}@media (max-width:980px){.shell{display:block}.sidebar{position:relative;width:auto;height:auto;flex:auto}.filters{position:relative;top:auto;grid-template-columns:1fr 1fr}.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:1fr}.topbar{display:block}.topbar-status{justify-items:start;margin-top:14px}.main{padding:16px}.chart{min-height:240px}}

/* v8.5 adaptive chart engine: charts do not depend on a fixed old dataset */
.chart{
  min-height:320px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.chart.large{min-height:390px}
.chart-hint{
  position:static!important;
  display:inline-flex!important;
  align-self:flex-start;
  max-width:100%;
  white-space:normal;
  line-height:1.35;
  margin:0 0 2px 0!important;
  padding:7px 11px!important;
  font-size:10px;
  color:#475569;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(148,163,184,.22);
}
.chart-plot{
  flex:1;
  min-height:250px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.chart.large .chart-plot{min-height:320px}
.chart-svg{
  width:100%;
  height:auto;
  max-height:none;
  overflow:visible;
}
.donut-svg{max-width:100%;}
.panel{overflow:hidden;}
.panel .chart{margin-top:4px;}
.grid.cols-3 .chart{min-height:300px;}
.grid.cols-3 .chart-plot{min-height:235px;}
.grid.cols-3 .donut-svg text.chart-label{font-size:10px;}
.axis{font-size:10.5px;}
.axis-label{font-size:11px;}
.chart-label{font-size:11px; font-weight:800;}
.legend{margin-top:2px; gap:7px;}
.legend-item{font-size:11px; max-width:100%;}
.bar.chart-node:hover,.bar.chart-node:focus{filter:drop-shadow(0 8px 18px rgba(37,99,235,.22));}
.donut-segment:hover,.donut-segment:focus{stroke-width:38;}
@media(max-width:1500px){
  .chart{min-height:300px}
  .chart.large{min-height:360px}
  .chart-plot{min-height:230px}
  .grid.cols-3 .chart{min-height:285px}
}
@media(max-width:980px){
  .chart{min-height:260px}
  .chart.large{min-height:310px}
  .chart-plot{min-height:210px}
}

/* v8.6 taxonomy/deadline filters: adaptive filter layout for many dimensions */
.filters{
  grid-template-columns:repeat(auto-fit,minmax(138px,1fr))!important;
  align-items:end;
}
.filters .search{grid-column:minmax(220px,2fr);}
.btn-reset{min-height:42px;}
@media(max-width:980px){.filters{grid-template-columns:1fr 1fr!important}.filters .search{grid-column:1 / -1}}


/* v9.2.1 balance fix: calmer chart sizing without clipping */
.brand{gap:13px;align-items:center;}
.brand-logo-image{width:58px;height:58px;border-radius:16px;background:#0f172a;box-shadow:0 16px 34px rgba(15,23,42,.18);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:6px;}
.brand-logo-image img{width:100%;height:100%;object-fit:contain;display:block;}
.brand-title{font-size:19px;letter-spacing:-.02em;}
.brand-subtitle{font-size:10px;line-height:1.25;}
.filters{gap:12px!important;padding:16px!important;}
.field label{font-size:11px;letter-spacing:.08em;color:#64748b;}
.field select,.field input{min-height:44px;font-size:15px;border-radius:14px;}
.chart{min-height:360px;gap:12px;}
.chart.large{min-height:430px;}
.chart-plot{min-height:290px;align-items:center;justify-content:center;padding-top:2px;}
.chart.large .chart-plot{min-height:350px;}
.grid.cols-3 .chart{min-height:330px;}
.grid.cols-3 .chart-plot{min-height:270px;}
.chart-hint{font-size:11px!important;font-weight:850;letter-spacing:.03em;text-transform:uppercase;padding:7px 12px!important;opacity:.88;max-width:100%!important;}
.chart-svg{overflow:visible;}
.axis{font-size:15px!important;font-weight:760;fill:#52637a;}
.axis-label{font-size:15px!important;font-weight:860;fill:#40516a;}
.chart-label{font-size:15px!important;font-weight:900;fill:#172033;}
.legend{gap:8px;flex-wrap:wrap;}
.legend-item{font-size:12px!important;font-weight:850;padding:7px 10px;border-radius:999px;}
.panel-title{font-size:20px;letter-spacing:-.025em;}
.panel-subtitle{font-size:14px;line-height:1.35;}
.panel{border-radius:27px;}
.kpi-value{font-size:clamp(25px,2vw,38px);}
.kpi-label{font-size:12px;letter-spacing:.08em;}
.table-wrap table th{font-size:12px;white-space:nowrap;}
.table-wrap table td{font-size:13px;line-height:1.35;}
.tag{font-size:12px;font-weight:850;}
.empty{font-size:15px;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;color:#64748b;}
@media(max-width:1500px){
  .axis{font-size:14px!important}.axis-label{font-size:14px!important}.chart-label{font-size:14px!important}
  .chart{min-height:330px}.chart-plot{min-height:260px}
  .grid.cols-3 .chart{min-height:315px}.grid.cols-3 .chart-plot{min-height:245px}
}
@media(max-width:980px){
  .brand-logo-image{width:52px;height:52px}.chart{min-height:290px}.chart-plot{min-height:220px}
  .axis{font-size:13px!important}.axis-label{font-size:13px!important}.chart-label{font-size:13px!important}
}


/* v9.2 drill-down: click KPI/chart -> exact deals and objects */
.kpi{cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.kpi:hover{transform:translateY(-2px);box-shadow:0 26px 74px rgba(37,99,235,.13);border-color:rgba(37,99,235,.22);}
.kpi-drill{display:inline-flex;margin-top:8px;padding:5px 8px;border-radius:999px;background:rgba(37,99,235,.08);color:#1d4ed8;border:1px solid rgba(37,99,235,.14);font-size:11px;font-weight:900;letter-spacing:.02em;}
.drill-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:14px 0 12px;}
.drill-summary>div{border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.68);border-radius:16px;padding:12px 13px;min-width:0;}
.drill-summary b{display:block;font-size:19px;line-height:1.05;color:#102033;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drill-summary span{display:block;margin-top:5px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:900;}
.drill-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 12px;color:#64748b;font-size:13px;font-weight:800;}
.modal-card .table-wrap{max-height:58vh;}
.modal-card table{min-width:1180px;}


/* v9.2.2 responsive drill-down table fix: readable names on any screen */
.modal{padding:clamp(10px,2vw,24px);}
.modal-card{width:min(1320px,96vw)!important;max-height:92dvh!important;height:min(92dvh,920px);overflow:hidden!important;display:flex;flex-direction:column;padding:clamp(16px,2vw,24px)!important;}
#modalContent{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
#modalContent>h2{flex:0 0 auto;font-size:clamp(20px,2vw,28px);line-height:1.15;margin-bottom:8px!important;}
#modalContent>p,#modalContent>.chart-detail-card,#modalContent>.chart-detail-note,#modalContent>.drill-summary,#modalContent>.drill-actions{flex:0 0 auto;}
.modal-card .table-wrap{flex:1 1 auto;min-height:280px;max-height:none!important;overflow:auto!important;overscroll-behavior:contain;border-radius:18px;}
.modal-card table.data-table{table-layout:fixed;width:max-content;min-width:1720px!important;}
.modal-card table.smart-data-table{min-width:1730px!important;}
.data-table th,.data-table td{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;vertical-align:top;}
.data-table th{height:42px;white-space:nowrap;}
.data-table td{line-height:1.38;word-break:normal;overflow-wrap:normal;}
.data-table td[data-col="deal_id"],.data-table td[data-col="item_id"],.data-table td[data-col="opportunity"],.data-table td[data-col="active_sum"],.data-table td[data-col="won_sum"],.data-table td[data-col="lost_sum"],.data-table td[data-col="sum"],.data-table td[data-col="deadline_date"],.data-table td[data-col="object_id"]{white-space:nowrap;}
.data-table td[data-col="title"]{white-space:normal;overflow:visible;}
.cell-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.38;max-height:4.2em;font-weight:700;color:#1e293b;cursor:pointer;word-break:normal;overflow-wrap:anywhere;hyphens:auto;}
.cell-title:hover{position:relative;z-index:5;display:block;max-height:none;-webkit-line-clamp:unset;background:rgba(255,255,255,.98);box-shadow:0 12px 34px rgba(15,23,42,.12);border:1px solid rgba(148,163,184,.22);border-radius:12px;padding:8px;margin:-8px;}
.data-table .tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.drill-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.drill-summary b{font-size:clamp(16px,1.4vw,20px);}
@media(max-width:1100px){
  .modal-card{width:98vw!important;height:94dvh;max-height:94dvh!important;border-radius:22px;}
  .modal-card table.data-table{min-width:1540px!important;}
  .modal-card table.smart-data-table{min-width:1480px!important;}
  .cell-title{-webkit-line-clamp:4;max-height:5.6em;}
}
@media(max-width:720px){
  .modal{padding:0;place-items:stretch;}
  .modal-card{width:100vw!important;height:100dvh;max-height:100dvh!important;border-radius:0!important;padding:14px!important;}
  #modalContent>h2{font-size:20px;margin-right:44px!important;}
  .drill-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .drill-actions{gap:8px;}
  .drill-actions .btn{width:100%;}
  .modal-card .table-wrap{min-height:260px;border-radius:14px;}
  .modal-card table.data-table{min-width:1350px!important;}
}

/* v9.3 final typography and responsive polish
   One balanced override block after all historical hotfixes. */
:root{
  --ui-font: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  --ui-text:#102033;
  --ui-muted:#64748b;
  --ui-border:rgba(148,163,184,.24);
}
html{font-size:14px;-webkit-text-size-adjust:100%;}
body,button,input,select,table{font-family:var(--ui-font)!important;}
body{font-size:14px;line-height:1.45;color:var(--ui-text);}
.sidebar{width:292px;flex-basis:292px;padding:22px 16px;}
.brand-title{font-size:18px!important;line-height:1.1;}
.brand-subtitle{font-size:10px!important;line-height:1.25;letter-spacing:.055em;}
.nav-item{min-height:42px;padding:10px 12px;border-radius:15px;}
.nav-item b{font-size:13px!important;line-height:1.25;font-weight:850;}
.nav-item span{font-size:11px!important;}
.main{padding:22px 26px 54px;}
.topbar{padding:22px 24px;margin-bottom:14px;}
.topbar h1{font-size:clamp(27px,2.2vw,34px)!important;line-height:1.05;margin:6px 0 8px;}
.topbar p{font-size:14px!important;line-height:1.45;}
.eyebrow{font-size:10.5px!important;letter-spacing:.085em;}
.status-pill{font-size:12px!important;padding:8px 12px;}
.status-note{font-size:12px!important;}
.filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:10px!important;padding:15px!important;margin-bottom:13px;}
.filters .search{grid-column:span 2;min-width:260px;}
.field label{font-size:10.5px!important;line-height:1.2;margin-bottom:6px;}
.field select,.field input{height:42px!important;min-height:42px!important;font-size:14px!important;border-radius:14px!important;padding:0 12px!important;}
.btn,.chip{font-size:12px!important;line-height:1.2;}
.quick-row{gap:8px;margin-bottom:14px;}
.grid{gap:16px;}
.panel{padding:18px!important;border-radius:24px!important;overflow:hidden;}
.panel-header{margin-bottom:12px;}
.panel-title{font-size:18px!important;line-height:1.18;letter-spacing:-.025em;}
.panel-subtitle{font-size:13px!important;line-height:1.35;color:var(--ui-muted);}
.kpi{min-height:136px;padding:16px!important;}
.kpi-label{font-size:11px!important;line-height:1.25;}
.kpi-value{font-size:clamp(28px,2.1vw,36px)!important;line-height:1.02;margin:9px 0 7px;}
.kpi-meta{font-size:12px!important;line-height:1.35;}
.kpi-drill{font-size:10.5px!important;padding:5px 8px!important;margin-top:8px!important;}
.chart{min-height:340px!important;gap:10px!important;display:flex;flex-direction:column;}
.chart.large{min-height:410px!important;}
.chart-plot{min-height:268px!important;display:flex;align-items:center;justify-content:center;overflow:visible;padding:0!important;}
.chart.large .chart-plot{min-height:330px!important;}
.grid.cols-3 .chart{min-height:320px!important;}
.grid.cols-3 .chart-plot{min-height:248px!important;}
.chart-hint{font-size:10.5px!important;line-height:1.25!important;padding:6px 10px!important;letter-spacing:.025em!important;max-width:100%!important;white-space:normal!important;}
.chart-svg{width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important;}
.axis{font-size:12px!important;font-weight:650!important;fill:#5b6b82!important;}
.axis-label{font-size:12.5px!important;font-weight:760!important;fill:#334155!important;}
.chart-label{font-size:12.5px!important;font-weight:800!important;fill:#172033!important;}
.legend{gap:8px!important;margin-top:6px!important;}
.legend-item{font-size:11.5px!important;line-height:1.25!important;padding:0!important;font-weight:760!important;}
.score-title{font-size:13px;line-height:1.3;}
.score-meta{font-size:12px;line-height:1.35;}
.score-value{font-size:17px;}
.table-wrap{border-radius:16px;}
table{font-size:12.5px;}
th,td{padding:10px 11px!important;line-height:1.36!important;}
th{font-size:11px!important;line-height:1.2!important;letter-spacing:.045em;}
td{font-size:12.5px!important;color:#233044;}
.tag{font-size:10.5px!important;line-height:1.15!important;padding:4px 8px!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.empty{font-size:14px!important;min-height:150px;}
/* Modal and drill-down table: stable columns, no one-letter wrapping */
.modal{padding:clamp(10px,1.6vw,22px)!important;align-items:center!important;justify-items:center!important;}
.modal-card{width:min(1480px,96vw)!important;height:min(90dvh,900px)!important;max-height:90dvh!important;display:flex!important;flex-direction:column!important;padding:22px!important;overflow:hidden!important;border-radius:26px!important;}
.modal-close{width:34px!important;height:34px!important;border-radius:12px!important;font-size:22px!important;line-height:1!important;}
#modalContent{height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
#modalContent>h2{font-size:clamp(21px,1.8vw,27px)!important;line-height:1.16!important;margin:0 44px 8px 0!important;letter-spacing:-.03em;}
#modalContent>p{font-size:13px!important;line-height:1.45!important;margin:0 0 10px!important;color:#64748b!important;}
.drill-summary{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))!important;gap:9px!important;margin:12px 0 10px!important;}
.drill-summary>div{padding:10px 12px!important;border-radius:14px!important;}
.drill-summary b{font-size:clamp(16px,1.25vw,19px)!important;line-height:1.08!important;letter-spacing:-.025em;}
.drill-summary span{font-size:10px!important;line-height:1.2!important;margin-top:4px!important;}
.drill-actions{gap:10px!important;margin:8px 0 11px!important;font-size:12px!important;line-height:1.3!important;}
.drill-actions .btn{padding:10px 13px!important;border-radius:13px!important;}
.modal-card .table-wrap{flex:1 1 auto!important;min-height:260px!important;max-height:none!important;overflow:auto!important;overscroll-behavior:contain;border-radius:16px!important;background:rgba(255,255,255,.66)!important;}
.modal-card table.data-table{table-layout:fixed!important;width:2240px!important;min-width:2240px!important;border-collapse:separate!important;border-spacing:0!important;}
.modal-card table.smart-data-table{width:1780px!important;min-width:1780px!important;}
.data-table th,.data-table td{box-sizing:border-box!important;vertical-align:top!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.data-table th{height:40px!important;position:sticky;top:0;z-index:3;background:rgba(248,250,252,.96)!important;backdrop-filter:blur(10px);white-space:nowrap!important;}
.data-table td{font-size:12.5px!important;line-height:1.34!important;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;}
.data-table th[data-col="deal_id"],.data-table td[data-col="deal_id"],
.data-table th[data-col="item_id"],.data-table td[data-col="item_id"]{width:82px!important;min-width:82px!important;max-width:82px!important;white-space:nowrap!important;}
.data-table th[data-col="title"],.data-table td[data-col="title"]{width:520px!important;min-width:520px!important;max-width:520px!important;white-space:normal!important;overflow:visible!important;}
.data-table th[data-col="commercial_direction"],.data-table td[data-col="commercial_direction"]{width:155px!important;min-width:155px!important;max-width:155px!important;}
.data-table th[data-col="work_kind"],.data-table td[data-col="work_kind"]{width:220px!important;min-width:220px!important;max-width:220px!important;}
.data-table th[data-col="object_type"],.data-table td[data-col="object_type"]{width:220px!important;min-width:220px!important;max-width:220px!important;}
.data-table th[data-col="stage_name"],.data-table td[data-col="stage_name"]{width:215px!important;min-width:215px!important;max-width:215px!important;}
.data-table th[data-col="next_step"],.data-table td[data-col="next_step"]{width:300px!important;min-width:300px!important;max-width:300px!important;}
.data-table td[data-col="opportunity"],.data-table td[data-col="active_sum"],.data-table td[data-col="won_sum"],.data-table td[data-col="lost_sum"],.data-table td[data-col="sum"],.data-table td[data-col="deadline_date"],.data-table td[data-col="object_id"]{white-space:nowrap!important;}
.cell-title{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;max-height:4.1em!important;overflow:hidden!important;line-height:1.34!important;font-weight:750!important;color:#1e293b!important;word-break:normal!important;overflow-wrap:break-word!important;hyphens:none!important;cursor:pointer;}
.cell-title:hover{position:static!important;z-index:auto!important;display:-webkit-box!important;max-height:4.1em!important;-webkit-line-clamp:3!important;background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important;}
.data-table .tag{display:inline-flex!important;max-width:100%!important;white-space:nowrap!important;vertical-align:top;}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;overflow:auto;padding-right:2px;}
.detail-item{min-width:0;border-radius:14px!important;}
.detail-value{font-size:13px!important;line-height:1.4!important;word-break:normal!important;overflow-wrap:break-word!important;}
.detail-label{font-size:10px!important;}
@media(max-width:1500px){
  .main{padding:20px 22px 50px;}
  .grid.cols-4,.grid.cols-5{grid-template-columns:repeat(2,minmax(0,1fr));}
  .axis{font-size:11.5px!important}.axis-label{font-size:12px!important}.chart-label{font-size:12px!important}
  .chart{min-height:320px!important}.chart-plot{min-height:250px!important}.chart.large{min-height:390px!important}.chart.large .chart-plot{min-height:310px!important}
  .modal-card{width:97vw!important;height:91dvh!important;}
}
@media(max-width:1100px){
  .shell{display:block;}
  .sidebar{position:relative;width:100%;height:auto;display:block;}
  .nav{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sidebar-actions{grid-template-columns:repeat(3,minmax(0,1fr));}
  .side-info{display:none;}
  .main{padding:18px;}
  .topbar{display:block;}
  .topbar-status{justify-items:start;margin-top:12px;}
  .grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.cols-5{grid-template-columns:1fr;}
  .filters .search{grid-column:1 / -1;min-width:0;}
  .modal-card table.data-table{width:2040px!important;min-width:2040px!important;}
  .data-table th[data-col="title"],.data-table td[data-col="title"]{width:460px!important;min-width:460px!important;max-width:460px!important;}
  .cell-title{-webkit-line-clamp:4!important;max-height:5.5em!important;}
}
@media(max-width:720px){
  .modal{padding:0!important;align-items:stretch!important;justify-items:stretch!important;}
  .modal-card{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;padding:14px!important;}
  #modalContent>h2{font-size:20px!important;margin-right:42px!important;}
  #modalContent>p{font-size:12.5px!important;}
  .drill-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .drill-actions .btn{width:100%;}
  .modal-card table.data-table{width:1780px!important;min-width:1780px!important;}
  .data-table th[data-col="title"],.data-table td[data-col="title"]{width:410px!important;min-width:410px!important;max-width:410px!important;}
  .nav{grid-template-columns:repeat(2,minmax(0,1fr));}
}


/* v9.3.1 section cleanup: cleaner triple charts */
.grid.cols-3 .panel{padding:20px 18px 16px!important;}
.grid.cols-3 .panel-header{margin-bottom:10px!important;}
.grid.cols-3 .panel-title{font-size:17px!important;line-height:1.18!important;}
.grid.cols-3 .panel-subtitle{font-size:12.5px!important;line-height:1.4!important;max-width:92%;}
.grid.cols-3 .chart{min-height:290px!important;gap:8px!important;}
.grid.cols-3 .chart-plot{min-height:210px!important;align-items:flex-start!important;justify-content:flex-start!important;padding-top:2px!important;}
.grid.cols-3 .chart-hint{font-size:10px!important;line-height:1.2!important;padding:5px 10px!important;}
.grid.cols-3 .axis{font-size:12.5px!important;font-weight:700!important;fill:#5b677a!important;}
.grid.cols-3 .axis-label{font-size:12.5px!important;font-weight:780!important;fill:#334155!important;}
.grid.cols-3 .chart-label{font-size:12.5px!important;font-weight:820!important;fill:#172033!important;}
.chart-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:4px;color:#64748b;font-size:11px;font-weight:700;}
.chart-meta span{padding:0;}
@media(max-width:1500px){
  .grid.cols-3 .chart{min-height:280px!important;}
  .grid.cols-3 .chart-plot{min-height:200px!important;}
}
@media(max-width:1100px){
  .grid.cols-3 .chart{min-height:300px!important;}
  .grid.cols-3 .chart-plot{min-height:220px!important;}
}


/* v9.3.2 hard fix: executive triple chart block */
.executive-triplet{align-items:stretch;}
.executive-triplet .executive-panel{padding:18px 18px 14px!important;border-radius:24px!important;}
.executive-triplet .panel-header{margin-bottom:8px!important;}
.executive-triplet .panel-title{font-size:16px!important;line-height:1.16!important;letter-spacing:-.02em!important;}
.executive-triplet .panel-subtitle{font-size:12px!important;line-height:1.34!important;color:#718096!important;max-width:92%;}
.executive-triplet .chart{min-height:260px!important;gap:7px!important;}
.executive-triplet .chart-plot{min-height:190px!important;align-items:flex-start!important;justify-content:flex-start!important;padding-top:0!important;}
.executive-triplet .chart-hint{font-size:9.5px!important;line-height:1.15!important;padding:4px 9px!important;display:inline-flex;max-width:max-content!important;border-radius:999px!important;}
.executive-triplet .axis{font-size:11.5px!important;font-weight:680!important;fill:#5e6b80!important;}
.executive-triplet .axis-label{font-size:11.5px!important;font-weight:760!important;fill:#334155!important;}
.executive-triplet .chart-label{font-size:11.5px!important;font-weight:820!important;fill:#172033!important;}
.executive-triplet .chart-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:2px;color:#7b8798;font-size:10.5px;font-weight:700;}
.executive-triplet .legend,.executive-triplet .chart-meta{padding-top:2px;}
.executive-triplet .legend-item{font-size:10.5px!important;line-height:1.2!important;}
@media(max-width:1500px){
  .executive-triplet .chart{min-height:245px!important;}
  .executive-triplet .chart-plot{min-height:178px!important;}
}
@media(max-width:1100px){
  .executive-triplet .panel-title{font-size:17px!important;}
  .executive-triplet .panel-subtitle{font-size:12.5px!important;}
  .executive-triplet .chart{min-height:285px!important;}
  .executive-triplet .chart-plot{min-height:210px!important;}
  .executive-triplet .axis,.executive-triplet .axis-label,.executive-triplet .chart-label{font-size:12px!important;}
}


/* v9.4 final UX polish: interactions, focus, animations, highlights */
:root{--ux-ease:cubic-bezier(.2,.8,.2,1);--ux-fast:.16s;--ux-mid:.24s;}
*{-webkit-tap-highlight-color:transparent;}
button,.btn,.chip,.nav-item,.kpi,.chart-node,.linkish,th{touch-action:manipulation;}
.nav-item,.btn,.chip,.kpi,.panel,.table-wrap tbody tr,.modal-close,.field select,.field input{transition:transform var(--ux-fast) var(--ux-ease),box-shadow var(--ux-fast) var(--ux-ease),border-color var(--ux-fast) var(--ux-ease),background var(--ux-fast) var(--ux-ease),opacity var(--ux-fast) var(--ux-ease);}
.nav-item:hover{transform:translateX(2px);background:rgba(219,234,254,.55);border-color:rgba(37,99,235,.18);}
.nav-item.active{background:linear-gradient(135deg,rgba(219,234,254,.92),rgba(236,253,245,.82));box-shadow:inset 0 0 0 1px rgba(37,99,235,.10),0 12px 28px rgba(37,99,235,.08);}
.btn:hover,.chip:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.10);}
.btn:active,.chip:active,.nav-item:active,.kpi:active{transform:translateY(0) scale(.995);}
.chip.active{background:linear-gradient(135deg,#2563eb,#16a3d8)!important;color:white!important;border-color:rgba(37,99,235,.42)!important;box-shadow:0 12px 28px rgba(37,99,235,.22)!important;}
.field select:hover,.field input:hover{border-color:rgba(37,99,235,.24);box-shadow:0 8px 22px rgba(37,99,235,.06);}
.field select:focus,.field input:focus,.btn:focus-visible,.chip:focus-visible,.nav-item:focus-visible,.kpi:focus-visible,.modal-close:focus-visible,.chart-node:focus-visible,.linkish:focus-visible,th:focus-visible{outline:3px solid rgba(37,99,235,.18)!important;outline-offset:2px;border-color:rgba(37,99,235,.42)!important;}
.panel{transition:transform .18s var(--ux-ease),box-shadow .18s var(--ux-ease),border-color .18s var(--ux-ease),background .18s var(--ux-ease);}
.panel:hover{transform:translateY(-1px);box-shadow:0 22px 58px rgba(15,23,42,.095);}
.kpi:hover,.kpi:focus-visible{transform:translateY(-3px);box-shadow:0 28px 70px rgba(37,99,235,.14);}
.kpi-drill{transition:background .16s var(--ux-ease),transform .16s var(--ux-ease),color .16s var(--ux-ease);}
.kpi:hover .kpi-drill,.kpi:focus-visible .kpi-drill{background:rgba(37,99,235,.14);color:#1746c7;transform:translateY(-1px);}
.chart{isolation:isolate;}
.chart-hint{transition:opacity .16s var(--ux-ease),background .16s var(--ux-ease),transform .16s var(--ux-ease);}
.chart:hover .chart-hint{opacity:1;background:rgba(255,255,255,.90);transform:translateY(-1px);}
.chart-node{cursor:pointer;transition:filter .16s var(--ux-ease),opacity .16s var(--ux-ease),stroke-width .16s var(--ux-ease);}
.bar.chart-node:hover,.bar.chart-node:focus-visible{filter:drop-shadow(0 10px 16px rgba(37,99,235,.26));opacity:1!important;}
.line-point:hover,.line-point:focus-visible{filter:drop-shadow(0 8px 12px rgba(37,99,235,.34));}
.donut-segment:hover,.donut-segment:focus-visible{opacity:.96;filter:drop-shadow(0 10px 16px rgba(15,23,42,.18));}
.chart-tooltip{animation:tooltipIn .12s var(--ux-ease);will-change:transform,opacity;}
@keyframes tooltipIn{from{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.table-wrap tbody tr:hover{background:rgba(219,234,254,.35)!important;transform:none!important;}
.data-table th{cursor:pointer;user-select:none;}
.data-table th:hover{background:rgba(226,232,240,.98)!important;color:#1d4ed8;}
.linkish,.cell-title{cursor:pointer;}
.linkish:hover,.cell-title:hover{color:#1d4ed8!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.modal.hidden{display:none!important;}
.modal:not(.hidden) .modal-backdrop{animation:modalFadeIn .18s var(--ux-ease);}
.modal:not(.hidden) .modal-card{animation:modalCardIn .22s var(--ux-ease);box-shadow:0 40px 120px rgba(15,23,42,.28);}
@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalCardIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-close:hover{background:#f8fafc!important;transform:translateY(-1px);box-shadow:0 10px 26px rgba(15,23,42,.10);}
.drill-summary>div{transition:transform .16s var(--ux-ease),box-shadow .16s var(--ux-ease),border-color .16s var(--ux-ease);}
.drill-summary>div:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,23,42,.08);border-color:rgba(37,99,235,.16);}
.tag{transition:background .16s var(--ux-ease),box-shadow .16s var(--ux-ease);}
.detail-item{transition:box-shadow .16s var(--ux-ease),transform .16s var(--ux-ease),border-color .16s var(--ux-ease);}
.detail-item:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.075);border-color:rgba(37,99,235,.13);}
.executive-triplet .chart-hint{font-size:10px!important;text-transform:none!important;letter-spacing:.01em!important;color:#52627a!important;}
.executive-triplet .chart-meta{font-size:11px!important;color:#64748b!important;}
.pulse{animation:statusPulse .9s ease-in-out 2;}
@keyframes statusPulse{0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}50%{box-shadow:0 0 0 8px rgba(16,185,129,.12)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important;}}
@media(max-width:720px){.btn:hover,.chip:hover,.nav-item:hover,.panel:hover,.kpi:hover,.detail-item:hover,.drill-summary>div:hover{transform:none!important}.chart-tooltip{max-width:280px;font-size:11.5px}.chart-hint{position:static!important}}


/* v9.5 chart redesign: no SVG labels for horizontal bars */
.chart.html-chart{min-height:auto!important;}
.chart.html-chart .chart-plot{width:100%!important;min-height:auto!important;display:block!important;overflow:visible!important;padding:0!important;}
.html-bar-chart{width:100%;display:grid;gap:10px;margin:6px 0 2px;}
.html-bar-row{display:grid;grid-template-columns:minmax(128px,34%) minmax(92px,1fr) minmax(72px,max-content);gap:12px;align-items:center;min-height:34px;border-radius:14px;padding:4px 6px 4px 0;cursor:pointer;transition:background .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1);}
.html-bar-row:hover,.html-bar-row:focus-visible{background:rgba(219,234,254,.38);transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.06);outline:none;}
.html-bar-label{min-width:0;color:#314155;font-size:12.2px;font-weight:760;line-height:1.22;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.html-bar-track{position:relative;height:24px;border-radius:999px;background:rgba(226,232,240,.48);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(148,163,184,.15);}
.html-bar-fill{height:100%;min-width:3px;border-radius:999px;background:linear-gradient(90deg,#2563eb,#3b82f6);box-shadow:0 10px 22px rgba(37,99,235,.18);transition:width .32s cubic-bezier(.2,.8,.2,1),filter .16s cubic-bezier(.2,.8,.2,1);}
.html-bar-row:hover .html-bar-fill,.html-bar-row:focus-visible .html-bar-fill{filter:saturate(1.08) brightness(1.02);}
.html-bar-value{min-width:0;color:#0f172a;font-size:12.2px;font-weight:850;line-height:1.2;white-space:nowrap;text-align:left;}
.html-bar-chart.green .html-bar-fill{background:linear-gradient(90deg,#10b981,#22c55e);box-shadow:0 10px 22px rgba(16,185,129,.18);}
.html-bar-chart.teal .html-bar-fill{background:linear-gradient(90deg,#14b8a6,#2dd4bf);box-shadow:0 10px 22px rgba(20,184,166,.18);}
.html-bar-chart.purple .html-bar-fill{background:linear-gradient(90deg,#7c3aed,#8b5cf6);box-shadow:0 10px 22px rgba(124,58,237,.18);}
.html-bar-chart.amber .html-bar-fill{background:linear-gradient(90deg,#f59e0b,#fbbf24);box-shadow:0 10px 22px rgba(245,158,11,.18);}
.html-bar-chart.red .html-bar-fill,.html-bar-chart.diverging .html-bar-row.negative .html-bar-fill{background:linear-gradient(90deg,#ef4444,#f87171);box-shadow:0 10px 22px rgba(239,68,68,.18);}
.html-bar-chart.diverging .html-bar-row.positive .html-bar-fill{background:linear-gradient(90deg,#10b981,#22c55e);box-shadow:0 10px 22px rgba(16,185,129,.18);}
.chart.html-chart .chart-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;color:#64748b;font-size:11.5px;font-weight:760;line-height:1.25;}
.chart.html-chart .chart-hint{max-width:max-content!important;font-size:10.5px!important;line-height:1.2!important;padding:5px 10px!important;text-transform:none!important;letter-spacing:.01em!important;}
.executive-triplet .html-bar-row{grid-template-columns:minmax(118px,32%) minmax(84px,1fr) minmax(68px,max-content);gap:10px;min-height:32px;}
.executive-triplet .html-bar-label{font-size:11.5px;}
.executive-triplet .html-bar-value{font-size:11.5px;}
.executive-triplet .html-bar-track{height:22px;}
.executive-triplet .chart.html-chart .chart-meta{font-size:10.5px!important;margin-top:6px;}
@media(max-width:1500px){
  .html-bar-row{grid-template-columns:minmax(112px,32%) minmax(82px,1fr) minmax(64px,max-content);gap:10px;}
  .html-bar-label,.html-bar-value{font-size:11.4px;}
  .html-bar-track{height:22px;}
}
@media(max-width:1100px){
  .html-bar-row{grid-template-columns:minmax(150px,34%) minmax(120px,1fr) minmax(76px,max-content);}
  .html-bar-label,.html-bar-value{font-size:12.2px;}
  .html-bar-track{height:24px;}
}
@media(max-width:720px){
  .html-bar-row{grid-template-columns:1fr;gap:6px;align-items:stretch;padding:8px;border:1px solid rgba(148,163,184,.16);background:rgba(255,255,255,.45);}
  .html-bar-label{text-align:left;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .html-bar-value{text-align:left;font-size:12px;}
  .chart.html-chart .chart-meta{font-size:10.5px;}
}

/* v9.6 mobile layer: preserves desktop layout and adds a touch-first phone view. */
@media (max-width: 720px) {
  html, body { min-width: 0; overflow-x: hidden; }
  body { font-size: 14px; }
  .shell { display: block; min-height: 100dvh; }
  .sidebar {
    position: relative;
    width: 100%;
    height: auto;
    max-height: none;
    padding: 12px 10px 10px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0 0 22px 22px;
    overflow: visible;
  }
  .brand { gap: 9px; margin: 0 2px 10px; }
  .brand-logo-image { width: 42px; height: 42px; border-radius: 13px; padding: 5px; }
  .brand-title { font-size: 16px !important; }
  .brand-subtitle { display: none; }
  .nav {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: 2px 1px 7px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .nav::-webkit-scrollbar { display: none; }
  .nav-item {
    flex: 0 0 auto;
    min-height: 38px;
    min-width: max-content;
    padding: 9px 12px;
    border-radius: 13px;
    scroll-snap-align: start;
  }
  .nav-item span { display: none; }
  .nav-item b { font-size: 12px !important; white-space: nowrap; }
  .sidebar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-top: 8px;
  }
  .sidebar-actions .btn { min-height: 40px; padding: 10px 8px; font-size: 11px !important; }
  .sidebar-actions #reloadBtn { grid-column: 1 / -1; }
  .main { padding: 10px 10px 34px; }
  .topbar {
    padding: 16px 15px;
    margin-bottom: 10px;
    border-radius: 20px;
  }
  .eyebrow { font-size: 9px !important; line-height: 1.35; letter-spacing: .06em; }
  .topbar h1 { font-size: 25px !important; line-height: 1.08; margin: 6px 0 7px; }
  .topbar p { font-size: 12px !important; line-height: 1.4; }
  .topbar-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 12px;
  }
  .status-pill { padding: 7px 10px; font-size: 10px !important; }
  .status-note { font-size: 10px !important; text-align: right; }
  .filters {
    position: relative;
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    padding: 12px !important;
    margin-bottom: 10px;
    border-radius: 20px;
    display: none !important;
  }
  .filters.mobile-open { display: grid !important; }
  .mobile-filter-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    margin: 0 0 10px;
    padding: 11px 13px;
    border: 1px solid rgba(37,99,235,.18);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(219,234,254,.78), rgba(236,253,245,.66));
    color: #1e3a8a;
    box-shadow: 0 10px 26px rgba(37,99,235,.08);
    cursor: pointer;
    text-align: left;
  }
  .mobile-filter-toggle > span:first-child { font-size: 13px; font-weight: 950; }
  .mobile-filter-count { flex: 1; color: #64748b; font-size: 10px; font-weight: 750; }
  .mobile-filter-chevron { font-size: 20px; line-height: .8; transform: translateY(-2px); transition: transform .18s ease; }
  .mobile-filter-toggle.is-open .mobile-filter-chevron { transform: rotate(180deg) translateY(2px); }
  .filters .field,
  .filters .search { grid-column: 1 / -1; min-width: 0; }
  .filters .field:nth-child(n+2) { border-top: 1px solid rgba(148,163,184,.13); padding-top: 8px; }
  .field label { font-size: 9px !important; letter-spacing: .07em; margin-bottom: 5px; }
  .field select, .field input { height: 42px !important; min-height: 42px !important; font-size: 14px !important; }
  .btn-reset { width: 100%; min-height: 42px; }
  .quick-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 1px 1px 5px;
    margin-bottom: 10px;
    scrollbar-width: none;
  }
  .quick-row::-webkit-scrollbar { display: none; }
  .chip { flex: 0 0 auto; min-height: 36px; padding: 9px 11px; font-size: 11px !important; }
  .content, .grid { gap: 10px; }
  .panel { padding: 14px !important; border-radius: 20px !important; }
  .panel-header { gap: 8px; margin-bottom: 10px; }
  .panel-title { font-size: 17px !important; line-height: 1.18; }
  .panel-subtitle { font-size: 11px !important; }
  .kpi { min-height: 126px; padding: 14px !important; }
  .kpi-label { font-size: 10px !important; }
  .kpi-value { font-size: 27px !important; margin: 8px 0 6px; }
  .kpi-meta { font-size: 11px !important; }
  .chart { min-height: 250px !important; gap: 8px !important; }
  .chart.large { min-height: 290px !important; }
  .chart-plot, .chart.large .chart-plot,
  .grid.cols-3 .chart-plot { min-height: 190px !important; }
  .axis, .axis-label, .chart-label { font-size: 10px !important; }
  .chart-hint { font-size: 9px !important; padding: 5px 8px !important; }
  .legend { gap: 5px !important; }
  .legend-item { font-size: 10px !important; }
  .score-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px; border-radius: 14px; }
  .score-title { font-size: 12px; }
  .score-meta { font-size: 10px; }
  .score-value { font-size: 15px; }
  .table-wrap { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-wrap table { min-width: 760px; }
  .table-wrap th, .table-wrap td { padding: 9px 10px !important; font-size: 11px !important; }
  .detail-grid { grid-template-columns: 1fr; gap: 8px; }
  .detail-item { padding: 9px; }
  .detail-label { font-size: 9px !important; }
  .detail-value { font-size: 12px !important; }
  .alert { padding: 12px; border-radius: 15px; font-size: 12px; }
  .schema-grid { grid-template-columns: 1fr; gap: 9px; }
  .empty { min-height: 120px; font-size: 13px !important; }
}

@media (min-width: 721px) {
  .mobile-filter-toggle { display: none; }
}

@media (max-width: 380px) {
  .main { padding-left: 8px; padding-right: 8px; }
  .topbar h1 { font-size: 22px !important; }
  .topbar-status { align-items: flex-start; flex-direction: column; }
  .status-note { text-align: left; }
  .kpi-value { font-size: 24px !important; }
  .panel { padding: 12px !important; }
}
