/* SmartKalk økonomiportal v7 */
:root{--bg:#f4f7fb;--surface:#fff;--surface-2:#f9fbff;--text:#122033;--muted:#66768b;--border:#dce5ef;--primary:#0f766e;--primary-2:#115e59;--gold-bg:#fff7e6;--danger:#b42318;--shadow:0 20px 60px rgba(18,32,51,.09);--radius:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:radial-gradient(circle at top left,rgba(15,118,110,.12),transparent 28rem),radial-gradient(circle at 90% 5%,rgba(37,99,235,.10),transparent 24rem),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}.topbar{position:sticky;top:0;z-index:20;min-height:72px;padding:14px clamp(18px,4vw,58px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,229,239,.9)}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.02em;font-size:1.16rem;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:14px;background:var(--primary);color:#fff}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav-link{border:0;background:transparent;color:var(--muted);font-weight:850;border-radius:999px;padding:10px 13px;cursor:pointer}.nav-link:hover,.nav-link.active{color:var(--primary-2);background:#e7f7f3}main{width:min(1440px,calc(100% - 32px));margin:0 auto}.page{display:none}.page.active-page{display:block}.hero{display:grid;grid-template-columns:1fr;place-items:center;text-align:center;padding:68px 0 26px}.hero-text{padding:clamp(22px,3vw,36px)}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.09em;color:var(--primary);font-size:.78rem;font-weight:900}h1,h2,h3,p{text-wrap:pretty}h1{margin:0;max-width:900px;font-size:clamp(2.45rem,7vw,5.6rem);line-height:.93;letter-spacing:-.075em}h2{margin:0;font-size:clamp(1.45rem,3vw,2.25rem);line-height:1.05;letter-spacing:-.04em}.lead{max-width:800px;color:var(--muted);font-size:clamp(1.05rem,2vw,1.23rem);line-height:1.62}.fineprint{color:var(--muted);font-size:.92rem;line-height:1.55}.hero-actions,.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}.centered-tabs{justify-content:center}.btn{border:0;border-radius:999px;padding:13px 19px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-weight:850;cursor:pointer}.btn.primary{color:#fff;background:var(--primary)}.btn.secondary{color:var(--text);background:#e7eef7}.btn.ghost{color:var(--primary-2);background:#e7f7f3}.btn.danger{color:#fff;background:var(--danger)}.panel,.legal{border:1px solid var(--border);background:rgba(255,255,255,.94);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(20px,3vw,32px)}.ad-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 34px}.ad-slot{display:grid;place-items:center;min-height:96px;border:1px dashed #a7b5c6;border-radius:24px;color:var(--muted);background:rgba(255,255,255,.65);font-weight:800;text-align:center;padding:18px}.section{margin:34px 0}.cards-grid,.premium-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.center-cards{max-width:980px;margin-left:auto;margin-right:auto}.feature-list{margin:0;padding-left:22px;color:var(--muted);line-height:1.75;font-weight:750}.page-head{padding:54px 0 18px;max-width:900px}.calculator-layout{display:grid;grid-template-columns:minmax(580px,.92fr) minmax(520px,1.08fr);gap:22px;align-items:start}.result-panel{position:sticky;top:92px}.section-title{margin-bottom:22px}.section-title p{color:var(--muted);line-height:1.55}.subtabs{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 22px}.subtabs.nested{margin-top:0}.subtab{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:999px;padding:12px 16px;cursor:pointer;font-weight:900}.subtab:hover,.subtab.active{color:#fff;background:var(--primary);border-color:var(--primary)}.premium-tab{background:var(--gold-bg);color:#7a4a00;border-color:#edcc7a}.tab-panel{display:none}.tab-panel.active-tab{display:block}.form{display:grid;gap:18px}fieldset{margin:0;padding:18px;border:1px solid var(--border);border-radius:22px;background:var(--surface-2);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}legend{padding:0 8px;font-weight:900}label,.wide-label{display:grid;gap:7px;color:var(--text);font-weight:760;font-size:.94rem}input{width:100%;min-height:44px;padding:12px 13px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);font-weight:650}.hidden{display:none!important}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.kpi,.report-item{padding:15px;border:1px solid var(--border);background:var(--surface-2);border-radius:20px}.kpi span,.report-item span{display:block;color:var(--muted);font-size:.84rem;line-height:1.35}.kpi strong,.report-item strong{display:block;margin-top:7px;font-size:clamp(1rem,1.7vw,1.36rem);letter-spacing:-.03em}.kpi.full{grid-column:span 3;background:#ecfdf5;border-color:#b7ead8}.table-wrap,.budget-table-wrap{overflow-x:auto;margin-top:18px;border:1px solid var(--border);border-radius:18px}table{width:100%;min-width:680px;border-collapse:collapse;background:#fff}th,td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--border)}tr:last-child td,tr:last-child th{border-bottom:0}th{color:var(--muted);font-size:.86rem;background:#f8fbff}td:last-child,th:last-child{text-align:right;font-variant-numeric:tabular-nums}.checklist,.saved-list{color:var(--muted);line-height:1.55}.checklist{padding-left:0;list-style:none;margin:0}.checklist li{position:relative;margin:12px 0;padding-left:30px}.checklist li::before{content:"✓";position:absolute;left:0;top:-1px;color:var(--primary);font-weight:950}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.premium-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.6fr);gap:20px;align-items:center;margin-bottom:22px;background:linear-gradient(135deg,#fff,#fff7e6);border-color:#edcc7a}.premium-price{border:1px solid #edcc7a;background:#fffaf0;border-radius:22px;padding:18px}.premium-price span{color:var(--muted);display:block}.premium-price strong{display:block;font-size:2.6rem;letter-spacing:-.05em;margin:6px 0 14px}.premium-locked-area{position:relative}body:not(.premium-unlocked) .premium-locked-area{filter:blur(4px);user-select:none;pointer-events:none}body:not(.premium-unlocked) #tab-selvstendig::after{content:"Næring låst – kjøp tilgang for 299 kr";position:sticky;bottom:24px;display:grid;place-items:center;min-height:62px;margin:22px auto 0;width:min(520px,calc(100% - 24px));border-radius:20px;background:rgba(255,247,230,.98);color:#6b3f00;border:1px solid #edcc7a;font-weight:950;box-shadow:var(--shadow);cursor:pointer}.saved-item{border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:12px;background:var(--surface-2)}.modal{position:fixed;inset:0;z-index:80;background:rgba(18,32,51,.52);display:grid;place-items:center;padding:20px}.modal-card{width:min(520px,100%);border-radius:28px;background:#fff;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.25);position:relative}.modal-close{position:absolute;right:16px;top:14px;border:0;background:#eef3f8;border-radius:999px;width:38px;height:38px;font-size:1.5rem;cursor:pointer}.price.small{font-size:2.4rem;font-weight:950;letter-spacing:-.06em;margin:10px 0}.footer{display:flex;justify-content:space-between;gap:18px;padding:34px clamp(18px,4vw,58px);border-top:1px solid var(--border);color:var(--muted)}.salary-options{display:grid;gap:10px}.salary-option{width:100%;border:1px solid var(--border);background:#e8f1f7;border-radius:18px;padding:14px 16px;display:flex;justify-content:space-between;gap:14px;align-items:center;cursor:pointer;text-align:left}.salary-option:hover{background:#dcebf3;border-color:rgba(15,118,110,.45)}.salary-option span{font-weight:900;color:var(--text)}.salary-option small{color:var(--muted);font-weight:750;white-space:nowrap}
@media(max-width:1220px){main{width:min(100% - 24px,1220px)}.calculator-layout{grid-template-columns:1fr}.result-panel{position:static}}@media(max-width:960px){.topbar{align-items:flex-start;flex-direction:column}.cards-grid,.premium-grid,.premium-hero,.ad-row{grid-template-columns:1fr}fieldset{grid-template-columns:1fr}}@media(max-width:680px){main{width:min(100% - 22px,1220px)}.kpi-grid,.report-grid{grid-template-columns:1fr}.kpi.full{grid-column:auto}table{min-width:620px}}@media print{.topbar,.hero,.ad-row,.form-actions,.premium-hero,.footer{display:none!important}body{background:white}main{width:100%}.panel,.legal{box-shadow:none;border:1px solid #ddd}.calculator-layout,.premium-grid{display:block}body:not(.premium-unlocked) .premium-locked-area{filter:none}body:not(.premium-unlocked) #tab-selvstendig::after{display:none}.result-panel{position:static}}


/* v11: Smalere og mer lesbare tabeller */
.table-wrap {
  width: 100%;
  overflow-x: auto;
}

table {
  min-width: 0;
  table-layout: fixed;
}

th, td {
  vertical-align: top;
  white-space: normal;
  word-break: normal;
}

th:first-child,
td:first-child {
  width: 42%;
}

th:nth-child(2),
td:nth-child(2) {
  width: 23%;
}

th:nth-child(3),
td:nth-child(3) {
  width: 13%;
}

th:nth-child(4),
td:nth-child(4) {
  width: 22%;
}

td:nth-child(2),
td:nth-child(3),
td:nth-child(4),
th:nth-child(2),
th:nth-child(3),
th:nth-child(4) {
  text-align: right;
  white-space: nowrap;
}

th {
  line-height: 1.25;
}

@media (max-width: 680px) {
  table {
    min-width: 520px;
  }

  th, td {
    padding: 10px 9px;
    font-size: .9rem;
  }

  th:first-child,
  td:first-child {
    width: 38%;
  }

  th:nth-child(2),
  td:nth-child(2) {
    width: 24%;
  }

  th:nth-child(3),
  td:nth-child(3) {
    width: 14%;
  }

  th:nth-child(4),
  td:nth-child(4) {
    width: 24%;
  }
}


/* v12: Egen kompakt layout for budsjett-tabellen */
.budget-table {
  min-width: 0;
  table-layout: fixed;
}

.budget-table th,
.budget-table td {
  padding: 10px 10px;
}

.budget-table th:first-child,
.budget-table td:first-child {
  width: 48%;
}

.budget-table th:nth-child(2),
.budget-table td:nth-child(2) {
  width: 18%;
  text-align: left;
  color: var(--muted);
  white-space: nowrap;
}

.budget-table th:nth-child(3),
.budget-table td:nth-child(3) {
  width: 34%;
  text-align: right;
}

.budget-table input {
  min-width: 0;
  max-width: 150px;
  text-align: right;
  padding: 10px 11px;
}

@media (max-width: 680px) {
  .budget-table {
    min-width: 0;
  }

  .budget-table th,
  .budget-table td {
    padding: 8px 7px;
    font-size: .88rem;
  }

  .budget-table th:first-child,
  .budget-table td:first-child {
    width: 45%;
  }

  .budget-table th:nth-child(2),
  .budget-table td:nth-child(2) {
    width: 18%;
  }

  .budget-table th:nth-child(3),
  .budget-table td:nth-child(3) {
    width: 37%;
  }

  .budget-table input {
    max-width: 125px;
    padding: 9px 8px;
  }
}


/* v14: Stående annonser på hver side av åpningssiden */
#hjem {
  position: relative;
}

.home-side-ad {
  position: absolute;
  top: 150px;
  width: 160px;
  min-height: 560px;
  border: 1px dashed #a7b5c6;
  border-radius: 24px;
  color: var(--muted);
  background: rgba(255,255,255,.68);
  font-weight: 800;
  text-align: center;
  padding: 18px;
  display: grid;
  place-items: center;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

.home-side-ad-left {
  left: 0;
}

.home-side-ad-right {
  right: 0;
}

@media (max-width: 1320px) {
  .home-side-ad {
    display: none;
  }
}


/* v15-narrow: Smalere innhold slik at sideannonser får bedre plass */
main {
  width: min(1120px, calc(100% - 32px));
}

.hero-text {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}

.center-cards {
  max-width: 860px;
}

.cards-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.calculator-layout {
  grid-template-columns: minmax(470px, 0.95fr) minmax(440px, 1.05fr);
}

.panel,
.legal {
  padding: clamp(18px, 2.5vw, 28px);
}

.home-side-ad {
  width: 150px;
  min-height: 540px;
  top: 130px;
}

.home-side-ad-left {
  left: max(16px, calc((100vw - 1440px) / 2 + 12px));
}

.home-side-ad-right {
  right: max(16px, calc((100vw - 1440px) / 2 + 12px));
}

@media (min-width: 1321px) and (max-width: 1460px) {
  main {
    width: min(1040px, calc(100% - 360px));
  }

  .home-side-ad {
    display: grid;
    width: 140px;
  }
}

@media (max-width: 1320px) {
  main {
    width: min(1120px, calc(100% - 24px));
  }
}

@media (max-width: 1220px) {
  .calculator-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  main {
    width: min(100% - 22px, 1120px);
  }

  .cards-grid {
    grid-template-columns: 1fr;
  }
}


/* v15-sideads: Faktiske stående annonser på sidene av åpningssiden */
#hjem {
  position: relative;
  min-height: 760px;
}

.home-side-ad {
  position: fixed;
  top: 135px;
  width: 150px;
  height: 560px;
  border: 1px dashed #a7b5c6;
  border-radius: 24px;
  color: var(--muted);
  background: rgba(255,255,255,.78);
  font-weight: 800;
  text-align: center;
  padding: 18px;
  display: grid;
  place-items: center;
  z-index: 4;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  box-shadow: 0 12px 36px rgba(18,32,51,.06);
}

.home-side-ad-left {
  left: max(16px, calc((100vw - 1450px) / 2 + 16px));
}

.home-side-ad-right {
  right: max(16px, calc((100vw - 1450px) / 2 + 16px));
}

/* Gi midtinnholdet luft når sideannonser vises */
@media (min-width: 1321px) {
  #hjem .hero,
  #hjem .center-cards {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 1320px) {
  .home-side-ad {
    display: none !important;
  }
}


/* v15-sideads-allpages: Sideannonser også på kalkulatorer og budsjett */
#kalkulatorer,
#budsjett {
  position: relative;
  min-height: 760px;
}

.page-side-ad {
  position: fixed;
  top: 135px;
  width: 150px;
  height: 560px;
  border: 1px dashed #a7b5c6;
  border-radius: 24px;
  color: var(--muted);
  background: rgba(255,255,255,.78);
  font-weight: 800;
  text-align: center;
  padding: 18px;
  display: grid;
  place-items: center;
  z-index: 4;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  box-shadow: 0 12px 36px rgba(18,32,51,.06);
}

.page-side-ad-left {
  left: max(16px, calc((100vw - 1450px) / 2 + 16px));
}

.page-side-ad-right {
  right: max(16px, calc((100vw - 1450px) / 2 + 16px));
}

/* Vis sideannonser bare på aktiv hovedside */
.page:not(.active-page) .page-side-ad,
.page:not(.active-page) .home-side-ad {
  display: none !important;
}

@media (min-width: 1321px) {
  #kalkulatorer .page-head,
  #kalkulatorer > .subtabs,
  #kalkulatorer > .tab-panel,
  #budsjett .page-head,
  #budsjett > .calculator-layout {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 1320px) {
  .page-side-ad {
    display: none !important;
  }
}

/* v16: Faktura-fane for næring */
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
}

.checkbox-label input {
  width: auto;
  min-height: auto;
}

.invoice-lines-fieldset {
  grid-template-columns: 1fr;
}

.invoice-lines-header,
.invoice-line {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 90px 130px 90px 82px;
  gap: 10px;
  align-items: center;
}

.invoice-lines-header {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 900;
  padding: 0 2px;
}

.invoice-line input {
  min-width: 0;
}

.invoice-line .btn {
  min-height: 40px;
  padding: 10px 12px;
}

.invoice-document {
  border: 1px solid var(--border);
  border-radius: 22px;
  background: #fff;
  padding: clamp(18px, 2.4vw, 28px);
}

.invoice-top {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.invoice-top h3 {
  margin: 0 0 12px;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  letter-spacing: -.05em;
}

.invoice-meta {
  min-width: 190px;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 14px;
  background: var(--surface-2);
}

.invoice-meta p,
.invoice-recipient {
  margin: 0 0 10px;
}

.invoice-meta p:last-child {
  margin-bottom: 0;
}

.invoice-meta span,
.invoice-recipient span {
  display: block;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 850;
}

.invoice-recipient {
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #f8fbff;
}

.invoice-table-wrap table {
  min-width: 760px;
}

.invoice-table th:first-child,
.invoice-table td:first-child {
  width: 30%;
}

.invoice-table th,
.invoice-table td {
  font-size: .9rem;
}

@media (max-width: 760px) {
  .invoice-lines-header {
    display: none;
  }

  .invoice-line {
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 12px;
    background: #fff;
  }

  .invoice-line .invLineDesc,
  .invoice-line .invLineDelete {
    grid-column: 1 / -1;
  }

  .invoice-top {
    display: block;
  }
}

@media print {
  body.print-invoice .topbar,
  body.print-invoice .footer,
  body.print-invoice .hero,
  body.print-invoice .ad-row,
  body.print-invoice .home-side-ad,
  body.print-invoice .page-side-ad,
  body.print-invoice .page-head,
  body.print-invoice .subtabs,
  body.print-invoice .premium-hero,
  body.print-invoice .input-panel,
  body.print-invoice .premium-grid,
  body.print-invoice .legal,
  body.print-invoice .section-title {
    display: none !important;
  }

  body.print-invoice main,
  body.print-invoice .page,
  body.print-invoice .tab-panel,
  body.print-invoice .premium-locked-area,
  body.print-invoice .calculator-layout,
  body.print-invoice .result-panel,
  body.print-invoice .invoice-preview-panel {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    position: static !important;
    filter: none !important;
  }

  body.print-invoice .page:not(#kalkulatorer),
  body.print-invoice #tab-lonnsmottaker,
  body.print-invoice #tab-yrkeslonn,
  body.print-invoice #tab-bizskatt,
  body.print-invoice #tab-timespris,
  body.print-invoice #tab-strom,
  body.print-invoice #tab-lan {
    display: none !important;
  }

  body.print-invoice .invoice-document {
    border: 0;
    border-radius: 0;
    padding: 0;
  }

  body.print-invoice .invoice-table-wrap table {
    min-width: 0;
  }
}

/* v17: Fjern annonser og gi bedre plass på PC/mobil */
.home-side-ad,
.page-side-ad,
.ad-row,
.ad-slot {
  display: none !important;
}

main {
  width: min(1240px, calc(100% - 32px));
}

#hjem,
#kalkulatorer {
  min-height: auto;
}

#hjem .hero,
#hjem .center-cards,
#kalkulatorer .page-head,
#kalkulatorer > .subtabs,
#kalkulatorer > .tab-panel,
#tab-budget > .calculator-layout,
#tab-budget .inner-page-head {
  max-width: none;
}

.center-cards {
  max-width: 1080px;
}

.page-head.inner-page-head {
  padding-top: 14px;
}

#kalkulatorer.private-mode .business-tab-button {
  display: none;
}

#kalkulatorer.business-mode .private-tabs .subtab:not(.business-tab-button) {
  display: none;
}

#kalkulatorer.business-mode .business-tab-button {
  display: inline-flex;
}

.invoice-layout {
  grid-template-columns: minmax(520px, .95fr) minmax(560px, 1.05fr);
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.invoice-preview-panel {
  min-width: 0;
}

.budget-actions {
  margin-top: 18px;
}

@media (max-width: 1220px) {
  .invoice-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 960px) {
  main {
    width: min(100% - 22px, 1240px);
  }

  .topbar {
    flex-direction: row;
    align-items: center;
  }
}

@media print {
  .home-side-ad,
  .page-side-ad,
  .ad-row,
  .ad-slot {
    display: none !important;
  }

  body.print-invoice #tab-lonnskatt,
  body.print-invoice #tab-yrkeslonn,
  body.print-invoice #tab-budget,
  body.print-invoice #tab-strom,
  body.print-invoice #tab-lan {
    display: none !important;
  }
}


/* v18: Ryddigere næring og bedre utskrift */
.buy-note {
  margin: 8px 0 16px;
}

body:not(.premium-unlocked) #tab-selvstendig::after {
  content: "Næring låst – kjøp tilgang for 299 kr";
}

#tab-selvstendig > .subtabs.nested {
  margin-top: 8px;
}

.invoice-layout {
  grid-template-columns: minmax(470px, .92fr) minmax(680px, 1.18fr);
  max-width: 1320px;
  align-items: start;
}

.invoice-preview-panel {
  overflow: visible;
}

.invoice-document {
  padding: 22px;
}

.invoice-company-card {
  display: grid;
  gap: 6px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface-2);
  line-height: 1.45;
}

.invoice-company-card strong {
  font-size: 1.06rem;
}

.invoice-company-card span {
  color: var(--text);
}

.invoice-meta {
  min-width: 220px;
  padding: 16px;
  background: #f7f9fc;
}

.invoice-meta-row {
  display: grid;
  gap: 4px;
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
}

.invoice-meta-row:last-child {
  border-bottom: 0;
}

.invoice-recipient {
  margin-bottom: 18px;
}

.invoice-table-wrap {
  overflow-x: visible;
}

.invoice-table-wrap table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}

.invoice-table th:first-child,
.invoice-table td:first-child {
  width: 42%;
}

.invoice-table th:nth-child(2),
.invoice-table td:nth-child(2) {
  width: 11%;
}

.invoice-table th:nth-child(3),
.invoice-table td:nth-child(3),
.invoice-table th:nth-child(4),
.invoice-table td:nth-child(4),
.invoice-table th:nth-child(5),
.invoice-table td:nth-child(5) {
  width: 15.66%;
}

.invoice-table th,
.invoice-table td {
  font-size: .92rem;
}

.invoice-table td:nth-child(n+2),
.invoice-table th:nth-child(n+2) {
  text-align: right;
  white-space: nowrap;
}

.invoice-totals {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  margin-left: auto;
  width: min(100%, 320px);
}

.invoice-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
}

.invoice-totals > div:last-child {
  background: #eef7f5;
  border-color: rgba(15,118,110,.28);
}

@media (max-width: 1220px) {
  .invoice-layout {
    grid-template-columns: 1fr;
  }
}

@media print {
  body.print-budget .topbar,
  body.print-budget .footer,
  body.print-budget .legal,
  body.print-budget #kalkulatorer > .page-head,
  body.print-budget #kalkulatorer > .subtabs,
  body.print-budget #tab-budget > .inner-page-head,
  body.print-budget #tab-budget .section-title .eyebrow,
  body.print-budget #tab-budget .budget-actions,
  body.print-budget #tab-budget #budgetSaveStatus,
  body.print-budget .page:not(#kalkulatorer),
  body.print-budget #tab-lonnskatt,
  body.print-budget #tab-yrkeslonn,
  body.print-budget #tab-strom,
  body.print-budget #tab-lan,
  body.print-budget #tab-selvstendig {
    display: none !important;
  }

  body.print-budget,
  body.print-budget body,
  body.print-budget main {
    background: #fff !important;
  }

  body.print-budget main,
  body.print-budget #kalkulatorer,
  body.print-budget #tab-budget,
  body.print-budget #tab-budget .calculator-layout {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.print-budget #tab-budget .panel {
    box-shadow: none !important;
    border: 1px solid #d9dee7 !important;
    border-radius: 0 !important;
    padding: 12px !important;
    margin: 0 0 10px !important;
    break-inside: avoid;
  }

  body.print-budget #tab-budget table,
  body.print-budget #tab-budget .budget-table {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.print-budget #tab-budget .budget-table th,
  body.print-budget #tab-budget .budget-table td {
    font-size: 10px !important;
    padding: 6px 7px !important;
  }

  body.print-budget #tab-budget .budget-table input {
    border: 0 !important;
    padding: 0 !important;
    max-width: 90px !important;
    font-size: 10px !important;
    background: transparent !important;
  }

  body.print-budget #tab-budget .kpi-grid {
    gap: 6px !important;
  }

  body.print-budget #tab-budget .kpi {
    padding: 10px !important;
  }

  body.print-budget #tab-budget .kpi span {
    font-size: 10px !important;
  }

  body.print-budget #tab-budget .kpi strong {
    font-size: 16px !important;
  }

  body.print-biz .topbar,
  body.print-biz .footer,
  body.print-biz .legal,
  body.print-biz #kalkulatorer > .page-head,
  body.print-biz #kalkulatorer > .subtabs,
  body.print-biz #tab-selvstendig > .subtabs.nested,
  body.print-biz #tab-bizskatt .section-title .eyebrow,
  body.print-biz .page:not(#kalkulatorer),
  body.print-biz #tab-lonnskatt,
  body.print-biz #tab-yrkeslonn,
  body.print-biz #tab-strom,
  body.print-biz #tab-lan,
  body.print-biz #tab-timespris,
  body.print-biz #tab-faktura {
    display: none !important;
  }

  body.print-biz main,
  body.print-biz #kalkulatorer,
  body.print-biz #tab-selvstendig,
  body.print-biz #businessPremiumContent,
  body.print-biz #tab-bizskatt {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;
  }

  body.print-biz #tab-bizskatt .panel {
    box-shadow: none !important;
    border: 1px solid #d9dee7 !important;
    break-inside: avoid;
  }

  body.print-invoice .invoice-document {
    padding: 0 !important;
  }

  body.print-invoice .invoice-table-wrap {
    overflow: visible !important;
  }

  body.print-invoice .invoice-table-wrap table {
    min-width: 0 !important;
    width: 100% !important;
  }
}


/* v19 invoice and business card refinements */
.business-card {
  padding: clamp(22px, 3vw, 34px);
}

.business-card-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr);
  gap: 24px;
  align-items: stretch;
}

.business-card-copy {
  min-width: 0;
}

.business-card-offer {
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 22px;
  border: 1px solid rgba(237, 204, 122, .95);
  border-radius: 24px;
  background: linear-gradient(180deg, #fffaf0, #fffdf8);
}

.business-card-offer .btn {
  justify-self: start;
}

.offer-title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -.03em;
  color: var(--text);
}

.invoice-layout {
  grid-template-columns: minmax(560px, 1.02fr) minmax(560px, .98fr);
  gap: 26px;
}

.invoice-layout > .panel {
  min-width: 0;
}

#invoiceForm {
  gap: 20px;
}

#invoiceForm .form-actions {
  margin-top: 0;
}

.invoice-fieldset {
  align-items: start;
  background: #f7f9fc;
  border-color: #dbe3ee;
}

.invoice-meta-fieldset {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.invoice-lines-fieldset {
  overflow: hidden;
}

.invoice-lines-header,
.invoice-line {
  grid-template-columns: minmax(180px, 1fr) 90px 130px 90px 92px;
}

.invoice-preview-panel {
  overflow: hidden;
}

.invoice-document {
  padding: 24px;
}

.invoice-document h3 {
  margin: 0 0 18px;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: .98;
  letter-spacing: -.05em;
}

.invoice-party-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

.invoice-party-card {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 156px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface-2);
}

.invoice-card-label {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.invoice-party-card strong {
  font-size: 1.06rem;
}

.invoice-info-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.invoice-info-bar > div,
.invoice-account-bar {
  padding: 13px 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
}

.invoice-info-bar span,
.invoice-account-bar span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 850;
}

.invoice-account-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.invoice-account-bar strong {
  white-space: nowrap;
}

.invoice-table-wrap {
  margin-top: 0;
}

.invoice-totals {
  margin-top: 16px;
}

@media (max-width: 1220px) {
  .business-card-layout,
  .invoice-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .invoice-meta-fieldset,
  .invoice-party-grid,
  .invoice-info-bar {
    grid-template-columns: 1fr;
  }

  .invoice-account-bar {
    display: grid;
  }
}

@media (max-width: 760px) {
  .invoice-line {
    grid-template-columns: 1fr 1fr;
  }
}

@media print {
  body.print-invoice .invoice-party-grid,
  body.print-invoice .invoice-info-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }


  body.print-invoice .invoice-account-bar {
    display: flex;
  }

  body.print-invoice .invoice-document {
    padding: 0 !important;
  }
}


/* v20: fix faktura layout overlap */
.invoice-layout {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr) !important;
  gap: 24px !important;
}

.invoice-layout > .panel,
.invoice-layout .input-panel,
.invoice-layout .invoice-preview-panel,
#invoiceForm,
#invoiceForm fieldset {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.invoice-layout .input-panel {
  overflow: hidden;
}

.invoice-fieldset {
  position: relative;
  z-index: 1;
}

.invoice-fieldset legend {
  max-width: 100%;
}

.invoice-preview-panel {
  position: sticky;
  top: 92px;
  align-self: start;
}

@media (max-width: 1280px) {
  .invoice-layout {
    grid-template-columns: 1fr !important;
  }

  .invoice-preview-panel {
    position: static;
  }
}


/* v21 invoice polish */
.invoice-fieldset {
  padding-top: 18px !important;
}

.invoice-fieldset-title {
  grid-column: 1 / -1;
  margin: 0 0 6px;
  font-weight: 900;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--text);
}

.invoice-meta-fieldset .invoice-fieldset-title,
.invoice-lines-fieldset .invoice-fieldset-title {
  margin-bottom: 10px;
}

.invoice-lines-header,
.invoice-line {
  grid-template-columns: minmax(160px, 1fr) 90px 130px 90px 112px !important;
}

.invLineDelete {
  min-width: 96px;
  white-space: nowrap;
  padding-inline: 14px !important;
}

.invoice-save-actions .btn {
  flex: 0 0 auto;
}

@media (max-width: 760px) {
  .invoice-line {
    grid-template-columns: 1fr 1fr !important;
  }

  .invoice-line .invLineDelete {
    grid-column: 1 / -1;
    width: 100%;
  }
}

.invLineDelete{background:#dff4ee !important;color:#0c5f57 !important;font-weight:900 !important;}


/* v22: make invoice line controls visible and compact */
.invoice-lines-header,
.invoice-line {
  grid-template-columns: minmax(120px, 1fr) 68px 112px 62px 118px !important;
  gap: 8px !important;
}

.invoice-line input {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.invoice-line .invLineQty,
.invoice-line .invLineVat {
  text-align: center;
}

.invLineDelete {
  display: inline-flex !important;
  min-width: 108px !important;
  width: 108px !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: #dff4ee !important;
  color: #075f56 !important;
  border: 1px solid rgba(15,118,110,.24) !important;
  font-weight: 950 !important;
  overflow: visible !important;
  justify-content: center !important;
}

#downloadInvoice::after {
  content: "";
}

@media (max-width: 760px) {
  .invoice-line {
    grid-template-columns: 1fr 72px 1fr 72px !important;
  }

  .invoice-line .invLineDesc,
  .invoice-line .invLineDelete {
    grid-column: 1 / -1;
  }

  .invoice-line .invLineDelete {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* v23: skatteinfo for fradrag og næringskostnader */
.info-help-text {
  grid-column: 1 / -1;
  margin: 0 0 4px;
  color: var(--muted);
  font-size: .92rem;
  font-weight: 750;
}

.info-wrap {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin-left: 8px;
  vertical-align: middle;
  z-index: 8;
}

.info-btn {
  border: 1px solid rgba(15,118,110,.24);
  background: #e7f7f3;
  color: var(--primary-2);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
  min-height: 28px;
}

.info-btn:hover {
  background: #d7f1ea;
}

.info-popover {
  display: none;
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  width: min(360px, calc(100vw - 48px));
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  color: var(--text);
  box-shadow: var(--shadow);
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.45;
  white-space: pre-line;
  z-index: 50;
}

.info-wrap.open .info-popover {
  display: block;
}

.form-note {
  grid-column: 1 / -1;
  margin: 0;
}

@media (max-width: 760px) {
  .info-popover {
    left: auto;
    right: 0;
  }
}


/* v24: ensure open info popover overlays neighboring controls */
.info-wrap.open {
  z-index: 2000;
}

.info-wrap.open .info-btn {
  position: relative;
  z-index: 2001;
}

.info-wrap.open .info-popover {
  z-index: 2002;
}

#tab-bizskatt fieldset,
#tab-lonnskatt fieldset,
#tab-bizskatt label,
#tab-lonnskatt label {
  overflow: visible;
}


/* v27: SEO guide links on front page */
.seo-guide-links {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
.guide-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.guide-link-grid a {
  display: block;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  color: var(--primary-2);
  font-weight: 850;
  text-decoration: none;
}
.guide-link-grid a:hover {
  background: #e7f7f3;
}
@media (max-width: 760px) {
  .guide-link-grid { grid-template-columns: 1fr; }
}


/* v34: lisenskode etter kjøp */
.license-login {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.license-login h3 {
  margin: 0 0 6px;
}

.license-login label {
  margin-top: 12px;
}

.license-login .btn {
  margin-top: 12px;
}

.license-notice {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(18,32,51,.52);
}

.license-notice-card {
  position: relative;
  width: min(680px, 100%);
  border-radius: 28px;
  background: #fff;
  padding: clamp(22px, 4vw, 34px);
  box-shadow: 0 30px 90px rgba(0,0,0,.25);
}

.license-notice-card textarea {
  width: 100%;
  min-height: 110px;
  resize: vertical;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 14px;
  font: 700 .95rem ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: #f8fbff;
  color: var(--text);
}


/* v35: shorter license code display */
.license-code-output {
  width: 100%;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-align: center;
}


/* v37: business budget tables */
.wide-budget-panel {
  max-width: none;
}

.business-budget-wrap {
  overflow-x: auto;
  margin-top: 18px;
}

.business-budget-table {
  min-width: 1320px;
  width: 100%;
  table-layout: fixed;
}

.business-budget-table th:first-child {
  width: 260px;
  text-align: left;
}

.business-budget-table th,
.business-budget-table td {
  padding: 9px 8px;
  font-size: .86rem;
  vertical-align: middle;
}

.business-budget-table input {
  min-height: 36px;
  padding: 7px 8px;
  border-radius: 10px;
  text-align: right;
  font-size: .84rem;
}

.business-budget-table td,
.business-budget-table th:not(:first-child) {
  text-align: right;
}

.budget-section-row th {
  background: #e7f7f3 !important;
  color: var(--primary-2);
  text-align: left !important;
  font-weight: 950;
}

.budget-total-row th,
.budget-total-row td,
.budget-total-row .budget-calc-cell {
  background: #f8fbff;
  font-weight: 900;
}

.budget-calc-cell {
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.budget-kpi-grid {
  margin: 18px 0 4px;
}

.budget-export-actions {
  margin-top: 0;
}

.budget-tips-panel {
  box-shadow: none;
  margin-top: 20px;
}

.budget-tips-list {
  margin: 0;
  padding-left: 22px;
  color: var(--muted);
  line-height: 1.75;
  font-weight: 750;
}

@media (max-width: 760px) {
  .business-budget-table {
    min-width: 1180px;
  }

  .business-budget-table th,
  .business-budget-table td {
    font-size: .78rem;
    padding: 7px 6px;
  }
}


/* v38: simple mileage log */
.mileage-info-fieldset {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mileage-table {
  min-width: 980px;
  width: 100%;
  table-layout: fixed;
}

.mileage-table th,
.mileage-table td {
  padding: 9px 8px;
  font-size: .86rem;
}

.mileage-table input {
  min-height: 38px;
  padding: 8px 9px;
  border-radius: 10px;
  font-size: .84rem;
}

.mileage-table th:nth-child(1) { width: 150px; }
.mileage-table th:nth-child(2),
.mileage-table th:nth-child(3) { width: 180px; }
.mileage-table th:nth-child(5) { width: 115px; }
.mileage-table th:nth-child(6) { width: 105px; }

.mileage-table .mileageKm {
  text-align: right;
}

.mileageDelete {
  min-width: 86px;
  background: #dff4ee !important;
  color: #0c5f57 !important;
  font-weight: 900 !important;
}

.mileage-rules-panel {
  margin-top: 22px;
}

@media (max-width: 860px) {
  .mileage-info-fieldset {
    grid-template-columns: 1fr;
  }
}


/* v39/v41: layout fixes for budgets, mileage and invoice */
.business-budget-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.business-budget-table {
  min-width: 1680px;
}

.business-budget-table th:first-child,
.business-budget-table td:first-child {
  width: 220px;
  min-width: 220px;
}

.business-budget-table th:not(:first-child),
.business-budget-table td:not(:first-child) {
  width: 112px;
  min-width: 112px;
}

.business-budget-table input {
  width: 100%;
  min-width: 92px;
  padding-left: 8px;
  padding-right: 8px;
}

#mileageSummary {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  align-items: start;
}

#mileageSummary .kpi.full {
  grid-column: auto;
}

.invoice-table-wrap {
  overflow-x: hidden;
}

.invoice-table {
  width: 100%;
  table-layout: fixed;
}

.invoice-table th,
.invoice-table td {
  white-space: nowrap;
  padding-left: 8px;
  padding-right: 8px;
}

.invoice-table th {
  font-size: .82rem;
  letter-spacing: -.01em;
}

.invoice-table th:first-child,
.invoice-table td:first-child {
  width: 38%;
  text-align: left;
}

.invoice-table th:nth-child(2),
.invoice-table td:nth-child(2) {
  width: 10%;
}

.invoice-table th:nth-child(3),
.invoice-table td:nth-child(3) {
  width: 18%;
}

.invoice-table th:nth-child(4),
.invoice-table td:nth-child(4) {
  width: 11%;
}

.invoice-table th:nth-child(5),
.invoice-table td:nth-child(5) {
  width: 23%;
}

@media (max-width: 900px) {
  .business-budget-table {
    min-width: 1600px;
  }

  #mileageSummary {
    grid-template-columns: 1fr;
  }

  .invoice-table {
    min-width: 620px;
  }
}


/* v46: SEO guide hub grouped by topic */
.guide-cluster-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.guide-cluster {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
}

.guide-cluster h3 {
  margin: 0 0 4px;
  font-size: 1.1rem;
  letter-spacing: -.03em;
}

.guide-cluster a {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  color: var(--primary-2);
  font-weight: 850;
  text-decoration: none;
}

.guide-cluster a:hover {
  background: #e7f7f3;
}

@media (max-width: 860px) {
  .guide-cluster-grid {
    grid-template-columns: 1fr;
  }
}

/* v47: fix invoice preview description wrapping */
#invoicePreview .invoice-table {
  table-layout: fixed;
}

#invoicePreview .invoice-table th:first-child,
#invoicePreview .invoice-table td:first-child {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}

#invoicePreview .invoice-table td {
  vertical-align: top;
}

#invoicePreview .invoice-table th:nth-child(n+2),
#invoicePreview .invoice-table td:nth-child(n+2) {
  white-space: nowrap !important;
}

/* v48: kompakt forside slik at heading og Privat/Næring-boksene synes på samme skjerm */
#hjem .hero {
  padding: clamp(18px, 3.5vh, 34px) 0 clamp(6px, 1.5vh, 12px) !important;
}

#hjem .hero-text {
  padding: clamp(10px, 2vh, 18px) clamp(8px, 2vw, 18px) !important;
}

#hjem .eyebrow {
  margin-bottom: 7px;
}

#hjem h1 {
  font-size: clamp(2.25rem, 5.8vw, 4.65rem);
  line-height: .96;
}

#hjem .lead {
  margin: 12px auto 0;
  line-height: 1.42;
  font-size: clamp(1rem, 1.6vw, 1.15rem);
}

#hjem .section.cards-grid.center-cards {
  margin-top: 8px !important;
  margin-bottom: 26px;
}

#hjem .center-cards {
  max-width: 1120px;
}

#hjem .mini-card {
  padding: clamp(16px, 2vw, 22px);
}

#hjem .mini-card .eyebrow {
  margin-bottom: 6px;
}

#hjem .mini-card h2 {
  font-size: clamp(1.35rem, 2.3vw, 1.9rem);
  margin-bottom: 10px;
}

#hjem .feature-list {
  line-height: 1.43;
  font-size: .94rem;
}

#hjem .feature-list li {
  margin: 2px 0;
}

#hjem .business-card-layout {
  gap: 16px;
}

#hjem .business-card-offer {
  align-self: stretch;
  padding: 14px;
}

#hjem .business-card-offer .offer-title {
  margin-top: 0;
  margin-bottom: 8px;
}

#hjem .business-card-offer .fineprint {
  margin: 0 0 14px;
  line-height: 1.35;
}

@media (max-width: 960px) {
  #hjem .hero {
    padding-top: 16px !important;
  }

  #hjem .section.cards-grid.center-cards {
    margin-top: 6px !important;
  }

  #hjem .feature-list {
    line-height: 1.5;
  }
}
