:root { scroll-behavior:smooth; }
body { min-width:320px; }
.analytics-shell { min-height:100vh; display:grid; grid-template-columns:230px minmax(0,1fr); }
.analytics-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:24px 20px; color:#e9f3ef; background:var(--sidebar); }
.analytics-brand { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-size:17px; font-weight:750; }
.analytics-version { margin:22px 0 12px; color:#94acbd; font-size:11px; letter-spacing:.8px; }
.analytics-nav { display:grid; gap:5px; }
.analytics-nav a { padding:10px 11px; border-radius:8px; color:#c5d3de; text-decoration:none; font-weight:650; }
.analytics-nav a:hover { color:#fff; background:#2a4359; }
.analytics-back { margin-top:auto; padding-top:18px; border-top:1px solid rgba(231,242,237,.15); color:#e2aa3e; text-decoration:none; font-weight:700; }
.analytics-main { min-width:0; width:100%; max-width:1920px; margin:0 auto; padding:38px 42px 64px; }
.analytics-header { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:28px; }
.analytics-header h1 { font-size:32px; }
.analytics-header > div > p:last-child { margin:8px 0 0; color:var(--muted); }
.analytics-readonly { padding:7px 12px; border:1px solid #bad8cf; border-radius:99px; color:#26725c; background:#edf8f4; font-size:12px; font-weight:750; }
.analytics-loading,.analytics-error { padding:20px; border:1px solid var(--border); border-radius:12px; background:#fff; }
.analytics-error { color:var(--danger); }
.analytics-section { margin:0 0 34px; scroll-margin-top:20px; }
.analytics-filter-panel { display:grid; grid-template-columns:minmax(145px,.75fr) repeat(4,minmax(145px,1fr)) auto; align-items:end; gap:12px; margin:0 0 34px; padding:16px 18px; border:1px solid var(--border); border-radius:13px; background:#fff; box-shadow:0 7px 22px rgba(15,43,65,.05); }
.analytics-filter-panel h2 { font-size:18px; }
.analytics-filter-panel label { font-size:11px; }
.filter-kicker { margin:0 0 2px; color:var(--orange); font-size:9px; font-weight:800; letter-spacing:1px; }
.quality-notice { margin-top:12px; padding:11px 14px; border:1px solid #efd8ad; border-radius:9px; color:#8b5b1d; background:#fff8ea; font-size:12px; font-weight:700; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:16px; margin-bottom:14px; }
.section-heading p { margin:0 0 3px; color:var(--orange); font-size:10px; font-weight:800; letter-spacing:1.1px; }
.section-heading h2 { font-size:22px; }
.section-heading > span { color:var(--muted); font-size:12px; text-align:right; }
.analytics-cards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.metric-card,.analytics-panel { border:1px solid var(--border); border-radius:13px; background:#fff; box-shadow:0 7px 22px rgba(15,43,65,.05); }
.metric-card { min-height:118px; padding:17px; }
.metric-label { color:var(--muted); font-size:12px; }
.metric-value { margin:8px 0 3px; color:var(--primary-dark); font-size:24px; font-weight:800; letter-spacing:-.5px; }
.metric-note { color:#91a0af; font-size:11px; }
.analytics-grid { display:grid; grid-template-columns:minmax(330px,.8fr) minmax(520px,1.4fr); gap:14px; }
.analytics-panel { padding:19px; }
.analytics-panel h3 { margin-bottom:18px; font-size:16px; }
.bar-chart { display:grid; gap:15px; }
.bar-row { display:grid; grid-template-columns:78px minmax(90px,1fr) 104px; align-items:center; gap:10px; }
.bar-label,.bar-value { font-size:12px; }
.bar-value { text-align:right; font-weight:750; }
.bar-track { height:12px; overflow:hidden; border-radius:99px; background:#eaf0f5; }
.bar-fill { height:100%; min-width:2px; border-radius:99px; background:linear-gradient(90deg,var(--primary),#2b769a); }
.bar-count { display:block; color:var(--muted); font-size:10px; font-weight:500; }
.chart-wrap { position:relative; min-height:310px; }
#scatterChart { display:block; width:100%; height:310px; }
.chart-tooltip { position:absolute; z-index:2; max-width:230px; padding:8px 10px; transform:translate(10px,-100%); border-radius:7px; color:#fff; background:rgba(9,39,61,.94); pointer-events:none; font-size:11px; box-shadow:var(--shadow); }
.chart-axis-note { display:flex; justify-content:space-between; color:var(--muted); font-size:10px; }
.table-panel { padding:0; overflow:hidden; }
.table-scroll { overflow-x:auto; }
.analytics-panel table { width:100%; border-collapse:collapse; }
.analytics-panel th,.analytics-panel td { padding:12px 15px; border-bottom:1px solid var(--border); text-align:right; white-space:nowrap; }
.analytics-panel th { color:#587083; background:#eaf2f6; font-size:11px; }
.analytics-panel th:first-child,.analytics-panel td:first-child { text-align:left; font-weight:700; }
.analytics-panel tbody tr:last-child td { border-bottom:0; }
.analytics-panel tbody tr:hover { background:#f8fbfd; }
.market-panel { padding:0; overflow-x:auto; }
.market-content { min-width:760px; }
.market-header,.market-summary { display:grid; grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(110px,1fr)); align-items:center; }
.market-header { color:#587083; background:#eaf2f6; font-size:11px; font-weight:750; }
.market-header span,.market-summary span { padding:12px 15px; text-align:right; }
.market-header span:first-child,.market-summary span:first-child { text-align:left; }
.market-group { border-bottom:1px solid var(--border); }
.market-group:last-child { border-bottom:0; }
.market-group summary { list-style:none; cursor:pointer; }
.market-group summary::-webkit-details-marker { display:none; }
.market-group summary:hover { background:#f8fbfd; }
.market-name { font-weight:800; }
.market-name::before { display:inline-block; width:17px; content:'›'; color:var(--orange); font-size:18px; transition:transform .15s ease; }
.market-group[open] .market-name::before { transform:rotate(90deg); }
.market-country-table { padding:0 15px 14px 32px; background:#f8fbfd; }
.market-country-table table { width:100%; border-collapse:collapse; }
.market-country-table th,.market-country-table td { padding:9px 12px; border-top:1px solid var(--border); text-align:right; white-space:nowrap; }
.market-country-table th:first-child,.market-country-table td:first-child { text-align:left; }
.market-country-table th { color:var(--muted); font-size:10px; }
.product-groups { display:grid; gap:12px; }
#product-analysis { overflow-x:auto; padding-bottom:4px; }
.product-groups { min-width:760px; }
.product-header { display:grid; grid-template-columns:minmax(190px,1.4fr) repeat(4,minmax(110px,1fr)); min-width:760px; color:#587083; font-size:11px; font-weight:750; }
.product-header span { padding:0 15px 8px; text-align:right; }
.product-header span:first-child { text-align:left; }
.product-group { overflow:hidden; border:1px solid var(--border); border-radius:13px; background:#fff; box-shadow:0 7px 22px rgba(15,43,65,.05); }
.product-group summary { list-style:none; cursor:pointer; }
.product-group summary::-webkit-details-marker { display:none; }
.product-summary { display:grid; grid-template-columns:minmax(190px,1.4fr) repeat(4,minmax(110px,1fr)); align-items:center; background:#eaf2f6; }
.product-summary span { padding:13px 15px; text-align:right; }
.product-summary span:first-child { text-align:left; }
.product-name { font-weight:800; }
.product-name::before { display:inline-block; width:17px; content:'›'; color:var(--orange); font-size:18px; transition:transform .15s ease; }
.product-group[open] .product-name::before { transform:rotate(90deg); }
.product-subtypes { padding:0 15px 14px 32px; }
.product-subtypes table { width:100%; border-collapse:collapse; }
.product-subtypes th,.product-subtypes td { padding:10px 12px; border-top:1px solid var(--border); text-align:right; white-space:nowrap; }
.product-subtypes th:first-child,.product-subtypes td:first-child { text-align:left; }
.product-subtypes th { color:var(--muted); font-size:10px; }
.ranking-grid { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:14px; align-items:start; }
.ranking-grid table { min-width:980px; }
.ranking-grid td:nth-child(3) { max-width:300px; overflow:hidden; text-overflow:ellipsis; }
.ranking-controls { display:flex; align-items:flex-end; justify-content:flex-end; gap:14px; color:var(--muted); font-size:11px; }
.ranking-controls label { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.ranking-controls select { width:auto; min-width:76px; padding:7px 28px 7px 9px; }
.ranking-pagination { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:11px 15px; border-top:1px solid var(--border); color:var(--muted); font-size:11px; }
.ranking-pagination .button { min-height:30px; padding:5px 11px; }
.ranking-pagination .button:disabled { opacity:.45; cursor:not-allowed; }
.rank-number { color:var(--orange); font-weight:850; }
.ranking-quote-link { color:var(--primary-dark); font-weight:800; text-decoration:none; }
.ranking-quote-link:hover { color:var(--orange); text-decoration:underline; }
.ranking-action { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:5px 10px; border:1px solid #b8cad6; border-radius:7px; color:var(--primary-dark); background:#fff; font-size:11px; font-weight:750; text-decoration:none; }
.ranking-action:hover { border-color:var(--primary); color:#fff; background:var(--primary); }
.ranking-row-updated { animation:ranking-updated 3.2s ease-out; }
@keyframes ranking-updated {
  0%,35% { background:#fff0c9; box-shadow:inset 4px 0 0 var(--orange); }
  100% { background:transparent; box-shadow:inset 4px 0 0 transparent; }
}
.reference-placeholder { min-height:220px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(145deg,#fff,#eef4f7); }
.reference-placeholder > span { align-self:flex-start; padding:3px 8px; border-radius:99px; color:#8b5b1d; background:#fbf1df; font-size:10px; font-weight:750; }
.reference-placeholder h3 { margin:12px 0 8px; }
.reference-placeholder p { margin:0; color:var(--muted); font-size:12px; }
.mapping-report { margin-top:12px; overflow:hidden; border:1px solid var(--border); border-radius:13px; background:#fff; }
.mapping-report summary { padding:14px 17px; color:var(--primary-dark); cursor:pointer; font-weight:750; }
.mapping-report summary span { margin-left:7px; color:var(--muted); font-size:11px; font-weight:500; }
.mapping-note { padding:10px 17px; border-top:1px solid var(--border); color:var(--muted); background:#f8fbfd; font-size:11px; }
.mapping-report table { width:100%; border-collapse:collapse; }
.mapping-report th,.mapping-report td { padding:10px 14px; border-top:1px solid var(--border); text-align:left; white-space:nowrap; }
.mapping-report th { color:#587083; background:#eaf2f6; font-size:11px; }
.mapping-status { display:inline-block; padding:2px 7px; border-radius:99px; color:#26725c; background:#e8f5f0; font-size:10px; font-weight:750; }
.mapping-status.review { color:#9a621b; background:#fbf1df; }
.cost-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.analytics-formula { margin:10px 2px 0; color:var(--muted); font-size:11px; }
@media (max-width:1200px) {
  .analytics-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .analytics-grid { grid-template-columns:1fr; }
  .analytics-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ranking-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .analytics-shell { grid-template-columns:1fr; }
  .analytics-sidebar { position:static; height:auto; padding:15px 17px; }
  .analytics-version { margin:12px 0 6px; }
  .analytics-nav { display:flex; overflow-x:auto; }
  .analytics-nav a { flex:0 0 auto; padding:7px 9px; }
  .analytics-back { margin-top:10px; padding-top:10px; }
  .analytics-main { padding:25px 17px 45px; }
  .analytics-header,.section-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .section-heading > span { text-align:left; }
  .ranking-controls { width:100%; align-items:flex-start; justify-content:space-between; }
  .analytics-filter-panel { grid-template-columns:1fr; }
  .analytics-cards,.cost-cards { grid-template-columns:1fr 1fr; }
  .bar-row { grid-template-columns:68px minmax(75px,1fr) 90px; }
}
@media (max-width:430px) {
  .analytics-cards,.cost-cards { grid-template-columns:1fr; }
}

/* Keep the new PLATON BUILD lockup inside the original blue analytics theme. */
.analytics-brand { gap:13px; color:#fff; }
.analytics-brand .brand-logo { width:46px; height:54px; flex:0 0 46px; object-fit:contain; }
.analytics-brand .brand-copy { display:grid; gap:0; line-height:1; }
.analytics-brand .brand-copy strong { font-size:16px; font-weight:750; letter-spacing:5px; line-height:1.15; }
.analytics-brand .brand-build { margin-top:5px; color:#e9f3ef; font-size:11px; font-weight:600; letter-spacing:5px; line-height:1; }
.analytics-brand .brand-copy .brand-tagline { margin-top:7px; color:#94acbd; font-size:7px; font-weight:500; letter-spacing:0; line-height:1; white-space:nowrap; }

@media (max-width:760px) {
  .analytics-brand .brand-logo { width:40px; height:47px; flex-basis:40px; }
  .analytics-brand .brand-copy strong { font-size:14px; letter-spacing:4px; }
  .analytics-brand .brand-build { font-size:10px; letter-spacing:4px; }
  .analytics-brand .brand-copy .brand-tagline { font-size:6.5px; }
}
