.rabatt-app{
    --paper:#EDEFF4;
    --surface:#FFFFFF;
    --ink:#1B2430;
    --ink-soft:#5B6478;
    --ink-faint:#9BA3B4;
    --accent:#2B4C7E;
    --accent-dark:#1D3660;
    --accent-soft:#E3E9F3;
    --brass:#C08A2E;
    --brass-soft:#F8EEDC;
    --line:#DADEE6;
    --negative:#B3402F;
    --negative-soft:#F6E4E0;
    --radius:8px;
    --shadow: 0 1px 2px rgba(27,36,48,0.03), 0 4px 14px rgba(27,36,48,0.05);
  }
  .rabatt-app, .rabatt-app *{box-sizing:border-box;}
  .rabatt-app{
    background:var(--paper);
    color:var(--ink);
    font-family:'Manrope',system-ui,sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    max-width:960px;
    margin:0 auto;
    padding:32px 20px 64px;
    border-radius:4px;
  }
  .rabatt-app *{outline-color:var(--accent-dark);}

  /* Header */
  .rabatt-app .app-header {
    margin-bottom:28px;
    padding-bottom:22px;
    border-bottom:2px solid var(--ink);
  }
  .rabatt-app .eyebrow {
    font-family:'Space Mono', monospace;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--accent);
    margin:0 0 10px;
    font-weight:600;
  }
  .rabatt-app .app-header h1 {
    font-family:'Newsreader', serif;
    font-style:italic;
    font-weight:600;
    font-size:clamp(28px, 4vw, 40px);
    margin:0 0 8px;
    letter-spacing:-0.005em;
  }
  .rabatt-app .app-header p {
    margin:0;
    color:var(--ink-soft);
    font-size:15.5px;
    max-width:60ch;
  }
  .rabatt-app .header-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    flex-wrap:wrap;
  }
  .rabatt-app .currency-picker {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  .rabatt-app .currency-picker select {
    font-family:'Space Mono', monospace;
    font-size:13px;
    padding:6px 8px;
    border-radius:4px;
    border:1px solid var(--line);
    background:var(--surface);
    color:var(--ink);
  }

  /* Tabs — understrukna textflikar */
  .rabatt-app .tabs {
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-bottom:22px;
    border-bottom:1px solid var(--line);
  }
  .rabatt-app .tab {
    font-family:'Manrope',sans-serif;
    font-size:13.5px;
    font-weight:700;
    padding:10px 14px;
    border-radius:0;
    border:none;
    border-bottom:2.5px solid transparent;
    background:transparent;
    color:var(--ink-faint);
    cursor:pointer;
    transition:all .15s ease;
    margin-bottom:-1px;
  }
  .rabatt-app .tab:hover {color:var(--accent-dark);}
  .rabatt-app .tab.active {
    background:transparent;
    border-bottom-color:var(--brass);
    color:var(--ink);
  }

  /* Panels */
  .rabatt-app .panel {display:none;}
  .rabatt-app .panel.active {display:block; animation:fadeIn .25s ease;}
  @keyframes fadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}

  .rabatt-app .grid2{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:16px;
    align-items:stretch;
  }
  @media (max-width:720px){ .rabatt-app .grid2{grid-template-columns:1fr;} }

  .rabatt-app .card {
    background:var(--surface);
    border-radius:var(--radius);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    padding:22px;
  }
  .rabatt-app .card h3 {
    margin:0 0 16px;
    font-family:'Newsreader', serif;
    font-style:italic;
    font-weight:600;
    font-size:18px;
  }

  .rabatt-app .field {margin-bottom:16px;}
  .rabatt-app .field:last-child {margin-bottom:0;}
  .rabatt-app .field label {
    display:block;
    font-size:12.5px;
    font-weight:600;
    color:var(--ink-soft);
    margin-bottom:6px;
    letter-spacing:0.01em;
  }
  .rabatt-app .field .hint {
    font-size:11.5px;
    color:var(--ink-faint);
    margin-top:5px;
  }
  .rabatt-app .input-wrap {position:relative;}
  .rabatt-app .input-wrap input, .rabatt-app .input-wrap select {
    width:100%;
    font-family:'Space Mono', monospace;
    font-size:15px;
    padding:10px 40px 10px 12px;
    border-radius:4px;
    border:1.5px solid var(--line);
    background:#FCFDFC;
    color:var(--ink);
    transition:border-color .15s ease;
  }
  .rabatt-app .input-wrap input:focus, .rabatt-app .input-wrap select:focus {
    outline:none;
    border-color:var(--accent);
    background:#fff;
  }
  .rabatt-app .input-wrap .suffix {
    position:absolute;
    right:12px; top:50%; transform:translateY(-50%);
    font-size:12.5px;
    color:var(--ink-faint);
    font-family:'Space Mono', monospace;
    pointer-events:none;
  }

  .rabatt-app .radio-row {
    display:flex; gap:8px; flex-wrap:wrap;
  }
  .rabatt-app .radio-row label {
    display:flex; align-items:center; gap:6px;
    font-size:13px; font-weight:500; color:var(--ink);
    background:#FCFDFC; border:1.5px solid var(--line);
    padding:8px 12px; border-radius:4px; cursor:pointer;
    flex:1; justify-content:center;
  }
  .rabatt-app .radio-row input[type=radio] {accent-color:var(--accent);}
  .rabatt-app .radio-row label:has(input:checked) {
    border-color:var(--accent); background:var(--accent-soft); color:var(--accent-dark);
  }

  /* Result card */
  .rabatt-app .result-card {
    background:var(--ink);
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-left:5px solid var(--brass);
  }
  .rabatt-app .result-card .result-label {
    font-family:'Space Mono', monospace;
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    opacity:0.7;
    margin:0 0 6px;
  }
  .rabatt-app .result-card .result-value {
    font-family:'Newsreader', serif;
    font-style:italic;
    font-weight:600;
    font-size:clamp(38px,6vw,52px);
    margin:0 0 10px;
    line-height:1.05;
    letter-spacing:-0.005em;
  }
  .rabatt-app .result-card .result-detail {
    font-size:13.5px;
    opacity:0.85;
    margin:0;
  }
  .rabatt-app .result-card .result-sub {
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,0.2);
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .rabatt-app .result-card .result-sub .row {
    display:flex; justify-content:space-between; font-size:13px;
  }
  .rabatt-app .result-card .result-sub .row b {font-family:'Space Mono', monospace; font-weight:600;}
  .rabatt-app .result-card.negative {
    background:var(--ink);
    border-left-color:var(--negative);
  }
  .rabatt-app .badge {
    display:inline-block;
    font-size:11px; font-weight:700;
    padding:3px 9px; border-radius:2px;
    background:rgba(255,255,255,0.12);
    margin-bottom:10px;
    font-family:'Space Mono', monospace;
    letter-spacing:0.04em;
  }


  /* Chart */
  .rabatt-app .chart-wrap {
    background:var(--surface);
    border-radius:var(--radius);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    padding:20px 20px 8px;
    margin-top:16px;
  }
  .rabatt-app .chart-wrap h4 {
    margin:0 0 12px;
    font-size:13px; font-weight:600; color:var(--ink-soft);
    display:flex; align-items:center; justify-content:space-between;
  }
  .rabatt-app .chart-wrap svg {width:100%; height:auto; display:block;}
  .rabatt-app .legend {display:flex; gap:16px; font-size:12px; color:var(--ink-soft);}
  .rabatt-app .legend span {display:inline-flex; align-items:center; gap:6px;}
  .rabatt-app .legend i {width:12px; height:3px; border-radius:2px; display:inline-block;}

  /* Details / collapsibles */
  .rabatt-app details {
    background:var(--surface);
    border-radius:var(--radius);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    margin-top:12px;
    padding:14px 20px;
  }
  .rabatt-app details summary {
    cursor:pointer;
    font-size:13.5px;
    font-weight:600;
    color:var(--accent-dark);
    list-style:none;
  }
  .rabatt-app details summary::-webkit-details-marker {display:none;}
  .rabatt-app details summary::before {content:"+ "; color:var(--accent);}
  .rabatt-app details[open] summary::before {content:"– ";}
  .rabatt-app details .content {padding-top:12px; font-size:14px; color:var(--ink-soft);}

  .rabatt-app table {width:100%; border-collapse:collapse; font-family:'Space Mono', monospace; font-size:13px;}
  .rabatt-app table th, .rabatt-app table td {text-align:right; padding:7px 10px; border-bottom:1px solid var(--line);}
  .rabatt-app table th:first-child, .rabatt-app table td:first-child {text-align:left;}
  .rabatt-app table th {color:var(--ink-faint); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:0.03em;}
  .rabatt-app table tbody tr:hover {background:var(--paper);}

  .rabatt-app .formula-box {
    font-family:'Space Mono', monospace;
    background:var(--paper);
    border-radius:4px;
    padding:12px 14px;
    font-size:13.5px;
    margin:10px 0;
    color:var(--accent-dark);
  }

  /* compare specific */
  .rabatt-app .compare-cols {display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:720px){ .rabatt-app .compare-cols{grid-template-columns:1fr;} }
  .rabatt-app .winner-flag {
    font-size:11px; font-weight:700; color:var(--accent-dark);
    background:var(--accent-soft); padding:3px 9px; border-radius:999px;
    display:inline-block; margin-bottom:8px; font-family:'Space Mono', monospace;
  }

  .rabatt-app .stat-row {display:flex; gap:12px; margin-top:14px; flex-wrap:wrap;}
  .rabatt-app .stat-pill {
    flex:1; min-width:130px;
    background:var(--paper); border-radius:4px; padding:12px 14px;
  }
  .rabatt-app .stat-pill .label {font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:4px;}
  .rabatt-app .stat-pill .value {font-family:'Space Mono', monospace; font-weight:600; font-size:16px;}

  .rabatt-app .toggle-row {display:flex; gap:8px; margin-bottom:16px;}
  .rabatt-app .toggle-btn {
    flex:1; text-align:center; font-size:12.5px; font-weight:600;
    padding:8px 10px; border-radius:4px; border:1.5px solid var(--line);
    background:#FCFDFC; color:var(--ink-soft); cursor:pointer;
  }
  .rabatt-app .toggle-btn.active {border-color:var(--accent); background:var(--accent-soft); color:var(--accent-dark);}

  .rabatt-app footer.note {
    margin-top:28px;
    font-size:12px;
    color:var(--ink-faint);
    text-align:center;
  }

  /* Dynamiska rader (köptillfällen / transaktioner) */
  .rabatt-app .rows-wrap{
    display:flex; flex-direction:column; gap:10px; margin-bottom:14px;
  }
  .rabatt-app .gav-row, .rabatt-app .tx-row{
    display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap;
    background:#FCFDFC; border:1.5px solid var(--line); border-radius:4px;
    padding:12px 12px 12px 14px; position:relative;
  }
  .rabatt-app .row-index{
    font-family:'Space Mono', monospace; font-size:12px; color:var(--ink-faint);
    min-width:18px; padding-bottom:10px; font-weight:600;
  }
  .rabatt-app .row-field{display:flex; flex-direction:column; gap:5px; flex:1; min-width:100px;}
  .rabatt-app .row-field label{font-size:11px; font-weight:600; color:var(--ink-soft);}
  .rabatt-app .row-field .input-wrap{margin:0;}
  .rabatt-app .tx-type{
    font-family:'Manrope', sans-serif; font-size:13px; font-weight:600;
    padding:9px 10px; border-radius:4px; border:1.5px solid var(--line);
    background:#fff; color:var(--ink); min-width:110px;
  }
  .rabatt-app .row-remove{
    width:30px; height:30px; border-radius:4px; border:1.5px solid var(--line);
    background:#fff; color:var(--negative); font-size:16px; font-weight:700;
    cursor:pointer; flex-shrink:0; line-height:1;
    display:flex; align-items:center; justify-content:center;
  }
  .rabatt-app .row-remove:hover{background:var(--negative-soft); border-color:var(--negative);}

  .rabatt-app .rows-actions{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px;}
  .rabatt-app .btn-secondary{
    font-family:'Manrope', sans-serif; font-size:13px; font-weight:700;
    padding:10px 16px; border-radius:4px; border:1.5px solid var(--accent);
    background:var(--accent-soft); color:var(--accent-dark); cursor:pointer;
  }
  .rabatt-app .btn-secondary:hover{background:var(--accent); color:#fff;}
  .rabatt-app .btn-ghost{
    font-family:'Manrope', sans-serif; font-size:13px; font-weight:700;
    padding:10px 16px; border-radius:4px; border:1.5px solid var(--line);
    background:#fff; color:var(--ink-soft); cursor:pointer;
  }
  .rabatt-app .btn-ghost:hover{border-color:var(--negative); color:var(--negative);}

  .rabatt-app .checkbox-field{
    display:flex; align-items:center; gap:8px; margin-bottom:16px; font-size:13.5px; color:var(--ink);
  }
  .rabatt-app .checkbox-field input{accent-color:var(--accent); width:16px; height:16px;}

  .rabatt-app .warning-box{
    background:var(--negative-soft); border-left:3px solid var(--negative);
    border-radius:4px; padding:10px 14px; font-size:13px; color:var(--ink);
    margin-top:10px;
  }

  /* Range slider (uttagsprocent m.m.) */
  .rabatt-app .range-field .range-head{
    display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px;
  }
  .rabatt-app .range-field .range-value{
    font-family:'Space Mono', monospace; font-weight:600; color:var(--accent-dark); font-size:15px;
  }
  .rabatt-app input[type=range]{
    width:100%;
    -webkit-appearance:none;
    appearance:none;
    height:5px;
    border-radius:999px;
    background:var(--line);
    outline:none;
  }
  .rabatt-app input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    width:18px; height:18px;
    border-radius:50%;
    background:var(--accent);
    border:3px solid #fff;
    box-shadow:0 0 0 1px var(--accent);
    cursor:pointer;
  }
  .rabatt-app input[type=range]::-moz-range-thumb{
    width:18px; height:18px;
    border-radius:50%;
    background:var(--accent);
    border:3px solid #fff;
    box-shadow:0 0 0 1px var(--accent);
    cursor:pointer;
  }

  /* Notisruta / callout */
  .rabatt-app .callout{
    background:var(--brass-soft);
    border-left:3px solid var(--brass);
    border-radius:4px;
    padding:12px 14px;
    font-size:13.5px;
    color:var(--ink);
    margin-top:14px;
  }
  .rabatt-app .callout b{color:var(--accent-dark);}

  .rabatt-app .mini-table{width:100%; margin-top:10px;}
  .rabatt-app .mini-table th, .rabatt-app .mini-table td{padding:6px 8px;}
  .rabatt-app .mini-table tr.highlight td{background:var(--accent-soft); font-weight:600; color:var(--accent-dark);}