:root {
    --bg: #F5F3EF;
    --bg2: #FFFFFF;
    --bg3: #EDE9E3;
    --bg4: #E4DFD8;
    --border: #D6D1C9;
    --border2: #C4BEB5;
    --ink: #1A1A1A;
    --ink2: #4A4740;
    --ink3: #8A857C;
    --laeger:   #1A6FD4;
    --laeger-bg: rgba(26,111,212,0.09);
    --udd:      #7C3AED;
    --udd-bg:   rgba(124,58,237,0.08);
    --klinisk:  #0F8C60;
    --klinisk-bg: rgba(15,140,96,0.08);
    --admin:    #C27803;
    --admin-bg: rgba(194,120,3,0.6);
    --assist:   #DC2626;
    --assist-bg: rgba(220,38,38,0.07);
    --basis:    #1A1A1A;
    --green: #0F8C60;
    --red:   #DC2626;
    --gold:  #C27803;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{font-family:'Syne',sans-serif;background:var(--bg);color:var(--ink);font-size:13px;min-height:100vh;}
  
  /* ── LAYOUT ── */
  .app{display:grid;grid-template-columns:320px 1fr;height:100vh;}
  .sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:0;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;}
  .main{padding:28px 32px;overflow-y:auto;}
  
  /* ── SIDEBAR ── */
  .sidebar-header{padding:24px 24px 16px;border-bottom:1px solid var(--border);}
  .sidebar-title{font-family:'DM Serif Display',serif;font-size:20px;line-height:1.2;color:var(--ink);}
  .sidebar-sub{font-size:11px;color:var(--ink3);margin-top:5px;font-family:'DM Mono',monospace;}
  
  .param-section{padding:18px 24px;border-bottom:1px solid var(--border);}
  .param-section-title{font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink3);margin-bottom:14px;}
  
  .param-row{margin-bottom:14px;}
  .param-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
  .param-name{font-size:12px;color:var(--ink2);display:flex;align-items:center;gap:8px;}
  .param-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .param-val{font-family:'DM Mono',monospace;font-size:13px;font-weight:500;color:var(--ink);}
  .param-val span{font-size:10px;color:var(--ink3);margin-left:2px;}
  
  .slider-wrap{position:relative;}
  input[type=range]{
    width:100%;height:4px;
    -webkit-appearance:none;appearance:none;
    background:var(--border2);border-radius:2px;cursor:pointer;
    outline:none;
  }
  input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;appearance:none;
    width:14px;height:14px;border-radius:50%;
    background:var(--ink);border:2px solid var(--bg);
    cursor:pointer;transition:transform 0.15s;
  }
  input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.2);}
  
  .toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .toggle-label{font-size:12px;color:var(--ink2);}
  .toggle{width:36px;height:20px;background:var(--border2);border-radius:10px;position:relative;cursor:pointer;transition:background 0.2s;}
  .toggle.on{background:var(--green);}
  .toggle::after{content:'';position:absolute;width:14px;height:14px;background:white;border-radius:50%;top:3px;left:3px;transition:transform 0.2s;}
  .toggle.on::after{transform:translateX(16px);}
  
  .preset-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;}
  .preset-btn{padding:5px 10px;font-family:'DM Mono',monospace;font-size:10px;border:1px solid var(--border2);background:transparent;color:var(--ink2);cursor:pointer;border-radius:2px;transition:all 0.15s;}
  .preset-btn:hover{border-color:var(--ink);color:var(--ink);}
  .preset-btn.active{background:var(--ink);color:var(--bg);}
  
  /* ── TOTALS TICKER ── */
  .totals-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:28px;position:sticky;top:0;z-index:100;}
  .total-cell{background:var(--bg2);padding:16px 18px;}
  .total-lbl{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;font-family:'DM Mono',monospace;}
  .total-val{font-family:'DM Serif Display',serif;font-size:26px;line-height:1;transition:color 0.3s;}
  .total-delta{font-family:'DM Mono',monospace;font-size:11px;margin-top:5px;transition:color 0.3s;}
  
  /* ── SECTION ── */
  .section{margin-bottom:32px;}
  .section-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border);}
  .section-num{font-family:'DM Serif Display',serif;font-style:italic;font-size:14px;color:var(--ink3);}
  .section-title{font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink2);}
  
  /* ── GRID CARDS ── */
  .viz-grid{display:grid;gap:20px;}
  .viz-grid.col2{grid-template-columns:1fr 1fr;}
  .viz-grid.col3{grid-template-columns:1fr 1fr 1fr;}
  .viz-grid.col4{grid-template-columns:repeat(4,1fr);}
  
  .card{background:var(--bg2);border:1px solid var(--border);padding:20px;}
  .card-title{font-size:10px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink2);margin-bottom:3px;}
  .card-sub{font-size:11px;color:var(--ink3);margin-bottom:16px;font-family:'DM Mono',monospace;}
  
  /* ── BAR CHART ── */
  .bar-chart{display:flex;flex-direction:column;gap:7px;}
  .bc-row{display:flex;align-items:center;gap:8px;}
  .bc-lbl{width:68px;font-size:11px;color:var(--ink2);text-align:right;flex-shrink:0;font-family:'DM Mono',monospace;}
  .bc-track{flex:1;height:20px;background:var(--bg3);position:relative;overflow:hidden;}
  .bc-fill{height:100%;position:absolute;left:0;top:0;transition:width 0.4s cubic-bezier(0.34,1.56,0.64,1);}
  .bc-val{width:72px;font-size:11px;color:var(--ink2);text-align:right;flex-shrink:0;font-family:'DM Mono',monospace;}
  
  /* ── GROUPED BAR ── */
  .gb-chart{display:flex;flex-direction:column;gap:10px;}
  .gb-row{display:flex;align-items:center;gap:8px;}
  .gb-lbl{width:55px;font-size:11px;color:var(--ink2);text-align:right;flex-shrink:0;font-family:'DM Mono',monospace;}
  .gb-group{flex:1;display:flex;flex-direction:column;gap:2px;}
  .gb-seg{display:flex;align-items:center;gap:6px;}
  .gb-track{flex:1;height:12px;background:var(--bg3);position:relative;overflow:hidden;}
  .gb-fill{height:100%;position:absolute;left:0;top:0;transition:width 0.4s cubic-bezier(0.34,1.56,0.64,1);opacity:0.85;}
  .gb-sval{width:58px;font-size:10px;color:var(--ink3);text-align:right;flex-shrink:0;font-family:'DM Mono',monospace;}
  
  /* ── DIVERGING BAR ── */
  .div-chart{display:flex;flex-direction:column;gap:7px;}
  .div-row{display:flex;align-items:center;gap:8px;}
  .div-lbl{width:55px;font-size:11px;color:var(--ink2);text-align:right;font-family:'DM Mono',monospace;flex-shrink:0;}
  .div-track{flex:1;height:22px;position:relative;background:var(--bg3);}
  .div-zero{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border2);}
  .div-bar{position:absolute;top:3px;height:16px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);}
  .div-val{width:70px;font-size:11px;text-align:right;font-family:'DM Mono',monospace;flex-shrink:0;}
  
  /* ── SCATTER ── */
  canvas{display:block;}
  
  /* ── DONUT ── */
  .donut-wrap{display:flex;gap:16px;align-items:center;}
  .donut-legend{display:flex;flex-direction:column;gap:8px;}
  .legend-item{display:flex;align-items:center;gap:8px;font-size:11px;}
  .legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .legend-val{font-family:'DM Mono',monospace;font-size:11px;}
  
  /* ── DISTRIBUTION BARS ── */
  .dist-chart{display:flex;flex-direction:column;gap:4px;}
  .dist-row{display:flex;align-items:center;gap:6px;}
  .dist-lbl{width:32px;font-size:10px;color:var(--ink3);text-align:right;font-family:'DM Mono',monospace;flex-shrink:0;}
  .dist-track{flex:1;height:14px;background:var(--bg3);position:relative;overflow:hidden;}
  .dist-fill-cur{height:100%;position:absolute;left:0;top:0;background:var(--border2);transition:width 0.4s;}
  .dist-fill-new{height:7px;position:absolute;left:0;top:0;transition:width 0.4s;}
  .dist-count{width:28px;font-size:10px;color:var(--ink3);font-family:'DM Mono',monospace;flex-shrink:0;}
  
  /* ── HEATMAP ── */
  .heat-table{width:100%;border-collapse:collapse;}
  .heat-table th{font-size:10px;color:var(--ink3);font-weight:400;padding:6px 8px;text-align:right;font-family:'DM Mono',monospace;border-bottom:1px solid var(--border);}
  .heat-table th:first-child{text-align:left;}
  .heat-table td{padding:7px 8px;text-align:right;font-size:11px;font-family:'DM Mono',monospace;border-bottom:1px solid var(--border);}
  .heat-table td:first-child{text-align:left;color:var(--ink2);}
  .heat-cell{display:inline-block;padding:2px 6px;border-radius:1px;min-width:60px;text-align:right;}
  
  /* ── CLINIC TABLE ── */
  .clinic-table{width:100%;border-collapse:collapse;font-family:'DM Mono',monospace;font-size:11px;}
  .clinic-table th{font-size:10px;color:var(--ink3);font-weight:400;padding:8px 10px;text-align:right;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);cursor:pointer;}
  .clinic-table th:first-child{text-align:left;}
  .clinic-table th:hover{color:var(--ink);}
  .clinic-table td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--border);}
  .clinic-table td:first-child{text-align:left;color:var(--ink2);}
  .clinic-table tr:hover td{background:var(--bg3);}
  .table-wrap{max-height:360px;overflow-y:auto;border:1px solid var(--border);}
  
  /* ── WATERFALL ── */
  .wf-chart{display:flex;align-items:flex-end;gap:6px;height:160px;}
  .wf-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;}
  .wf-bar-wrap{flex:1;display:flex;align-items:flex-end;width:100%;}
  .wf-bar{width:100%;transition:height 0.4s cubic-bezier(0.34,1.56,0.64,1);}
  .wf-lbl{font-size:9px;color:var(--ink3);text-align:center;font-family:'DM Mono',monospace;line-height:1.3;}
  .wf-val{font-size:9px;font-family:'DM Mono',monospace;text-align:center;}
  
  /* ── IMPACT PILLS ── */
  .impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  .impact-card{background:var(--bg3);border:1px solid var(--border);padding:14px;text-align:center;}
  .impact-val{font-family:'DM Serif Display',serif;font-size:22px;line-height:1;}
  .impact-lbl{font-size:10px;color:var(--ink3);margin-top:5px;font-family:'DM Mono',monospace;}
  
  /* ── SCROLL FIX ── */
  .sidebar::-webkit-scrollbar{width:4px;}
  .sidebar::-webkit-scrollbar-track{background:transparent;}
  .sidebar::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
  .table-wrap::-webkit-scrollbar{width:4px;}
  .table-wrap::-webkit-scrollbar-track{background:transparent;}
  .table-wrap::-webkit-scrollbar-thumb{background:var(--border2);}
  
  /* Animate in */
  @keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
  .card{animation:fadeUp 0.4s ease both;}
  .card:nth-child(1){animation-delay:0.0s;}
  .card:nth-child(2){animation-delay:0.05s;}
  .card:nth-child(3){animation-delay:0.1s;}
  .card:nth-child(4){animation-delay:0.15s;}
  
  @media(max-width:1100px){
    .app{grid-template-columns:1fr;}
    .sidebar{position:relative;height:auto;}
    .viz-grid.col2,.viz-grid.col3,.viz-grid.col4{grid-template-columns:1fr;}
  }