:root{
    --teal:#0E5B61; --teal-d:#0A464B; --teal-soft:#E4F0EF;
    --coral:#c41e3a; --coral-d:#9e1830; --coral-soft:#fde8ec;
    --bg:#F4F7F6; --panel:#FFFFFF; --ink:#28323A; --ink-soft:#5C6B73;
    --line:#E2EAE8; --line-soft:#EEF3F2; --base:#8FA3AB; --base-soft:#E7EDEC;
    --shadow:0 1px 2px rgba(14,91,97,.05),0 10px 30px rgba(14,91,97,.06);
    --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    --sans:"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,sans-serif;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
    line-height:1.45;-webkit-font-smoothing:antialiased}
  .wrap{max-width:1280px;margin:0 auto;padding:30px 22px 64px}

  /* ---- header ---- */
  header{margin-bottom:22px}
  .brand{display:flex;align-items:center;margin-bottom:16px}
  .vfl-logo{height:54px;width:auto;display:block}
  h1{font-weight:800;font-size:clamp(27px,3.6vw,40px);line-height:1.05;
    margin:0 0 16px;letter-spacing:-.015em;color:var(--ink)}
  h1 .accent{color:var(--coral)}

  .country-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .country-row label{font-size:13px;font-weight:700;color:var(--ink-soft)}
  .country-select{position:relative}
  select#country{appearance:none;-webkit-appearance:none;font-family:var(--sans);
    font-size:15px;font-weight:700;color:var(--teal);background:var(--panel);
    border:2px solid var(--teal);border-radius:11px;padding:11px 44px 11px 16px;
    cursor:pointer;box-shadow:var(--shadow);min-width:240px}
  select#country:focus{outline:3px solid var(--teal-soft);outline-offset:1px}
  .country-select::after{content:"";position:absolute;right:16px;top:50%;
    width:9px;height:9px;border-right:2.4px solid var(--teal);
    border-bottom:2.4px solid var(--teal);transform:translateY(-70%) rotate(45deg);
    pointer-events:none}
  .pdf-btn{margin-left:auto;border:none;background:var(--coral);color:#fff;
    font-family:var(--sans);font-size:14px;font-weight:700;padding:12px 20px;
    border-radius:11px;cursor:pointer;box-shadow:0 6px 16px rgba(196,30,58,.28);
    display:inline-flex;align-items:center;gap:8px;transition:.15s}
  .pdf-btn:hover{background:var(--coral-d)}
  .pdf-btn svg{width:16px;height:16px}

  /* ---- layout ---- */
  .grid{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start;
    margin-top:22px}
  @media(max-width:940px){.grid{grid-template-columns:1fr}}

  .panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;
    box-shadow:var(--shadow);overflow:hidden}
  .panel-head{padding:16px 18px 12px;border-bottom:1px solid var(--line-soft)}
  .panel-head h2{font-weight:800;font-size:16px;margin:0;color:var(--teal);
    letter-spacing:-.01em}
  .panel-head p{margin:3px 0 0;font-size:12.5px;color:var(--ink-soft)}
  .panel-body{padding:16px 18px}

  /* ---- controls ---- */
  .ctl{margin-bottom:15px}
  .ctl:last-child{margin-bottom:0}
  .ctl label{display:flex;justify-content:space-between;align-items:baseline;
    font-size:12.5px;font-weight:700;margin-bottom:6px;gap:8px;color:var(--ink)}
  .ctl label .val{font-family:var(--mono);font-size:12.5px;color:var(--teal);
    background:var(--teal-soft);padding:2px 8px;border-radius:6px;font-weight:700}
  .ctl input[type=range]{width:100%;accent-color:var(--coral);height:4px}
  .ctl input[type=number]{width:100%;font-family:var(--mono);font-size:13px;
    padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);
    background:var(--bg)}
  .ctl input[type=number]:focus{outline:2px solid var(--coral);outline-offset:1px;
    border-color:transparent}

  .section-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
    color:var(--ink-soft);font-weight:800;margin:4px 0 13px;display:flex;
    align-items:center;gap:9px}
  .section-label::after{content:"";flex:1;height:1px;background:var(--line-soft)}

  .drivers{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:18px}
  .driver{border:1.5px solid var(--line);border-radius:13px;padding:12px 13px}
  .driver.b{border-color:var(--base)}
  .driver.t{border-color:var(--coral);background:var(--coral-soft)}
  .driver .tag{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:800}
  .driver.b .tag{color:var(--base)}
  .driver.t .tag{color:var(--coral-d)}
  .driver .big{font-weight:800;font-size:31px;line-height:1;margin:7px 0 2px;
    letter-spacing:-.02em}
  .driver .unit{font-size:11px;color:var(--ink-soft);line-height:1.25}
  .driver.b input[type=range]{width:100%;margin-top:9px;accent-color:var(--base)}
  .driver.t .lock{font-size:10.5px;color:var(--coral-d);font-weight:700;margin-top:9px;
    display:flex;align-items:center;gap:5px}

  .fixed-note{font-size:11.5px;color:var(--ink-soft);background:var(--teal-soft);
    border-radius:9px;padding:9px 11px;margin-bottom:16px;line-height:1.4}
  .fixed-note b{color:var(--teal)}

  .note{font-size:11px;color:var(--ink-soft);margin-top:15px;padding-top:13px;
    border-top:1px solid var(--line-soft);line-height:1.5}

  /* ---- KPI cards ---- */
  .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
  @media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}}
  .kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;
    padding:15px;box-shadow:var(--shadow);position:relative;overflow:hidden}
  .kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
    background:var(--coral)}
  .kpi .k-label{font-size:11px;color:var(--ink-soft);font-weight:700;line-height:1.3;
    min-height:29px;padding-left:6px}
  .kpi .k-val{font-weight:800;font-size:clamp(20px,2.4vw,27px);margin:7px 0 2px;
    line-height:1;letter-spacing:-.015em;padding-left:6px;color:var(--teal)}
  .kpi .k-base{font-size:11px;color:var(--ink-soft);font-family:var(--mono);padding-left:6px}

  /* ---- table ---- */
  table{width:100%;border-collapse:collapse;font-size:13px}
  thead th{text-align:right;padding:9px 12px;font-size:11px;letter-spacing:.04em;
    text-transform:uppercase;color:var(--ink-soft);border-bottom:1.5px solid var(--line);
    font-weight:800}
  thead th:first-child{text-align:left}
  thead th.b{color:var(--base)}
  thead th.t{color:var(--coral-d)}
  tbody td{padding:9px 12px;border-bottom:1px solid var(--line-soft);
    font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
  tbody td:first-child{text-align:left;font-family:var(--sans);color:var(--ink)}
  tbody td .formula{display:block;font-family:var(--mono);font-size:10.5px;
    color:var(--ink-soft);margin-top:2px}
  tbody tr.calc td:first-child::before{content:"";display:inline-block;width:6px;
    height:6px;background:var(--coral);border-radius:50%;margin-right:8px;
    vertical-align:middle}
  tbody tr.headline{background:var(--coral-soft)}
  tbody tr.headline td{font-weight:800;border-bottom:1px solid #f5c2cc}
  tbody td.t{color:var(--coral-d);font-weight:700}

  /* ---- charts ---- */
  .chart-stack{display:grid;grid-template-columns:1fr;gap:22px;margin-top:22px}
  .legend{display:flex;gap:20px;justify-content:center;margin:2px 0 8px;
    font-size:12.5px;flex-wrap:wrap}
  .legend span{display:inline-flex;align-items:center;gap:7px;color:var(--ink-soft);
    font-weight:700}
  .legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
  svg{display:block;width:100%;height:auto}
  .chart-note{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:10px;
    line-height:1.45}
  .pie-wrap{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:center}
  @media(max-width:620px){.pie-wrap{grid-template-columns:1fr}}

  @media(prefers-reduced-motion:no-preference){
    rect,path{transition:all .35s cubic-bezier(.4,0,.2,1)}
  }

  /* ===================== PRINT / PDF REPORT ===================== */
  #printReport{display:none}
  @media print{
    @page{margin:14mm}
    body{background:#fff}
    .wrap{display:none !important}
    #printReport{display:block;color:#1A2228;font-size:11px}
    #printReport .p-brand{font-size:22px;font-weight:800;color:#0E5B61;letter-spacing:.01em}
    #printReport .p-sub{font-size:12px;color:#28323A;margin-top:2px}
    #printReport .p-country{font-size:17px;font-weight:800;color:#c41e3a;margin:6px 0 2px}
    #printReport .p-meta{font-size:9.5px;color:#5C6B73;margin-bottom:14px}
    #printReport h3{font-size:11px;font-weight:800;color:#0E5B61;letter-spacing:.06em;
      text-transform:uppercase;margin:14px 0 7px;border-bottom:1px solid #DEE6E4;padding-bottom:4px}
    .p-cols{display:flex;gap:30px}
    .p-cols>div{flex:1}
    .p-row{display:flex;justify-content:space-between;padding:3px 0;font-size:10.5px;
      border-bottom:1px dotted #E6ECEA}
    .p-row b{font-variant-numeric:tabular-nums}
    .p-table{width:100%;border-collapse:collapse;font-size:10.5px;margin-top:4px}
    .p-table th{text-align:right;padding:5px 6px;border-bottom:1.4px solid #28323A;
      font-size:9.5px;text-transform:uppercase;color:#5C6B73}
    .p-table th:first-child{text-align:left}
    .p-table td{padding:5px 6px;border-bottom:1px solid #EEF3F2;text-align:right;
      font-variant-numeric:tabular-nums}
    .p-table td:first-child{text-align:left}
    .p-table tr.hl td{background:#fde8ec;font-weight:800}
    .p-charts{display:flex;gap:18px;margin-top:8px;page-break-inside:avoid}
    .p-charts>div{flex:1;border:1px solid #E6ECEA;border-radius:8px;padding:8px}
    .p-charts h4{font-size:10px;font-weight:800;color:#28323A;text-align:center;margin:0 0 4px}
    .p-foot{margin-top:16px;font-size:8.5px;color:#9AA8AF;border-top:1px solid #E6ECEA;
      padding-top:8px}
  }
  .ctl-label-left{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
  .ctl-info-btn{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--teal);
    background:#fff;color:var(--teal);font-size:11px;font-weight:800;line-height:1;
    padding:0;cursor:pointer;font-family:var(--sans);display:inline-flex;
    align-items:center;justify-content:center;flex-shrink:0;transition:.15s}
  .ctl-info-btn:hover{background:var(--teal-soft)}
  .ctl-info-btn[aria-expanded="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
  .ctl-info-tip{font-size:11.5px;color:var(--ink-soft);background:var(--teal-soft);
    border-radius:8px;padding:8px 10px;margin:-2px 0 8px;line-height:1.45}
  .driver.t input[type=range]{width:100%;margin-top:9px;accent-color:var(--coral)}

