/* Byggd från designen i "Företagsregister för Sverige/Foretagsprofil v3" */
:root {
  --ink: #1F2933; --slate: #3E4C59; --label: #616E7C; --faint: #7B8794; --mute: #B8C0C8;
  --link: #1F5A8A; --link-deep: #174568;
  --page: #F2F3F4; --well: #F5F6F7; --line: #E1E5E9; --line-soft: #EDF0F2; --line-strong: #CBD2D9;
  --green: #2E6B3F; --green-bg: #EEF6F0; --amber: #9A6B00; --amber-bg: #FBF4E4; --red: #B23A3A; --red-bg: #FBEAEA;
  --bar: #5F7A1F;
  --font-heading: 'Outfit', 'Barlow', sans-serif; --font-body: 'Roboto', 'Helvetica', sans-serif;
  --radius: 4px; --shadow: 0 1px 3px rgba(0, 0, 0, .08);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--page); color: var(--ink);
  font-family: var(--font-body); font-size: 13px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { font-family: var(--font-heading); font-weight: 600; margin: 0; }
input, select, textarea, button { font-family: inherit; }
img { max-width: 100%; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: 1320px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }

/* Topprad och header */
.topbar { background: #E8F0F7; border-top: 3px solid var(--link); border-bottom: 1px solid #D5E1EC; font-size: 12px; color: var(--slate); }
.topbar-row { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; padding-top: 5px; padding-bottom: 5px; }
.topbar a { margin-left: auto; color: var(--slate); }
.site-header { background: #fff; border-bottom: 1px solid var(--line); }
.header-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; padding-top: 10px; padding-bottom: 10px; }
.brand { display: flex; align-items: center; gap: 6px; font-family: var(--font-heading); font-size: 20px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); white-space: nowrap; }
.brand:hover { text-decoration: none; }
.brand img { width: 22px; height: 22px; display: block; }
.search { flex: 1 1 340px; max-width: 520px; display: flex; min-width: 0; margin: 0; border: 2px solid var(--link); border-radius: 23px; overflow: hidden; background: #fff; }
.search input { flex: 1; min-width: 0; height: 42px; border: 0; padding: 0 18px; font-size: 14px; background: #fff; }
.search input:focus { outline: none; }
.search:focus-within { box-shadow: 0 0 0 3px rgba(31, 90, 138, .18); }
.search button { height: 42px; border: 0; padding: 0 20px; background: var(--link); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.search button:hover { background: var(--link-deep); }
.main-nav { display: flex; gap: 18px; margin-left: auto; font-size: 13px; font-weight: 600; }
.main-nav a { color: var(--ink); }

/* Layout */
main.wrap { flex: 1; display: flex; flex-direction: column; gap: 12px; padding-top: 24px; padding-bottom: 48px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--label); }
.layout { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.main-col { flex: 1 1 640px; max-width: 985px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.side-col { flex: 0 1 320px; min-width: 240px; display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; }
.panel { background: #fff; border-radius: 8px; box-shadow: var(--shadow); padding: 20px 16px; display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 70px; }
.panel-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.panel h2 { font-size: 20px; }
.panel-head .meta { font-size: 12px; color: var(--label); }
.eyebrow { font-size: 11px; font-weight: 600; color: var(--label); }
.small { margin: 0; font-size: 11px; line-height: 1.5; color: var(--faint); }
.ico { flex: none; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12px; }

/* Företagshuvud */
.profile { background: #fff; border-radius: 8px; box-shadow: var(--shadow); }
.profile-body { padding: 24px 20px 0; display: flex; flex-direction: column; gap: 10px; }
.profile h1 { font-size: clamp(26px, 3.4vw, 32px); line-height: 1.15; letter-spacing: -.015em; text-wrap: balance; }
.ids { margin: 0; display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.ids div { display: flex; gap: 6px; }
.ids dt { flex: none; color: var(--faint); }
.ids dd { margin: 0; min-width: 0; font-weight: 700; overflow-wrap: anywhere; }
.ids dd a { font-weight: 400; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; padding: 6px 0 10px; font-size: 12px; font-weight: 600; }
.actions .push { margin-left: auto; }
.tabs { display: flex; overflow-x: auto; overflow-y: hidden; border-top: 1px solid var(--line); padding: 0 8px; position: sticky; top: 0; z-index: 20; background: #fff; border-radius: 0 0 8px 8px; }
.tabs a { flex: none; padding: 15px 16px; margin-bottom: -1px; font-size: 16px; font-weight: 500; white-space: nowrap; color: var(--slate); border-bottom: 3px solid transparent; }
.tabs a:hover, .tabs a[aria-current="true"] { color: var(--ink); text-decoration: none; }
.tabs a[aria-current="true"] { border-bottom-color: var(--green); }

/* Resumen */
.alert-sat, .sat-ok { margin: 0; display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 3px; font-size: 13px; line-height: 1.45; }
.alert-sat { background: var(--red-bg); }
.alert-sat .ico { background: var(--red); color: #fff; }
.alert-sat a { font-weight: 600; }
.sat-ok { background: var(--green-bg); }
.sat-ok .ico { background: var(--green); color: #fff; }
.kpi-strip { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px 1px; padding: 14px 8px; border-radius: 6px; background: var(--well); text-align: center; }
.kpi-strip div { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 2px 6px; }
.kpi-strip dt { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.kpi-strip dd { margin: 0; font-family: var(--font-body); font-weight: 600; font-size: 16px; line-height: 1.2; color: var(--ink); }
.kpi-strip dd.is-flag { color: var(--red); }
.lead { margin: 0; max-width: 72ch; line-height: 1.5; color: var(--slate); text-wrap: pretty; }
h3.sub2 { font-family: var(--font-body); font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--label); }
.bars { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; max-width: 460px; }
.bars li { display: grid; grid-template-columns: minmax(80px, 170px) minmax(0, 1fr) 34px; gap: 8px; align-items: center; font-size: 11px; color: var(--faint); }
.bars .n { text-align: right; color: var(--slate); }
.bars progress { appearance: none; -webkit-appearance: none; width: 100%; height: 6px; border: 0; border-radius: 3px; background: var(--line-soft); overflow: hidden; }
.bars progress::-webkit-progress-bar { background: var(--line-soft); border-radius: 3px; }
.bars progress::-webkit-progress-value { background: var(--bar); }
.bars progress::-moz-progress-bar { background: var(--bar); }

/* Contacto och fakta */
.facts { margin: 0; display: grid; grid-template-columns: minmax(110px, auto) minmax(0, 1fr); gap: 7px 12px; font-size: 12px; }
.facts dt { color: var(--faint); }
.facts dd { margin: 0; font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
.facts dd a, .facts dd .small { font-weight: 400; }
.map { width: 100%; height: 260px; border: 1px solid var(--line); border-radius: 3px; }

/* Listas del SAT */
.sat-more > summary, .more-list > summary { font-size: 12px; font-weight: 600; color: var(--link); cursor: pointer; list-style: none; }
.sat-more > summary::-webkit-details-marker, .more-list > summary::-webkit-details-marker { display: none; }
.sat-more > summary:hover, .more-list > summary:hover { text-decoration: underline; }
.checks { margin: 8px 0 0; padding: 0; list-style: none; }
.checks li { border-top: 1px solid var(--line-soft); }
.checks summary { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto 28px; align-items: center; gap: 10px; padding: 9px 0; list-style: none; cursor: pointer; }
.checks summary::-webkit-details-marker { display: none; }
.check-name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.check-name strong { font-size: 13px; font-weight: 600; }
.check-name span { font-size: 11px; color: var(--faint); }
.check-name a { white-space: nowrap; }
.result { font-size: 12px; font-weight: 600; white-space: nowrap; }
.result.is-ok, .result.is-warn, .result.is-bad { background: none; }
.chev { width: 28px; height: 28px; border: 1px solid #DDE2E6; border-radius: 3px; background: #fff; color: var(--slate); font-size: 10px; display: flex; align-items: center; justify-content: center; }
.chev::before { content: "▼"; }
.checks details[open] > summary .chev::before { content: "▲"; }
.checks summary:hover .chev { background: var(--well); }
.check-detail { margin: 0; padding: 0 38px 10px 32px; font-size: 12px; line-height: 1.5; color: var(--slate); }
.is-ok { background: var(--green-bg); color: var(--green); }
.is-warn { background: var(--amber-bg); color: var(--amber); }
.is-bad { background: var(--red-bg); color: var(--red); }
.sat-info { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.chips { display: contents; margin: 0; padding: 0; list-style: none; }
.chips li { font-size: 11px; padding: 3px 8px; border-radius: 3px; border: 1px dashed var(--line-strong); color: var(--faint); white-space: nowrap; }

/* Listor: establecimientos, hubbar */
.company-list { margin: 0; padding: 0; list-style: none; }
.company-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line-soft); }
.company-list a, .est-name { font-size: 13px; font-weight: 600; }
.company-list .where { display: block; margin-top: 1px; font-size: 11px; color: var(--faint); overflow-wrap: anywhere; }
.company-list .stat { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 10px; font-size: 12px; color: var(--label); }
.part { font-weight: 600; color: var(--amber); }
.more-list .company-list { margin-top: 8px; }
.town-list { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.town-list a { display: inline-block; padding: 5px 10px; border: 1px solid var(--line); border-radius: 3px; font-size: 12px; font-weight: 600; }
.town-list a:hover { border-color: var(--mute); text-decoration: none; }
.town-list span { color: var(--faint); font-weight: 400; }

/* Sidokolumn */
.side-col .panel { padding: 14px 16px; gap: 8px; }
.side-col .panel h2 { font-family: var(--font-body); font-size: 13px; }
.others { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.others a { display: flex; flex-direction: column; gap: 1px; font-size: 12px; }
.others .name { font-weight: 600; }
.others .stat { display: flex; flex-wrap: wrap; gap: 2px 8px; font-size: 11px; color: var(--faint); }
.plain-link { font-size: 12px; font-weight: 600; }
.plain-link::after { content: " →"; }
.side-col .others + .plain-link { align-self: flex-end; }
.small.muted { color: var(--label); }

/* Hubbar och textsidor */
.page-head h1 { font-size: clamp(26px, 3.4vw, 32px); line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; }
.page-head p { margin: 0; line-height: 1.5; color: var(--slate); }
.prose { line-height: 1.55; color: var(--slate); }
.prose h1, .prose h2 { color: var(--ink); }
.prose h2 { font-size: 14px; margin-top: 6px; }
.prose p, .prose ul { margin: 0; }
.prose ul { padding-left: 18px; }
.prose ul li { margin: 4px 0; }
#b-res { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.form { display: grid; gap: 10px; max-width: 480px; }
.form label { display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 600; color: var(--slate); }
.form input, .form textarea { border: 1px solid var(--line-strong); border-radius: 3px; padding: 8px 10px; font-size: 13px; font-weight: 400; color: var(--ink); background: #fff; }
.form input { height: 36px; padding-top: 0; padding-bottom: 0; }
.form textarea { min-height: 80px; resize: vertical; }
.button { justify-self: start; height: 36px; padding: 0 16px; border: 0; border-radius: 3px; background: var(--link); color: #fff; font-weight: 600; font-size: 13px; cursor: pointer; }
.button:hover { background: var(--link-deep); }

/* Sidfot */
.site-footer { background: #2B2E33; color: #D5D9DE; }
.footer-row { display: flex; flex-direction: column; gap: 20px; padding-top: 32px; padding-bottom: 28px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 12px; }
.footer-links a { color: #D5D9DE; }
.footer-note { display: flex; flex-direction: column; gap: 8px; padding-top: 20px; border-top: 1px solid #3E4248; font-size: 11px; line-height: 1.5; color: #9AA3AD; }
.footer-note strong { font-family: var(--font-heading); font-weight: 600; font-size: 14px; color: #fff; }

@media (min-width: 720px) {
  .facts.cols2 { grid-template-columns: minmax(110px, auto) minmax(0, 1fr) minmax(110px, auto) minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .main-nav { margin-left: 0; }
  .search { max-width: none; }
  .check-detail { padding: 0 0 10px 32px; }
  .company-list li { grid-template-columns: 1fr; }
  .company-list .stat { justify-content: flex-start; }
}

/* Startsida */
.hero { padding: 28px 24px 24px; gap: 14px; }
.hero h1 { font-size: clamp(24px, 4vw, 30px); line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; }
.hero .lead { font-size: 14px; }
.search-big { flex: none; max-width: 560px; }
.search-big input { height: 48px; padding: 0 20px; font-size: 15px; }
.search-big button { height: 48px; padding: 0 24px; font-size: 15px; }
.search-big button:hover { background: var(--link-deep); }
.plain-link.end { align-self: flex-end; }
@media (max-width: 807px) {
  .side-col { flex: 1 1 100%; position: static; }
}

/* Branschjämförelse: bolagets egen storleksklass markerad */
.bars.peers progress::-webkit-progress-value { background: #B7C96A; }
.bars.peers progress::-moz-progress-bar { background: #B7C96A; }
.bars.peers .is-me { color: var(--ink); font-weight: 600; }
.bars.peers .is-me .n { color: var(--ink); }
.bars.peers .is-me progress::-webkit-progress-value { background: var(--bar); }
.bars.peers .is-me progress::-moz-progress-bar { background: var(--bar); }

/* Contratos públicos */
.bars.wide { max-width: none; }
.bars.wide li { grid-template-columns: minmax(60px, 230px) minmax(0, 1fr) minmax(150px, auto); }
@media (max-width: 560px) {
  .bars.wide li { grid-template-columns: minmax(0, 1fr); gap: 2px; margin-bottom: 4px; }
  .bars.wide .n { text-align: left; }
}

/* Paginering på kommunhubbar */
.pager { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 600; }
.pager a[rel="next"] { margin-left: auto; }

/* Colombia: statuspill, bokslutstabell */
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--green-bg); color: var(--green); }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.pill.is-bad { background: var(--red-bg); color: var(--red); }
.pill.is-bad::before { background: var(--red); }
.ids dd .pill { font-weight: 600; }
.bars.neg .is-neg progress::-webkit-progress-value { background: var(--red); }
.bars.neg .is-neg progress::-moz-progress-bar { background: var(--red); }
.bars.neg .is-neg .n { color: var(--red); }
.table-wrap { overflow-x: auto; }
table.fin { border-collapse: collapse; width: 100%; font-size: 12px; }
table.fin th, table.fin td { padding: 7px 8px; border-bottom: 1px solid var(--line-soft); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
table.fin th { font-weight: 600; }
table.fin thead th { border-bottom: 1px solid var(--line); }
table.fin tbody th { text-align: left; color: var(--slate); font-weight: 400; }
table.fin td.is-flag { color: var(--red); }

.charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px 28px; }
table.fin tr.is-total th, table.fin tr.is-total td { font-weight: 600; color: var(--ink); border-top: 1px solid var(--line); }
.small-lead { font-size: 13px; color: var(--slate); }
/* minidiagram per rad, som i förlagan: fem staplar, höjd i tiotal procent */
td.mini { width: 48px; padding-left: 10px; }
td.mini i { display: inline-block; width: 5px; margin-right: 2px; height: 2px; background: var(--bar); vertical-align: bottom; }
td.mini i.neg { background: var(--red); }
td.mini i.h0 { height: 2px; }
td.mini i.h10 { height: 2px; }
td.mini i.h20 { height: 3px; }
td.mini i.h30 { height: 5px; }
td.mini i.h40 { height: 6px; }
td.mini i.h50 { height: 8px; }
td.mini i.h60 { height: 10px; }
td.mini i.h70 { height: 11px; }
td.mini i.h80 { height: 13px; }
td.mini i.h90 { height: 14px; }
td.mini i.h100 { height: 16px; }

/* mätare för tre indikatorer, egen grafik */
.gauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px 24px; }
.gauge { display: flex; flex-direction: column; gap: 6px; }
.gauge-row { display: flex; gap: 10px; align-items: center; }
.dial { position: relative; flex: none; width: 64px; height: 34px; overflow: hidden; }
.dial::before { content: ""; position: absolute; left: 0; top: 0; width: 64px; height: 64px; border-radius: 50%;
  background: conic-gradient(from 270deg, var(--red) 0 60deg, #E0A526 60deg 120deg, var(--green) 120deg 180deg, var(--line-soft) 180deg 360deg);
  -webkit-mask: radial-gradient(circle at center, transparent 20px, #000 21px); mask: radial-gradient(circle at center, transparent 20px, #000 21px); }
.dial .needle { position: absolute; left: 31px; bottom: 0; width: 2px; height: 30px; background: var(--ink); transform-origin: 50% 100%; border-radius: 1px; }
.dial b { position: absolute; left: 28px; bottom: -4px; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }
.gauge-txt { display: flex; flex-direction: column; gap: 1px; font-size: 13px; }
.gauge-txt strong { font-size: 12px; }
.gauge-txt small { font-size: 11px; color: var(--faint); }
.g-ok { color: var(--green); } .g-mid { color: #9A6B00; } .g-bad { color: var(--red); }
.needle.r0 { transform: rotate(-90deg); }
.needle.r1 { transform: rotate(-89deg); }
.needle.r2 { transform: rotate(-88deg); }
.needle.r3 { transform: rotate(-87deg); }
.needle.r4 { transform: rotate(-86deg); }
.needle.r5 { transform: rotate(-85deg); }
.needle.r6 { transform: rotate(-84deg); }
.needle.r7 { transform: rotate(-83deg); }
.needle.r8 { transform: rotate(-82deg); }
.needle.r9 { transform: rotate(-81deg); }
.needle.r10 { transform: rotate(-80deg); }
.needle.r11 { transform: rotate(-79deg); }
.needle.r12 { transform: rotate(-78deg); }
.needle.r13 { transform: rotate(-77deg); }
.needle.r14 { transform: rotate(-76deg); }
.needle.r15 { transform: rotate(-75deg); }
.needle.r16 { transform: rotate(-74deg); }
.needle.r17 { transform: rotate(-73deg); }
.needle.r18 { transform: rotate(-72deg); }
.needle.r19 { transform: rotate(-71deg); }
.needle.r20 { transform: rotate(-70deg); }
.needle.r21 { transform: rotate(-69deg); }
.needle.r22 { transform: rotate(-68deg); }
.needle.r23 { transform: rotate(-67deg); }
.needle.r24 { transform: rotate(-66deg); }
.needle.r25 { transform: rotate(-65deg); }
.needle.r26 { transform: rotate(-64deg); }
.needle.r27 { transform: rotate(-63deg); }
.needle.r28 { transform: rotate(-62deg); }
.needle.r29 { transform: rotate(-61deg); }
.needle.r30 { transform: rotate(-60deg); }
.needle.r31 { transform: rotate(-59deg); }
.needle.r32 { transform: rotate(-58deg); }
.needle.r33 { transform: rotate(-57deg); }
.needle.r34 { transform: rotate(-56deg); }
.needle.r35 { transform: rotate(-55deg); }
.needle.r36 { transform: rotate(-54deg); }
.needle.r37 { transform: rotate(-53deg); }
.needle.r38 { transform: rotate(-52deg); }
.needle.r39 { transform: rotate(-51deg); }
.needle.r40 { transform: rotate(-50deg); }
.needle.r41 { transform: rotate(-49deg); }
.needle.r42 { transform: rotate(-48deg); }
.needle.r43 { transform: rotate(-47deg); }
.needle.r44 { transform: rotate(-46deg); }
.needle.r45 { transform: rotate(-45deg); }
.needle.r46 { transform: rotate(-44deg); }
.needle.r47 { transform: rotate(-43deg); }
.needle.r48 { transform: rotate(-42deg); }
.needle.r49 { transform: rotate(-41deg); }
.needle.r50 { transform: rotate(-40deg); }
.needle.r51 { transform: rotate(-39deg); }
.needle.r52 { transform: rotate(-38deg); }
.needle.r53 { transform: rotate(-37deg); }
.needle.r54 { transform: rotate(-36deg); }
.needle.r55 { transform: rotate(-35deg); }
.needle.r56 { transform: rotate(-34deg); }
.needle.r57 { transform: rotate(-33deg); }
.needle.r58 { transform: rotate(-32deg); }
.needle.r59 { transform: rotate(-31deg); }
.needle.r60 { transform: rotate(-30deg); }
.needle.r61 { transform: rotate(-29deg); }
.needle.r62 { transform: rotate(-28deg); }
.needle.r63 { transform: rotate(-27deg); }
.needle.r64 { transform: rotate(-26deg); }
.needle.r65 { transform: rotate(-25deg); }
.needle.r66 { transform: rotate(-24deg); }
.needle.r67 { transform: rotate(-23deg); }
.needle.r68 { transform: rotate(-22deg); }
.needle.r69 { transform: rotate(-21deg); }
.needle.r70 { transform: rotate(-20deg); }
.needle.r71 { transform: rotate(-19deg); }
.needle.r72 { transform: rotate(-18deg); }
.needle.r73 { transform: rotate(-17deg); }
.needle.r74 { transform: rotate(-16deg); }
.needle.r75 { transform: rotate(-15deg); }
.needle.r76 { transform: rotate(-14deg); }
.needle.r77 { transform: rotate(-13deg); }
.needle.r78 { transform: rotate(-12deg); }
.needle.r79 { transform: rotate(-11deg); }
.needle.r80 { transform: rotate(-10deg); }
.needle.r81 { transform: rotate(-9deg); }
.needle.r82 { transform: rotate(-8deg); }
.needle.r83 { transform: rotate(-7deg); }
.needle.r84 { transform: rotate(-6deg); }
.needle.r85 { transform: rotate(-5deg); }
.needle.r86 { transform: rotate(-4deg); }
.needle.r87 { transform: rotate(-3deg); }
.needle.r88 { transform: rotate(-2deg); }
.needle.r89 { transform: rotate(-1deg); }
.needle.r90 { transform: rotate(0deg); }
.needle.r91 { transform: rotate(1deg); }
.needle.r92 { transform: rotate(2deg); }
.needle.r93 { transform: rotate(3deg); }
.needle.r94 { transform: rotate(4deg); }
.needle.r95 { transform: rotate(5deg); }
.needle.r96 { transform: rotate(6deg); }
.needle.r97 { transform: rotate(7deg); }
.needle.r98 { transform: rotate(8deg); }
.needle.r99 { transform: rotate(9deg); }
.needle.r100 { transform: rotate(10deg); }
.needle.r101 { transform: rotate(11deg); }
.needle.r102 { transform: rotate(12deg); }
.needle.r103 { transform: rotate(13deg); }
.needle.r104 { transform: rotate(14deg); }
.needle.r105 { transform: rotate(15deg); }
.needle.r106 { transform: rotate(16deg); }
.needle.r107 { transform: rotate(17deg); }
.needle.r108 { transform: rotate(18deg); }
.needle.r109 { transform: rotate(19deg); }
.needle.r110 { transform: rotate(20deg); }
.needle.r111 { transform: rotate(21deg); }
.needle.r112 { transform: rotate(22deg); }
.needle.r113 { transform: rotate(23deg); }
.needle.r114 { transform: rotate(24deg); }
.needle.r115 { transform: rotate(25deg); }
.needle.r116 { transform: rotate(26deg); }
.needle.r117 { transform: rotate(27deg); }
.needle.r118 { transform: rotate(28deg); }
.needle.r119 { transform: rotate(29deg); }
.needle.r120 { transform: rotate(30deg); }
.needle.r121 { transform: rotate(31deg); }
.needle.r122 { transform: rotate(32deg); }
.needle.r123 { transform: rotate(33deg); }
.needle.r124 { transform: rotate(34deg); }
.needle.r125 { transform: rotate(35deg); }
.needle.r126 { transform: rotate(36deg); }
.needle.r127 { transform: rotate(37deg); }
.needle.r128 { transform: rotate(38deg); }
.needle.r129 { transform: rotate(39deg); }
.needle.r130 { transform: rotate(40deg); }
.needle.r131 { transform: rotate(41deg); }
.needle.r132 { transform: rotate(42deg); }
.needle.r133 { transform: rotate(43deg); }
.needle.r134 { transform: rotate(44deg); }
.needle.r135 { transform: rotate(45deg); }
.needle.r136 { transform: rotate(46deg); }
.needle.r137 { transform: rotate(47deg); }
.needle.r138 { transform: rotate(48deg); }
.needle.r139 { transform: rotate(49deg); }
.needle.r140 { transform: rotate(50deg); }
.needle.r141 { transform: rotate(51deg); }
.needle.r142 { transform: rotate(52deg); }
.needle.r143 { transform: rotate(53deg); }
.needle.r144 { transform: rotate(54deg); }
.needle.r145 { transform: rotate(55deg); }
.needle.r146 { transform: rotate(56deg); }
.needle.r147 { transform: rotate(57deg); }
.needle.r148 { transform: rotate(58deg); }
.needle.r149 { transform: rotate(59deg); }
.needle.r150 { transform: rotate(60deg); }
.needle.r151 { transform: rotate(61deg); }
.needle.r152 { transform: rotate(62deg); }
.needle.r153 { transform: rotate(63deg); }
.needle.r154 { transform: rotate(64deg); }
.needle.r155 { transform: rotate(65deg); }
.needle.r156 { transform: rotate(66deg); }
.needle.r157 { transform: rotate(67deg); }
.needle.r158 { transform: rotate(68deg); }
.needle.r159 { transform: rotate(69deg); }
.needle.r160 { transform: rotate(70deg); }
.needle.r161 { transform: rotate(71deg); }
.needle.r162 { transform: rotate(72deg); }
.needle.r163 { transform: rotate(73deg); }
.needle.r164 { transform: rotate(74deg); }
.needle.r165 { transform: rotate(75deg); }
.needle.r166 { transform: rotate(76deg); }
.needle.r167 { transform: rotate(77deg); }
.needle.r168 { transform: rotate(78deg); }
.needle.r169 { transform: rotate(79deg); }
.needle.r170 { transform: rotate(80deg); }
.needle.r171 { transform: rotate(81deg); }
.needle.r172 { transform: rotate(82deg); }
.needle.r173 { transform: rotate(83deg); }
.needle.r174 { transform: rotate(84deg); }
.needle.r175 { transform: rotate(85deg); }
.needle.r176 { transform: rotate(86deg); }
.needle.r177 { transform: rotate(87deg); }
.needle.r178 { transform: rotate(88deg); }
.needle.r179 { transform: rotate(89deg); }
.needle.r180 { transform: rotate(90deg); }

.gauge-txt .val { color: var(--ink); font-weight: 600; margin-left: 4px; }
.gauge-txt .trend { font-size: 10px; margin-left: 4px; }
.gauge-txt .trend.up { color: var(--green); } .gauge-txt .trend.down { color: var(--red); }

/* Flikvyer, diagramkort, mätare och tabeller i bokslutsvyn */
.tabs a[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--green); }
.tab-pane { display: flex; flex-direction: column; gap: 12px; }
.tab-pane[hidden] { display: none; }
.badge { align-self: flex-start; font-size: 10px; padding: 2px 6px; border-radius: 3px; background: var(--line-soft); color: var(--label); }
.panel-head .badge { align-self: center; }
.charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.chart-card { margin: 0; border: 1px solid var(--line); border-radius: 3px; padding: 10px 12px 6px; display: flex; flex-direction: column; gap: 6px; }
.chart-card figcaption, .chart-head figcaption { font-size: 13px; font-weight: 600; }
.chart-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.seg { display: flex; border: 1px solid var(--line-strong); border-radius: 12px; overflow: hidden; }
.seg button { border: 0; background: #fff; color: var(--slate); font-size: 11px; font-weight: 600; padding: 3px 10px; cursor: pointer; }
.seg button.on { background: var(--slate); color: #fff; }
svg.chart { width: 100%; height: auto; display: block; }
svg.chart .grid { stroke: var(--line-soft); stroke-width: 1; }
svg.chart .grid.zero { stroke: var(--line-strong); }
svg.chart .ax { font-size: 10px; fill: var(--faint); text-anchor: end; font-family: var(--font-body); }
svg.chart .ax.yr { text-anchor: middle; fill: var(--slate); }
svg.chart rect:hover, svg.chart circle:hover { opacity: .75; }
.objeto { display: flex; flex-direction: column; gap: 4px; }
.objeto p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--slate); }
.legend summary { font-size: 12px; font-weight: 600; color: var(--link); cursor: pointer; list-style: none; }
.legend summary::-webkit-details-marker { display: none; }
.legend p { margin-top: 8px; }
.panel-head a.meta { font-weight: 600; color: var(--link); }
table.fin th.mini-h { width: 48px; }

.head-tools { display: flex; align-items: center; gap: 10px; }
.seg.yr-nav button { padding: 2px 9px; font-size: 12px; }
.seg.yr-nav button:disabled { color: var(--mute); cursor: default; }
table.fin th, table.fin td { padding: 6px 6px; font-size: 12px; }
table.fin tbody th { max-width: 260px; white-space: normal; }
table.fin td.yr, table.fin th.yr { min-width: 96px; }

/* Översikt i förlagans komposition */
.panel-head.col { flex-direction: column; align-items: flex-start; gap: 6px; }
.fin-overview { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr); gap: 20px 28px; border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; }
.fin-chart { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.fin-chart h3 { font-size: 15px; font-weight: 600; }
.chart-tools { display: flex; gap: 10px; }
.seg.round { border-radius: 16px; border: 0; background: var(--line-soft); }
.seg.round button { background: transparent; color: var(--ink); padding: 5px 12px; font-size: 13px; }
.seg.round button.on { background: var(--slate); color: #fff; border-radius: 16px; }
.seg.round button:disabled { color: var(--mute); }
svg.chart.dual .selband { fill: var(--well); }
.legend-row { display: flex; gap: 18px; justify-content: center; font-size: 12px; color: var(--slate); flex-wrap: wrap; }
.legend-row i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.yr-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.yr-tbl thead th { text-align: left; font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--line); }
.yr-tbl thead th + th { text-align: right; }
.yr-tbl tbody th { text-align: left; font-weight: 400; color: var(--slate); padding: 8px 8px; border-bottom: 1px solid var(--line-soft); }
.yr-tbl tbody td { text-align: right; font-weight: 600; padding: 8px 8px; border-bottom: 1px solid var(--line-soft); font-variant-numeric: tabular-nums; }
.yr-tbl tr.hl th, .yr-tbl tr.hl td { background: var(--well); }
.yr-tbl tr.hl th { border-left: 3px solid var(--bar); }
.yr-tbl tr.dim th, .yr-tbl tr.dim td { color: var(--faint); font-weight: 400; }
.yr-tbl td.is-flag { color: var(--red); }
.two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.facts.tight { gap: 10px 16px; font-size: 14px; }
.facts.tight dt { color: var(--slate); }
.facts.tight dd { font-weight: 600; }
.facts.tight dd.small { font-weight: 400; }
.facts-2col { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 32px; }
.chk { display: inline-flex; width: 16px; height: 16px; border-radius: 50%; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #fff; background: var(--green); vertical-align: -3px; margin-right: 2px; }
.chk.bad { background: var(--red); }
.objeto p { font-size: 14px; }
.plain-link.end { align-self: flex-end; }
@media (max-width: 720px) { .fin-overview { grid-template-columns: 1fr; } }

.panel-head.col .badge { align-self: flex-start; }
/* mätare som förlagan: tre i rad, större urtavla, versal etikett */
.gauges { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; }
.gauge .eyebrow { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--slate); }
.dial { width: 76px; height: 40px; }
.dial::before { width: 76px; height: 76px; -webkit-mask: radial-gradient(circle at center, transparent 23px, #000 24px); mask: radial-gradient(circle at center, transparent 23px, #000 24px); }
.dial .needle { left: 37px; height: 35px; }
.dial b { left: 33px; width: 9px; height: 9px; }
.gauge-txt strong { font-size: 14px; }
.gauge-txt .val { font-size: 14px; }
.gauge-txt small { font-size: 12px; }
@media (max-width: 560px) { .gauges { grid-template-columns: 1fr 1fr; } }

/* tabellrubrik som förlagan */
table.fin th.ttl { text-align: left; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); white-space: normal; }
table.fin th.ttl .ttl-unit { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--faint); }
table.fin th.nav-cell, table.fin td.nav-cell { width: 26px; padding: 0 2px; text-align: center; }
.yr-btn { border: 0; background: none; color: var(--slate); font-size: 18px; line-height: 1; cursor: pointer; padding: 2px 4px; }
.yr-btn:disabled { color: var(--mute); cursor: default; }
table.fin thead th.yr { text-align: right; font-size: 14px; font-weight: 600; color: var(--ink); }
table.fin td.yr, table.fin th.yr { min-width: 88px; }
table.fin tr.is-total td.is-flag { color: var(--red); }
