:root, :root[data-theme="dark"] {
  --bg:#0f1217; --yta:#171b22; --yta2:#1e2330; --kant:#2a3040; --kant2:#353c4e;
  --text:#e6e9ef; --text2:#b4bac6; --dampad:#7d8596;
  --accent:#4c8df5; --accent2:#3d7fe6;
  --gron:#2eaa75; --gronbg:rgba(46,170,117,.13); --rod:#e5655f; --rodbg:rgba(229,101,95,.14); --gul:#d4a23a; --gulbg:rgba(212,162,58,.14);
  --rodtext:#f3a09b; --gultext:#e8c270; --grontext:#7fd6ad;
  --input:#11151c; --hover:rgba(255,255,255,.03); --hover2:rgba(255,255,255,.02); --tooltip:#0b0e13; --streck:#a0a6b0;
  --skugga:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.25);
  color-scheme:dark;
}
:root[data-theme="light"] {
  --bg:#f3f4f7; --yta:#ffffff; --yta2:#eef0f4; --kant:#d9dde5; --kant2:#c3c9d4;
  --text:#161a22; --text2:#3d4452; --dampad:#6b7382;
  --accent:#2f6fde; --accent2:#2a63c9;
  --gron:#1f8f5f; --gronbg:rgba(31,143,95,.12); --rod:#cc4a43; --rodbg:rgba(204,74,67,.11); --gul:#a67a14; --gulbg:rgba(190,140,30,.14);
  --rodtext:#9f2f29; --gultext:#7a5a0e; --grontext:#176b48;
  --input:#ffffff; --hover:rgba(0,0,0,.035); --hover2:rgba(0,0,0,.02); --tooltip:#ffffff; --streck:#6b7382;
  --skugga:0 1px 2px rgba(0,0,0,.08), 0 8px 24px rgba(0,0,0,.08);
  color-scheme:light;
}
* { box-sizing:border-box; }
body { margin:0; font:14px/1.45 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif; color:var(--text); background:var(--bg); }
/* ---------- layout: sidomeny + innehåll ---------- */
.sida { display:grid; grid-template-columns:224px minmax(0, 1fr); min-height:100vh; }
.sida.ihop { grid-template-columns:58px minmax(0, 1fr); }
.sidomeny { background:var(--yta); border-right:1px solid var(--kant); position:sticky; top:0; height:100vh; display:flex; flex-direction:column; overflow:hidden; }
.menytopp { display:flex; align-items:center; justify-content:space-between; height:54px; padding:0 12px 0 18px; border-bottom:1px solid var(--kant); flex:none; }
@font-face { font-family:"Familjen Grotesk"; font-style:normal; font-weight:600; font-display:swap; src:url("fonts/familjen-grotesk-latin-600-normal.woff2") format("woff2"); }
.logo { color:var(--text); font-family:"Familjen Grotesk", -apple-system, "Helvetica Neue", Arial, sans-serif; font-weight:600; font-size:21px; letter-spacing:-.5px; text-decoration:none; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.logomarke { width:26px; height:26px; flex:none; display:block; }
.logoinlogg { display:flex; align-items:center; justify-content:center; gap:12px; font-family:"Familjen Grotesk", -apple-system, "Helvetica Neue", Arial, sans-serif; font-weight:600; font-size:30px; letter-spacing:-.8px; }
.logoinlogg img { width:40px; height:40px; }
.logo:hover { text-decoration:none; }
#menyknapp { font-size:17px; padding:4px 6px; border-radius:6px; }
.sidomeny nav { padding:10px 10px; overflow-y:auto; flex:1; }
.menygrupp { margin-bottom:2px; }
.menyrad { display:flex; align-items:center; gap:0; padding-left:4px; }
.sidomeny button.menyexp, .sidomeny .menyexp { flex:none; border-radius:0; width:14px; height:14px; padding:0; border:0; background:transparent; color:var(--dampad); font-size:14px; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.sidomeny button.menyexp:hover { color:var(--text); border-color:transparent; background:transparent; }
.menyexp.tom { border:0; cursor:default; }
.menyrubrik { flex:1; display:flex; align-items:center; gap:10px; color:var(--text2); text-decoration:none; padding:7px 10px 7px 6px; border-radius:8px; font-weight:500; white-space:nowrap; min-width:0; }
.menyrubrik .initial { display:none; width:20px; text-align:center; font-weight:600; }
.menyrubrik:hover { color:var(--text); background:var(--yta2); text-decoration:none; }
.menygrupp.aktiv .menyrubrik { color:var(--text); font-weight:600; }
.menyrubrik.vald { background:var(--yta2); color:var(--text); }
.menysteg { display:none; margin:2px 0 6px 0; padding-left:24px; }
.menygrupp.oppen .menysteg { display:block; }
.menysteg a { display:block; color:var(--text2); text-decoration:none; padding:5px 12px; border-radius:7px; font-size:13px; white-space:nowrap; position:relative; }
.menysteg a::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--kant2); }
.menysteg a:hover { color:var(--text); text-decoration:none; }
.menysteg a.vald { color:var(--accent); font-weight:600; }
.menysteg a.vald::before { background:var(--accent); }
.menybotten { border-top:1px solid var(--kant); padding:10px 14px; flex:none; font-size:13px; }
.menybotten .utlogg .knappar { display:flex; gap:14px; margin-top:4px; }
.menybotten .utlogg .ikon { display:none; }
.menybotten .liten { font-size:11px; margin-top:6px; }
.sida.ihop .logotext, .sida.ihop .menysteg, .sida.ihop .menyexp, .sida.ihop .menyrubrik .text, .sida.ihop .menybotten .text { display:none; }
.sida.ihop .menyrubrik .initial { display:inline-block; }
.sida.ihop .menytopp { padding:0; justify-content:center; flex-direction:column; height:auto; gap:4px; padding:10px 0; }
.sida.ihop #temaknapp { margin:0; }
.sida.ihop .menyrubrik { justify-content:center; padding:8px 0; }
.sida.ihop .menybotten { padding:10px 6px; } .sida.ihop .menybotten .utlogg .knappar { flex-direction:column; gap:10px; align-items:center; margin:0; }
.sida.ihop .menybotten .utlogg .ikon { display:inline; font-size:15px; }
.innehall { min-width:0; }
.topplist { height:54px; display:flex; align-items:center; padding:0 28px; background:var(--yta); border-bottom:1px solid var(--kant); position:sticky; top:0; z-index:5; }
.topplist .brodsmula { color:var(--text2); font-size:13px; font-weight:500; }
button.lank { background:none; border:0; color:var(--text2); cursor:pointer; font:inherit; }
button.lank:hover { color:var(--text); }
main { padding:22px 28px 60px; max-width:1800px; }
#meddelande { padding:0 28px; } #meddelande:empty { padding:0; }
h1 { font-size:24px; font-weight:700; margin:4px 0 6px; letter-spacing:-.2px; }
h2 { font-size:15px; font-weight:600; margin:26px 0 10px; color:var(--text); }
h2 small { color:var(--dampad); font-weight:normal; font-size:12px; margin-left:8px; }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
code { background:var(--yta2); padding:1px 5px; border-radius:4px; font-size:12px; }

.kort { background:var(--yta); border:1px solid var(--kant); border-radius:12px; padding:16px 18px; margin-bottom:16px; }
.kort.smal { max-width:380px; margin:90px auto; box-shadow:var(--skugga); }
.kortrad { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px; margin-bottom:16px; }
.kortrad .kort { margin:0; }
.etikett { color:var(--dampad); font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.4px; }
.stort { font-size:26px; font-weight:700; margin:6px 0 4px; font-variant-numeric:tabular-nums; letter-spacing:-.3px; }
.stort.liten { font-size:19px; margin:0; }
.enhet { font-size:14px; color:var(--dampad); font-weight:500; }
.delta { font-size:13px; }
.upp { color:var(--gron); } .ner { color:var(--rod); }
.topprad { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.knappar { display:flex; gap:8px; }
.kortrubrik { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.kortrubrik h2 { margin:0; display:flex; align-items:center; gap:8px; }
.prick { display:inline-block; width:10px; height:10px; border-radius:50%; }
.legend { display:flex; gap:16px; font-size:12px; color:var(--text2); flex-wrap:wrap; }
.legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px; }
.legend i.streck { width:16px; height:0; border-top:2px dashed var(--streck); vertical-align:3px; }
.diagramyta { position:relative; }
svg.diagram { display:block; }
svg.diagram .rut { stroke:var(--kant); stroke-width:1; }
svg.diagram .axel { fill:var(--dampad); font-size:11px; }
svg.diagram .markor, svg.diagram polygon, svg.diagram polyline { pointer-events:none; }
.tooltip { position:absolute; background:var(--tooltip); border:1px solid var(--kant2); border-radius:8px; padding:8px 10px; font-size:12px; pointer-events:none; min-width:200px; box-shadow:var(--skugga); z-index:5; }
.tooltip .tiprubrik { font-weight:600; margin-bottom:5px; }
.tooltip div { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.tooltip div i { display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:6px; }
.tooltip div b { font-variant-numeric:tabular-nums; font-weight:600; }
.tooltip .summa { border-top:1px solid var(--kant); margin-top:4px; padding-top:4px; }
.bolagsrad { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:14px; margin-bottom:16px; }
.bolagsrad .kort { margin:0; }
.trio { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:10px; margin:6px 0 12px; font-variant-numeric:tabular-nums; }
.trio .etikett { text-transform:none; letter-spacing:0; margin-bottom:2px; }
.totalrad { display:flex; gap:28px; flex-wrap:wrap; align-items:center; font-variant-numeric:tabular-nums; color:var(--text2); }
.totalrad b { color:var(--text); margin-left:6px; }
.totalrad span:first-child { font-weight:600; color:var(--text); }

.tabell { border-collapse:separate; border-spacing:0; width:100%; background:var(--yta); border:1px solid var(--kant); border-radius:10px; overflow:hidden; font-size:12px; }
.tabell th, .tabell td { border-bottom:1px solid var(--kant); padding:5px 10px; text-align:left; vertical-align:middle; white-space:nowrap; }
.tabell th { background:var(--yta2); color:var(--text2); font-weight:600; font-size:11px; }
.tabell tbody tr:last-child td { border-bottom:0; }
.tabell tfoot th { background:var(--yta2); color:var(--text); border-top:1px solid var(--kant2); }
.tabell.lugn { border:0; background:transparent; border-radius:0; }
.tabell.lugn td { padding:5px 4px; border-bottom:1px solid var(--kant); }
.tabell .tal, .tal { text-align:right; font-variant-numeric:tabular-nums; }
.tabell tr.inaktiv td { color:var(--dampad); }
.tabell tr.granskad td { background:var(--gronbg); }
.tabell tr.salj td { font-style:italic; }
.tabell tr.ny td { background:var(--hover2); }
.tabell tr.redigerar td { background:var(--gulbg); }
.tabell tbody tr:hover td { background:var(--hover); }
.tabell tr.granskad:hover td { background:var(--gronbg); }
.tabell td.json { white-space:normal; font-family:ui-monospace, Menlo, monospace; font-size:11px; color:var(--dampad); max-width:380px; word-break:break-all; }
.tabell.oversikt { font-size:12px; }
section { overflow-x:auto; }

input, select, button { font:inherit; color:var(--text); }
input[type=text], input:not([type]), input[type=email], input[type=tel], input[type=password], input[type=date], input[type=month], input[type=file], select { border:1px solid var(--kant2); border-radius:6px; padding:5px 8px; background:var(--input); color:var(--text); }
input:focus, select:focus { outline:2px solid rgba(76,141,245,.45); outline-offset:0; border-color:var(--accent); }
input::placeholder { color:var(--dampad); }
input.tal { text-align:right; width:110px; } input.kort { width:100px; } input.bred { width:200px; } input.datum { width:140px; }
td.mv input { width:130px; text-align:right; }
select { max-width:260px; }
button { border:1px solid var(--kant2); background:var(--yta2); color:var(--text); border-radius:7px; padding:5px 12px; cursor:pointer; }
button:hover { border-color:var(--accent); }
button.primar, .knapp { background:var(--accent2); color:#fff; border:1px solid var(--accent2); text-decoration:none; padding:7px 14px; border-radius:8px; display:inline-block; font-weight:500; }
.knapp:hover { background:var(--accent); text-decoration:none; }
.knapp.sekundar { background:var(--yta2); color:var(--text); border-color:var(--kant2); }
button.ikon { border:0; background:none; padding:1px 4px; font-size:15px; color:var(--text2); }
button.ikon:hover { color:var(--text); }
button.ikon.gron { color:var(--gron); } button.ikon.rod { color:var(--rod); }
.verktyg { white-space:nowrap; }
.kalla { font-size:10px; color:var(--dampad); border:1px solid var(--kant); border-radius:3px; padding:0 3px; margin-left:4px; }
.fel { background:var(--rodbg); border:1px solid rgba(229,101,95,.4); color:var(--rodtext); padding:9px 12px; border-radius:8px; margin:8px 0; }
.varning { background:var(--gulbg); border:1px solid rgba(212,162,58,.4); color:var(--gultext); padding:9px 12px; border-radius:8px; margin:8px 0; }
.ok { background:var(--gronbg); border:1px solid rgba(46,170,117,.4); color:var(--grontext); padding:9px 12px; border-radius:8px; margin:8px 0; }
.gron { color:var(--gron); font-weight:600; } .rod { color:var(--rod); } .gul { color:var(--gul); } .dampad { color:var(--dampad); }
.periodrad { display:flex; align-items:center; gap:14px; margin-bottom:6px; }
.periodrad h1 { margin:0; }
.periodrad .hoppa { margin-left:auto; }
.flikar a { display:inline-block; padding:6px 11px; margin:0 4px 8px 0; border:1px solid var(--kant); border-radius:8px; background:var(--yta); text-decoration:none; color:var(--text2); }
.flikar a.aktiv { background:var(--accent2); color:#fff; border-color:var(--accent2); }
label { display:block; margin:8px 0; color:var(--text2); }
label input, label select { display:block; width:100%; margin-top:4px; }
.kort.smal h1 { text-align:center; }
.kort.smal button { width:100%; margin-top:12px; }
#meddelande { position:sticky; top:54px; z-index:9; }
#meddelande .fel { margin:0; border-radius:0; }

.bolagstabell { margin-top:4px; }
.bolagstabell .expkol { width:34px; padding-right:0; }
.bolagstabell tr.bolagrad td { background:var(--yta2); border-top:1px solid var(--kant2); }
.bolagstabell tr.bolagrad:hover td { background:var(--yta2); }
.bolagstabell td.indrag { padding-left:26px; }
button.exp { width:22px; height:22px; padding:0; line-height:18px; border-radius:6px; font-size:15px; text-align:center; color:var(--text2); background:var(--yta); border:1px solid var(--kant2); }
button.exp:hover { color:var(--text); border-color:var(--accent); }
.bolagstabell .prick { margin-right:4px; }
.flagga { display:inline-block; width:22px; font-size:15px; line-height:1; vertical-align:-1px; }
.vptabell tr.typrad td { background:var(--yta2); border-top:1px solid var(--kant2); }
.vptabell tr.vprad td { background:var(--yta); }
.vptabell tr.vprad td:nth-child(2) { padding-left:14px; }
.vptabell td.indrag { padding-left:36px; }
.ipostat { grid-template-columns:repeat(4, minmax(160px, 1fr)); }
.ipotabell td, .ipotabell th { white-space:normal; }
.ipotabell td:nth-child(3) { max-width:280px; font-size:12px; }
.malstapel { height:6px; background:var(--kant2); border-radius:3px; margin:6px 0 4px; overflow:hidden; }
div.malrad { display:flex; align-items:center; gap:10px; }
.malrad .malstapel { flex:1; margin:6px 0 4px; }
.malrad .pct { font-size:12px; color:var(--dampad); font-variant-numeric:tabular-nums; white-space:nowrap; }
.malrad .pct.upp { color:var(--gron); }
.malstapel i { display:block; height:100%; background:var(--accent); border-radius:3px; }
.rulla { overflow-x:auto; }
.insatttabell .ar, .insatttabell .total { border-left:1px solid var(--kant2); }
.insatttabell .man { font-size:12px; padding-left:6px; padding-right:6px; color:var(--text2); }
.insatttabell th.man { font-weight:500; }
.insatttabell .total { background:var(--hover2); }
.insatttabell th.argrupp { white-space:nowrap; }
.insatttabell button.arknapp { width:20px; height:20px; line-height:16px; font-size:14px; margin-right:4px; vertical-align:-2px; }
.insatttabell tr.arsmalrad th { font-weight:normal; font-size:12px; }
.periodrad { gap:10px; }
.knapp.pil { padding:6px 12px; font-size:16px; line-height:1; }
.kalender { position:relative; }
.periodknapp { background:none; border:0; padding:4px 8px; display:flex; align-items:center; gap:8px; cursor:pointer; border-radius:8px; }
.periodknapp:hover { background:var(--yta2); border:0; }
.periodknapp h1 { margin:0; }
.periodknapp .pilner { color:var(--dampad); font-size:13px; }
.kalpanel { background:var(--yta); border:1px solid var(--kant); border-radius:12px; padding:12px 14px; display:flex; gap:22px; flex-wrap:wrap; margin:4px 0 14px; }
.kalar { min-width:190px; }
.kalrubrik { font-weight:600; color:var(--text2); margin:0 0 6px 2px; font-size:13px; }
.kalgrid { display:grid; grid-template-columns:repeat(4, 1fr); gap:4px; }
.kalman { display:block; text-align:center; padding:6px 0; border-radius:6px; font-size:13px; color:var(--dampad); text-decoration:none; border:1px solid transparent; }
.kalman.har { color:var(--text); background:var(--yta2); }
.kalman:hover { border-color:var(--accent); text-decoration:none; }
.kalman.vald { background:var(--accent2); color:#fff; }
.kalman.klar { box-shadow:inset 0 0 0 2px var(--gron); }
.kalman.klar.vald { box-shadow:inset 0 0 0 2px var(--gron), inset 0 0 0 3px var(--yta); }
.badge.gron { display:inline-block; font-size:12px; font-weight:600; color:var(--gron); background:var(--gronbg); border:1px solid rgba(46,170,117,.4); border-radius:999px; padding:2px 9px; margin-left:10px; vertical-align:middle; }

/* import: avstämning från kontobesked */
.tabell.liten { font-size:12.5px; margin:6px 0 2px; }
.tabell.liten th, .tabell.liten td { padding:4px 8px; }
tr.detalj > td { padding-top:0; border-top:none; }
tr.avvik td, td.avvik { color:var(--gul); }
details > summary { cursor:pointer; }
.kortrad .kort h2 { margin-top:0; }

/* kontoöversikt: mellanrum mellan bolag */
.tabell.oversikt tr.skilj td { height:12px; padding:0; border:none; background:transparent; }
.tabell.oversikt tr.nybolag td { border-top:1px solid var(--kant2); }

/* utskrift av en sektion */
button.skrivut, button.skrivut-val { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; color:var(--dampad); background:none; border:1px solid var(--kant); border-radius:6px; cursor:pointer; vertical-align:middle; }
button.skrivut:hover, button.skrivut-val:hover { color:var(--text); border-color:var(--kant2); background:var(--hover); }
h2 button.skrivut { float:right; }
@media print {
  @page { size:A4; margin:14mm; }
  :root { --bg:#fff; --yta:#fff; --yta2:#f1f3f6; --kant:#cfd4dc; --kant2:#b9c0cb; --text:#111; --text2:#333; --dampad:#666; --input:#fff; --gronbg:#e6f4ec; --rodbg:#fbe9e8; --gulbg:#fbf3e0; }
  html { color-scheme:light; }
  body { background:#fff; color:#111; font-size:11px; }
  .sidomeny, .topplist, #meddelande, .topprad .knappar, button.skrivut, button.skrivut-val, button.exp, a.visa-alla, a.visa-noll { display:none !important; }
  .sida { display:block; min-height:0; } .innehall { min-height:0; } main { padding:0; max-width:none; }
  html, body { height:auto; min-height:0; overflow:visible; }
  body.utskrift main > *:not(.utskriv) { display:none !important; }
  /* sektioner får delas över sidor (annars blir sida 1 tom när en sektion är längre än en sida) – men inte mitt i en rad */
  .sektion { page-break-inside:auto; break-inside:auto; }
  h1, h2 { break-after:avoid; page-break-after:avoid; }
  tr { break-inside:avoid; page-break-inside:avoid; }
  thead { display:table-header-group; }
  .kort, .tabell { box-shadow:none; }
  body.utskrift .sektion:not(.utskriv) { display:none !important; }
  body.utskrift .topprad { display:none !important; }
  body.utskrift main::before { content:"Valvet · " attr(data-titel); display:block; font-size:11px; color:#666; margin-bottom:8px; }
  tr[hidden] { display:none !important; }
  .tabell th, .tabell td { padding:3px 5px; font-size:9.5px; white-space:normal; }
  .tabell { font-size:9.5px; width:100%; table-layout:auto; }
  /* +-kolumnen: ingen bredd men cellerna finns kvar – annars förskjuts kolumnerna i tabeller med fast layout */
  col.c-exp { width:0 !important; }
  .expkol, .bolagstabell tfoot th:first-child { width:0 !important; padding:0 !important; border:0 !important; font-size:0 !important; overflow:hidden; }
  .bdlank, .innehavchip { display:none !important; }
  .skarm { display:none !important; } .tryck { display:inline !important; }
  .innehavtabell th, .innehavtabell td { font-size:8.5px !important; padding:3px 3px !important; } .innehavtabell td.tal, .innehavtabell th.tal { white-space:nowrap; }
  .innehavtabell col.c-namn { width:17% !important; }
  .bevtabell th, .bevtabell td { font-size:7.5px !important; padding:2px 2px !important; text-overflow:clip !important; } .bevtabell td.tal, .bevtabell td.val, .bevtabell td.stj { white-space:nowrap; }
  .bevtabell td.stj { letter-spacing:0; } .bevtabell td:last-child { white-space:normal; }
  .bevtabell td, .bevtabell th { text-overflow:clip; }
  .bevtabell col.k-namn { width:15% !important; } .bevtabell col.k-ticker { width:8% !important; } .bevtabell col.k-datum { width:8% !important; }
  .bevtabell col.k-kurs { width:7% !important; } .bevtabell col.k-val { width:4% !important; } .bevtabell col.k-utv { width:6% !important; }
  .bevtabell col.k-uta { width:6% !important; } .bevtabell col.k-da { width:5% !important; } .bevtabell col.k-stj { width:6% !important; }
  .bevtabell col.k-pe { width:4% !important; } .bevtabell col.k-not { width:11% !important; }
  .bevtabell td.val, .bevtabell th.val { font-size:6.5px !important; padding-left:1px !important; }
  .gruppflikar, .sokrad, .bevsektion .dragghandtag, .bevsektion .pennknapp, .undertoggle, .grupptoggle { display:none !important; }
  .ipotabell th, .ipotabell td, table.ipo th, table.ipo td { font-size:8px; }
  .tabell td.tal { white-space:nowrap; }
  .rulla { overflow:visible; }
  .kortrad { grid-template-columns:repeat(3, 1fr); }
}

/* månadsavstämning: sektionsverktyg */
h2 .sektverktyg { float:right; font-weight:normal; font-size:12.5px; }
h2 .sektverktyg form.inline { display:inline; }
h2 .sektverktyg label { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; cursor:pointer; }
h2 .sektverktyg label input { margin:0; }
button.liten { font-size:12px; padding:3px 9px; }
section.klar > h2 { color:var(--gron); }

/* bolagsnamnet i kontoöversikten dämpas inte av att första kontot är inaktivt */
.tabell.oversikt tr.inaktiv td:first-child b { color:var(--text); opacity:1; }
.tabell.oversikt tr.inaktiv td:first-child { opacity:1; color:var(--text); }

.stort .kvar { font-size:20px; font-weight:400; font-style:italic; color:var(--dampad); margin-left:2px; white-space:nowrap; }
.kort.stat .under, .kort.stat .delta, .kort.stat > .dampad { font-size:12px; }

.importrad { margin:12px 0 4px; } .importrad form { display:flex; align-items:center; gap:12px; } .importrad label.knapp { cursor:pointer; }

/* import: statuschips */
.chip { display:inline-block; font-size:11.5px; padding:1px 8px; border-radius:999px; border:1px solid var(--kant2); margin-right:6px; white-space:nowrap; }
.chip.gron { color:var(--gron); border-color:rgba(46,170,117,.5); background:var(--gronbg); font-weight:500; }
.chip.gul { color:var(--gul); border-color:rgba(212,162,58,.5); background:var(--gulbg); }
.importtabell tr.st-dubblett td { color:var(--dampad); }
.importtabell select { max-width:260px; }

.kopplingar .rad { margin:4px 0 10px; } .kopplingar .rad select { margin:0 8px; } .kopplingar table { max-width:620px; margin-top:6px; }

/* avstämningssektioner: gruppering per bolag */
.tabell.styck tr.skilj td { height:10px; padding:0; border:none; background:transparent; }
.tabell.styck tr.bolagrubrik td { font-weight:600; color:var(--text2); background:var(--yta2); padding:4px 10px; font-size:12.5px; border-top:1px solid var(--kant2); }

.tabell tr.kvitterad td { color:var(--dampad); }

#temaknapp { font-size:15px; padding:4px 6px; border-radius:6px; margin:0 auto; }

.indrag2 { padding-left:44px !important; font-size:12.5px; }
.tabell tr.detaljrad td { background:var(--hover2); font-size:12.5px; padding-top:3px; padding-bottom:3px; }
button.exp.exp2 { width:18px; height:18px; font-size:13px; line-height:14px; margin-left:12px; }

input.notering { width:100%; min-width:180px; background:transparent; border:1px solid transparent; color:var(--text2); padding:3px 6px; }
input.notering:hover, input.notering:focus { border-color:var(--kant2); background:var(--input); color:var(--text); }

/* ---------- lobby ---------- */
.valvnamn { padding:6px 16px 2px; font-size:12px; color:var(--dampad); letter-spacing:.3px; text-transform:uppercase; }
.menybotten .utlogg .knappar a.lank { color:var(--text2); text-decoration:none; } .menybotten .utlogg .knappar a.lank:hover { color:var(--text); }
.menybotten .utlogg .knappar { flex-wrap:wrap; }
body.lobbysida { margin:0; background:var(--bg); color:var(--text); }
.lobbytopp { height:56px; box-sizing:border-box; padding:0 28px; border-bottom:1px solid var(--kant); display:flex; align-items:center; gap:28px; background:var(--yta); }
.lobbytopp .logo { text-decoration:none; color:var(--text); font-size:21px; font-weight:600; }
.lobbynav { display:flex; gap:4px; flex:1; }
.lobbynav a { color:var(--text2); text-decoration:none; padding:6px 10px; border-radius:6px; font-size:13.5px; }
.lobbynav a:hover { background:var(--hover); color:var(--text); } .lobbynav a.vald { background:var(--yta2); color:var(--text); }
.lobbyanv { display:flex; align-items:center; gap:14px; font-size:13px; color:var(--text2); }
.lobbyanv form { margin:0; } .knapp.liten, .lank.liten { font-size:12px; padding:4px 10px; }
.lobbymain { max-width:1180px; margin:0 auto; padding:28px 28px 60px; }
.lobbymain #meddelande { max-width:1180px; margin:0 auto; }
.valvrad { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:16px; margin-top:20px; }
.valvkort { margin:0; }
.valvknapp { width:100%; text-align:left; background:var(--yta); border:1px solid var(--kant); border-radius:12px; padding:18px 20px; color:var(--text); cursor:pointer; font:inherit; display:flex; flex-direction:column; gap:10px; min-height:150px; box-sizing:border-box; }
.valvknapp:hover { border-color:var(--accent); background:var(--yta2); }
.valvkort.valt .valvknapp { border-color:var(--accent); }
.valvknapp .rad { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.valvknapp .namn { font-size:17px; font-weight:600; }
.valvknapp .nyckel { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-top:2px; }
.valvknapp .nyckel span { display:flex; flex-direction:column; gap:2px; } .valvknapp .nyckel i { font-style:normal; font-size:11px; color:var(--dampad); } .valvknapp .nyckel b { font-size:15px; }
.valvknapp .oppna { margin-top:auto; }
.valvkort.nytt { display:flex; align-items:center; justify-content:center; border:1px dashed var(--kant2); border-radius:12px; color:var(--dampad); text-decoration:none; min-height:150px; }
.valvkort.nytt:hover { color:var(--text); border-color:var(--accent); }
.chip.eget { color:#9bc0ff; border-color:rgba(76,141,245,.5); background:rgba(76,141,245,.14); }
.chip.kund { color:var(--grontext); border-color:rgba(46,170,117,.5); background:var(--gronbg); }
.chip.test { color:var(--gultext); border-color:rgba(212,162,58,.5); background:var(--gulbg); }
.kodfalt { font-size:20px; letter-spacing:4px; width:150px; }
.inlogg h1 { text-align:center; margin-bottom:6px; } .inlogg .liten { font-size:11.5px; }
.kort.varningkort { border-color:rgba(212,162,58,.6); background:var(--gulbg); }
code.losen { font-size:18px; letter-spacing:1px; user-select:all; }
.formrad { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; } .formrad label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--text2); }
.formrad fieldset { border:1px solid var(--kant); border-radius:8px; padding:6px 10px; display:flex; gap:12px; flex-wrap:wrap; } .formrad legend { font-size:12px; color:var(--dampad); padding:0 4px; }
.formkol { display:flex; flex-direction:column; gap:12px; max-width:380px; } .formkol label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--text2); }
.kryss { display:inline-flex; align-items:center; gap:4px; font-size:12.5px; margin-right:8px; white-space:nowrap; }
.radform { display:flex; flex-wrap:wrap; gap:6px; align-items:center; } form.inline { display:inline; margin:0; }
.kortrad.tva { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:16px; }
img.qr { background:#fff; padding:8px; border-radius:8px; display:block; }
tr.inaktiv td { opacity:.55; }

/* användare */
.anvtabell th, .anvtabell td { vertical-align:top; padding:10px 10px; }
.anvtabell tbody tr:hover td { background:var(--hover2); }
.anvtabell .namnrad { display:flex; flex-direction:column; gap:1px; }
.anvtabell .chip { margin:0 4px 3px 0; }
.anvtabell .atgarder { white-space:nowrap; } .anvtabell .atgarder form { margin-left:10px; } .anvtabell .atgarder .lank.liten { padding:0; }
.anvtabell .lank.ner { color:var(--rodtext); }
details.redigera summary { cursor:pointer; list-style:none; } details.redigera summary::-webkit-details-marker { display:none; }
details.redigera summary:hover { text-decoration:underline dotted var(--dampad); }
details.redigera[open] summary { margin-bottom:8px; }
details.redigera .radform { background:var(--yta2); border:1px solid var(--kant); border-radius:8px; padding:8px 10px; white-space:normal; max-width:420px; }
.kryss input[type=checkbox] { display:inline-block; width:auto; margin:0 4px 0 0; accent-color:var(--accent); }
.kryssrad { display:flex; flex-wrap:wrap; gap:4px 14px; }
.brevkort { border-color:rgba(76,141,245,.5); }
.brevrubrik { display:flex; align-items:center; gap:14px; font-size:15px; }
.brevrad { display:flex; gap:18px; align-items:flex-start; flex-wrap:wrap; }
.brevtext { flex:1; min-width:320px; } .brevtext pre { white-space:pre-wrap; font:inherit; font-size:13px; background:var(--yta2); border:1px solid var(--kant); border-radius:8px; padding:10px 12px; margin:6px 0 0; }
.knappar.kol { flex-direction:column; align-items:stretch; }
.lobbymain .rulla { overflow-x:auto; } .anvtabell { width:100%; }
.anvtabell .atgarder form { margin-left:8px; } .anvtabell .atgarder { font-size:12.5px; }
.menybotten .utlogg .knappar { display:flex; flex-wrap:wrap; gap:2px 12px; align-items:baseline; margin-top:4px; }
.menybotten .utlogg .knappar a.lank, .menybotten .utlogg .knappar button.lank { padding:0; margin:0; font-size:13px; line-height:1.5; }
.lobbyfot { max-width:1180px; margin:0 auto; padding:0 28px 20px; font-size:11px; }

dialog.utskriftsval { background:var(--yta); color:var(--text); border:1px solid var(--kant2); border-radius:12px; padding:18px 22px; min-width:320px; box-shadow:var(--skugga); }
dialog.utskriftsval::backdrop { background:rgba(0,0,0,.45); }
dialog.utskriftsval h3 { margin:0 0 4px; } dialog.utskriftsval .val { display:flex; flex-direction:column; gap:8px; margin:12px 0 18px; }
dialog.utskriftsval .knappar { justify-content:flex-end; }
.topprad .knappar button.skrivut, .topprad .knappar button.skrivut-val { margin:0; width:32px; height:32px; }
@media print { dialog { display:none !important; } }
.summatabell tfoot th { font-size:13px; } .sektion + .sektion { margin-top:0; }
/* bevakning */
.bevtabell { table-layout:fixed; width:100%; }
.bevtabell col.k-namn { width:24%; } .bevtabell col.k-ticker { width:12%; } .bevtabell col.k-datum { width:11%; } .bevtabell col.k-kurs { width:8%; } .bevtabell col.k-utv { width:7%; } .bevtabell col.k-not { width:24%; } .bevtabell col.k-exp { width:6%; }
.bevtabell td { overflow:hidden; text-overflow:ellipsis; }
.bevtabell tr.ny input { width:100%; box-sizing:border-box; }
a.bevnamn { color:var(--text); text-decoration:none; } a.bevnamn:hover { color:var(--accent); }
tr.bevrad.oppen td { background:var(--yta2); }
tr.detaljrad > td { background:var(--yta2); padding:14px 14px 16px; white-space:normal; overflow:visible; }
.bevdetalj .formrad { align-items:flex-end; } .bevdetalj .formrad label { overflow:visible; margin:0; }
.bevdetalj .formrad input, .bevdetalj .formrad input[type=date] { height:34px; box-sizing:border-box; margin-top:4px; }
.bevdetalj .formrad .knapp, .bevdetalj .formrad .lank { height:34px; box-sizing:border-box; display:inline-flex; align-items:center; }
.kurstabell tr.ny input, .kurstabell tr.ny input[type=date] { height:30px; box-sizing:border-box; }
.bevdetalj { display:flex; flex-direction:column; gap:14px; }
.bevdetalj .formrad label.vax { flex:1; min-width:220px; }
.bevdetalj .formrad input { box-sizing:border-box; }
.kurslogg { max-width:760px; } .kurstabell.liten th, .kurstabell.liten td { padding:4px 8px; font-size:12.5px; }
h2 .gruppmeny { display:inline-block; margin-left:10px; font-weight:normal; font-size:12.5px; vertical-align:middle; }
details.menyval { position:relative; } details.menyval summary { list-style:none; cursor:pointer; } details.menyval summary::-webkit-details-marker { display:none; }
details.menyval .popform { position:absolute; top:calc(100% + 6px); left:0; z-index:20; background:var(--yta); border:1px solid var(--kant2); border-radius:10px; padding:10px 12px; display:flex; gap:8px; box-shadow:var(--skugga); white-space:nowrap; }
.topprad details.menyval .popform { left:auto; right:0; }
h2 .lank.liten { color:var(--dampad); } h2 .lank.liten:hover { color:var(--text); }
@media print { tr.ny, tr.detaljrad, .gruppmeny, details.menyval { display:none !important; } }
input.kort { padding:5px 8px; margin:0; border-radius:6px; background:var(--input); }   /* .kort är även kortklassen – återställ för fält */
label input.kort { margin-top:4px; }
.bevtabell col.k-not { width:22%; } .bevtabell col.k-exp { width:8%; }
.bevtabell tr.ny td:last-child { overflow:visible; }
.bevtabell { font-size:12px; } .bevtabell th { font-size:11px; } .bevtabell th, .bevtabell td { padding:5px 10px; }
.bevtabell tr.ny input, .bevtabell tr.ny input[type=date], .bevdetalj input, .bevdetalj input[type=date], .kurstabell input { font-size:12px; } .bevtabell tr.ny input, .bevtabell tr.ny input[type=date] { height:30px; box-sizing:border-box; }

.bevtabell tr.underrubrik td { background:var(--yta2); padding:4px 10px; font-size:12px; color:var(--text2); border-top:1px solid var(--kant); }
.bevtabell tr.underrubrik td span { font-weight:600; }
.bevtabell td.tva { display:flex; gap:6px; } .bevtabell td.tva input.undergrupp { max-width:45%; }

/* fält i tabeller följer tabellens storlek */
.tabell input, .tabell select, .tabell input[type=date], .tabell input[type=month] { font-size:12px; }
/* zebraränder */
:root { --zebra: rgba(255,255,255,.028); --hover-stark: rgba(255,255,255,.065); }
:root[data-theme="light"] { --zebra: rgba(0,0,0,.03); --hover-stark: rgba(0,0,0,.065); }
.tabell tbody tr.zebra > td { background:var(--zebra); }
.tabell tbody tr.zebra.bolagrad > td, .tabell tbody tr.zebra.typrad > td, .tabell tbody tr.zebra.vprad > td { background:var(--zebra); }
.tabell tbody tr:hover > td { background:var(--hover-stark); }
@media print { .tabell tbody tr.zebra > td { background:#f4f5f7 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
.kombolista { position:absolute; z-index:50; background:var(--yta); border:1px solid var(--kant2); border-radius:8px; box-shadow:var(--skugga); padding:4px; max-height:260px; overflow-y:auto; font-size:12px; }
.kombooption { padding:6px 10px; border-radius:6px; cursor:pointer; white-space:nowrap; color:var(--text); }
.kombooption:hover, .kombooption.markerad { background:var(--yta2); }
.kombooption.vald { color:var(--accent); font-weight:600; }
.dragghandtag { display:inline-flex; align-items:center; justify-content:center; width:18px; height:22px; margin:0 6px 0 -4px; color:var(--dampad); cursor:grab; border-radius:4px; vertical-align:-3px; }
.dragghandtag:hover { color:var(--text); background:var(--hover-stark); }
body.draglage .bevsektion > table, body.draglage .bevsektion > form, body.draglage .bevsektion .gruppmeny { display:none; }
body.draglage .bevsektion { border:1px dashed var(--kant2); border-radius:8px; padding:4px 10px; margin-top:8px !important; background:var(--yta); }
body.draglage .bevsektion h2 { margin:4px 0; }
body.draglage, body.draglage * { cursor:grabbing !important; }
.bevsektion.dras { opacity:.45; border-color:var(--accent); }
@media print { .dragghandtag { display:none !important; } }
h2 .gruppmeny { margin-left:6px; }
.pennknapp { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:5px; color:var(--dampad); opacity:.55; }
.bevsektion h2:hover .pennknapp { opacity:1; }
.pennknapp:hover, details[open] > .pennknapp { color:var(--text); background:var(--hover-stark); opacity:1; }

/* fasta kolumnbredder så att sektionernas tabeller ligger i linje */
.innehavtabell, .utdtabell { table-layout:fixed; width:100%; }
.innehavtabell col.c-exp, .utdtabell col.c-exp { width:38px; }
.innehavtabell col.c-namn { width:auto; } .innehavtabell col.c-antal { width:6%; } .innehavtabell col.c-gav { width:7%; } .innehavtabell col.c-ansk { width:9%; } .innehavtabell col.c-dag { width:9%; } .innehavtabell col.c-utv { width:8%; } .innehavtabell col.c-pct { width:6%; } .innehavtabell col.c-uta { width:7%; } .innehavtabell col.c-da { width:6%; } .innehavtabell col.c-pe { width:5%; } .innehavtabell col.c-utd { width:8%; }
.utdtabell col.c-namn { width:22%; } .utdtabell col.c-tal { width:auto; }
.innehavtabell td, .innehavtabell th, .utdtabell td, .utdtabell th { overflow:hidden; text-overflow:ellipsis; }
.utdtabell thead th { white-space:normal; vertical-align:bottom; line-height:1.25; overflow:visible; }
.utdtabell col.c-namn { width:24%; }

.bevtabell col.k-namn { width:14%; } .bevtabell col.k-ticker { width:8%; } .bevtabell col.k-datum { width:8%; } .bevtabell col.k-kurs { width:7%; } .bevtabell col.k-utv { width:6%; }
.bevtabell col.k-uta { width:7%; } .bevtabell col.k-da { width:6%; } .bevtabell col.k-pe { width:5%; } .bevtabell col.k-not { width:8%; } .bevtabell col.k-stj { width:6%; } .bevtabell col.k-val { width:4%; }
.bolagsfakta { display:flex; flex-wrap:wrap; gap:8px 26px; align-items:flex-end; font-size:12px; }
.bolagsfakta > div { display:flex; flex-direction:column; gap:2px; }
.utdhistorik .staplar { display:flex; align-items:flex-end; gap:4px; height:46px; }
.utdhistorik .stapel { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; width:22px; height:100%; }
.utdhistorik .stapel i { display:block; width:14px; background:var(--accent); border-radius:2px 2px 0 0; min-height:1px; }
.utdhistorik .stapel small { font-size:9px; color:var(--dampad); margin-top:2px; }
.innehavtabell thead th, .bevtabell thead th { white-space:normal; vertical-align:bottom; line-height:1.25; overflow:visible; }

dl.faktalista { display:grid; grid-template-columns:max-content 1fr; gap:4px 14px; margin:0 0 10px; font-size:12.5px; }
dl.faktalista dt { color:var(--dampad); } dl.faktalista dd { margin:0; }
.kopplingstabell tr.saknas td { background:var(--gulbg); }
/* sök aktie (bevakning) */
.sokrad { margin:-4px 0 18px; }
.soklada { position:relative; display:flex; align-items:center; gap:8px; background:var(--input); border:1px solid var(--kant2); border-radius:8px; padding:0 12px; height:38px; max-width:560px; color:var(--dampad); }
.soklada:focus-within { border-color:var(--accent); outline:2px solid rgba(76,141,245,.3); }
.soklada input[type=search] { border:0; background:transparent; flex:1; height:100%; padding:0; outline:none; font-size:13px; color:var(--text); }
.sokresultat { position:absolute; top:calc(100% + 6px); left:0; width:min(720px, calc(100vw - 300px)); z-index:40; }
.sokresultat:empty { display:none; }
.soklista { list-style:none; margin:0; padding:6px; background:var(--yta); border:1px solid var(--kant2); border-radius:10px; box-shadow:var(--skugga); max-height:60vh; overflow-y:auto; }
.soklista li + li { border-top:1px solid var(--kant); }
.soktraff summary { list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:10px; padding:8px 8px; border-radius:6px; font-size:13px; color:var(--text); }
.soktraff summary::-webkit-details-marker { display:none; }
.soktraff summary:hover { background:var(--yta2); }
.soktraff summary .namn { font-weight:600; }
.soktraff summary .chip { margin-left:auto; }
.soktraff[open] summary { background:var(--yta2); }
.soktraff form { padding:10px 8px 12px; } .soktraff .formrad label.vax { flex:1; min-width:180px; }
.soktraff .formrad input { font-size:12px; height:30px; box-sizing:border-box; }
.sokinfo { background:var(--yta); border:1px solid var(--kant2); border-radius:10px; padding:10px 12px; font-size:12.5px; box-shadow:var(--skugga); }
.soklista + .sokinfo { box-shadow:none; border:0; background:transparent; padding:6px 10px 0; }

/* kolumngrupp Köpvärden (Innehav): bara en ram i tabellens kantfärg – bakgrunder och zebraränder som övriga celler */
.innehavtabell .kg-f { border-left:1px solid var(--kant); }
.innehavtabell .kg-s { border-right:1px solid var(--kant); }
.innehavtabell .kg-topp { border-top:1px solid var(--kant); }
.innehavtabell .kg-botten { border-bottom:1px solid var(--kant); }
.innehavtabell .kg-s + .kg-f { border-left:0; }
.innehavtabell tr.grupphuvud th { background:transparent; border-bottom:0; padding:5px 10px; }
.innehavtabell tr.grupphuvud th.kg { text-align:center; color:var(--text2); font-weight:600; font-size:11px; border-top-left-radius:6px; border-top-right-radius:6px; }
.har-forklaring { cursor:help; text-decoration:underline dotted var(--dampad); text-underline-offset:3px; }
.forklaring { position:absolute; z-index:60; max-width:320px; background:var(--tooltip); color:var(--text); border:1px solid var(--kant2); border-radius:8px; padding:7px 10px; font-size:12px; font-weight:normal; line-height:1.4; box-shadow:var(--skugga); pointer-events:none; white-space:pre-line; }
@media print { .har-forklaring { text-decoration:none; } .forklaring { display:none; } }

/* Innehav: sortering */
.sortval { display:flex; align-items:center; gap:6px; color:var(--text2); font-size:12px; margin:0; }
.sortval select { display:inline-block; width:auto; margin:0; font-size:12px; padding:4px 6px; }
#sortriktning { min-width:30px; padding:4px 8px; }
.innehavtabell th[data-sort], .sorttabell th[data-sort] { cursor:pointer; user-select:none; }
.innehavtabell th[data-sort]:hover, .sorttabell th[data-sort]:hover { color:var(--text); }
.innehavtabell th.sorterad, .sorttabell th.sorterad { color:var(--text); }
.innehavtabell th.sorterad::after, .sorttabell th.sorterad::after { content:' ↑'; font-weight:normal; }
.innehavtabell th.sorterad.fallande::after, .sorttabell th.sorterad.fallande::after { content:' ↓'; }
@media print { .sortval, #sortriktning { display:none !important; } .innehavtabell th.sorterad::after, .sorttabell th.sorterad::after { content:''; } }

/* Länk till Börsdata vid bolagsnamn */
a.bdlank { color:var(--text2); opacity:.55; margin-left:5px; vertical-align:-1px; text-decoration:none; }
a.bdlank:hover { opacity:1; color:var(--accent, var(--text)); }
@media print { a.bdlank { display:none; } }

/* Undermapp i menyn (Administration → Register) */
.undermapprad { display:flex; align-items:center; gap:4px; position:relative; }
.undermapprad::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--kant2); }
.undermapprad .undexp { margin-left:6px; }
.menysteg .undermapprad a.undermapprubrik { padding-left:4px; flex:1; }
.menysteg .undermapprad a.undermapprubrik::before { display:none; }
.undermapp.aktiv .undermapprubrik { color:var(--text); font-weight:600; }
.menysteg2 { display:none; padding-left:18px; position:relative; }
.menysteg2::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--kant2); }
.undermapp.oppen .menysteg2 { display:block; }
.utdtabell th .nw { white-space:nowrap; }

/* Månadsavstämning: samma kolumnrutnät i alla sektioner (Datum först, Lägg till sist) */
.tabell.styck { table-layout:fixed; }
.tabell.styck td, .tabell.styck th { overflow:hidden; text-overflow:ellipsis; }
.tabell.styck tr.ny input, .tabell.styck tr.ny select { width:100%; max-width:none; box-sizing:border-box; }
.tabell.styck td.nyknapp, .tabell.styck td.verktyg { text-align:right; white-space:nowrap; }
.tabell.styck td.verktyg { overflow:visible; }
.tabell tbody tr.granskad > td, .tabell tbody tr.granskad.zebra > td, .tabell tbody tr.granskad.zebra:hover > td { background:var(--gronbg); }   /* granskad (grön) går före zebraränder */
.autook { display:inline-block; padding:0 6px; cursor:help; }

/* Möjlig dubblett i månadsavstämningen */
.dubblett { color:var(--gul, #d9a400); font-size:11px; font-weight:600; cursor:help; }
td.verktyg .dubblett { margin-left:4px; }

/* Minusposter i månadsavstämningen: röd markering i kanten och röda negativa belopp */
.tabell.styck tr.minus > td:first-child { box-shadow:inset 3px 0 0 var(--rod, #e5534b); }
.tabell.styck td.neg { color:var(--rod, #e5534b); }
.bevsektion + .bevsektion { margin-top:0; } .bevsektion > h2 { margin:15px 0 8px; }   /* tätare mellan grupperna på Bevakning */
section + section, .sektion + .sektion { margin-top:0; } section > h2 { margin:15px 0 8px; }   /* 15 px mellan sektionerna på alla sidor */

/* Snabb bekräftelseruta vid muspekaren (t.ex. Starta om) */
.snabbfraga { position:fixed; z-index:200; background:var(--yta); border:1px solid var(--kant2); border-radius:10px; box-shadow:var(--skugga); padding:12px 14px; min-width:220px; }
.snabbfraga .sf-text { font-size:13px; margin-bottom:10px; }
.snabbfraga .sf-knappar { display:flex; gap:8px; }

/* Bevakning: hopfällda grupper visar bara namnet */
.bevsektion .grupptoggle { margin:0 4px 0 2px; vertical-align:1px; }
.bevsektion .gruppantal { display:none; margin-left:8px; font-weight:normal; font-size:12px; }
.bevsektion.ihop .gruppantal { display:inline; }
.bevsektion.ihop > table, .bevsektion.ihop > form { display:none; }
@media print { .bevsektion.ihop > table { display:table; } .bevsektion .grupptoggle, #fallalla, .bevsektion .gruppantal { display:none !important; } }

/* Bevakning: gruppflikar (ligger kvar överst vid scroll) */
.gruppflikar { position:sticky; top:54px; z-index:4; display:flex; flex-wrap:wrap; gap:6px; padding:10px 0; margin:6px 0 0; background:var(--bg); border-bottom:1px solid var(--kant); }
.gruppflikar button { font-size:12px; padding:4px 11px; border-radius:999px; border:1px solid var(--kant2); background:var(--yta); color:var(--text2); cursor:pointer; line-height:1.4; }
.gruppflikar button:hover { border-color:var(--accent); }
.gruppflikar button b { font-weight:600; color:var(--text); margin-right:5px; }
.gruppflikar button small { opacity:.7; }
.gruppflikar button.vald { background:var(--accent); border-color:var(--accent); color:#fff; }
.gruppflikar button.vald b { color:#fff; }
.bevsektion.dold { display:none; }
body.draglage .bevsektion.dold { display:block; }
@media print { .gruppflikar { display:none !important; } body.utskrift .bevsektion.dold.utskriv, .bevsektion.dold { display:block; } }

/* Bevakning: etikett Innehav högerställd i namnkolumnen */
.bevtabell td:first-child { position:relative; }
.bevtabell .innehavchip { position:absolute; right:8px; top:50%; transform:translateY(-50%); margin:0; font-size:9.5px; padding:0 5px; line-height:1.45; }
.bevtabell tr.bevrad td.harchip { padding-right:62px; }

/* Bevakning: utdelningsbetyg ★–★★★ och varning ! */
.bevtabell th.stj, .bevtabell td.stj { text-align:center; white-space:nowrap; letter-spacing:1px; }
.bevtabell td.stj .guld { color:#e3b341; }
.bevtabell td.stj .tom { color:var(--kant2); }
.bevtabell td.stj .davarning { color:var(--rod); font-weight:700; margin-left:4px; cursor:help; }
.bevsektion tr.stjdold { display:none; }
.gruppflikar .flikskiljare { width:1px; align-self:stretch; background:var(--kant2); margin:2px 4px; }
.gruppflikar .stjflik b { color:#e3b341; letter-spacing:1px; }
.gruppflikar .stjflik.vald b { color:#fff; }

/* Bevakning: byt namn på undergrupp */
tr.underrubrik td { overflow:visible; }
tr.underrubrik .undermeny { display:inline-block; margin-left:6px; vertical-align:middle; position:relative; font-weight:normal; }
tr.underrubrik .pennknapp { width:18px; height:18px; opacity:0; }
tr.underrubrik:hover .pennknapp, tr.underrubrik details[open] > .pennknapp { opacity:1; }
tr.underrubrik .popform { position:absolute; left:0; top:22px; z-index:30; }

/* Bevakning: valutakolumner (tomt = SEK) så att beloppen står i linje */
.bevtabell th.val, .bevtabell td.val { text-align:left; padding-left:4px; color:var(--dampad); font-size:10.5px; white-space:nowrap; }
.bevtabell td:nth-child(3) { text-overflow:clip; }

/* Bevakning: hopfälld undergrupp visar bara rubriken */
tr.underrubrik .undertoggle { margin-right:6px; vertical-align:1px; }
tbody.underblock.uihop tr.bevrad, tbody.underblock.uihop tr.detaljrad { display:none; }
@media print { tbody.underblock.uihop tr.bevrad { display:table-row; } tr.underrubrik .undertoggle { display:none !important; } }
.bevtabell td:has(+ td.val), .bevtabell th:has(+ th.val) { padding-right:3px; } .bevtabell th.val, .bevtabell td.val { padding-left:1px; }   /* valutan tätt intill beloppet */
/* Månadsavstämning: ursprungsetiketten har fast bredd så att ✓ ○ ✎ × står i linje oavsett csv/nota/migrering/manuell */
.tabell.styck td.verktyg .kalla { display:inline-block; width:62px; box-sizing:border-box; text-align:center; vertical-align:middle; overflow:hidden; text-overflow:ellipsis; }
.tabell.styck td.verktyg .kalla.tom { border-color:transparent; background:transparent; }
/* Månadsväljaren: varje år i egen ram med årtalet centrerat */
.kalpanel { gap:14px; }
.kalar { border:1px solid var(--kant); border-radius:10px; padding:8px 10px 10px; background:var(--yta2); background:color-mix(in srgb, var(--yta2) 40%, transparent); }
.kalrubrik { text-align:center; margin:0 0 8px; font-size:13px; }

.tryck { display:none; }   /* kortare rubriker som bara visas på utskrift */
@media print { .tabell tfoot th, .tabell tfoot td { color:#111 !important; } .tabell tfoot th:nth-child(2) { white-space:nowrap; } }

/* Lobby: ändra valv (rad som fälls ut under valvet) */
.valvtabell .sokvag { font-size:11px; margin-top:2px; max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.valvtabell tr.valvredigera td { background:var(--yta2); }
.valvtabell tr.valvredigera .formrad { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; }
.valvtabell tr.valvredigera label.vax { flex:1; min-width:220px; }
.valvtabell tr.valvredigera label.kryss { display:flex; gap:6px; align-items:center; padding-bottom:6px; }
.valvtabell tr.valvredigera label.kryss input { width:auto; margin:0; display:inline-block; }
.valvtabell tr.valvredigera label.kryss { flex-direction:row; height:34px; padding-bottom:0; }

/* Lobby: Välj valv – ren lista */
/* ---------- lobbyn: välj valv ---------- */
.valvval { max-width:620px; margin:56px auto 0; position:relative; }
.valvval::before { content:""; position:absolute; inset:-60px -140px -40px; z-index:-1; pointer-events:none;
  background-image:linear-gradient(var(--kant) 1px, transparent 1px), linear-gradient(90deg, var(--kant) 1px, transparent 1px); background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 35%, rgba(0,0,0,.55), transparent 70%); mask-image:radial-gradient(ellipse at 50% 35%, rgba(0,0,0,.55), transparent 70%); opacity:.55; }
.valvval h1 { margin:0 0 6px; font-size:26px; letter-spacing:-.4px; }
.vvforra { font-size:12px; color:var(--dampad); text-align:center; }
.vvforra .vvip { font-family:ui-monospace, "SF Mono", Menlo, monospace; color:var(--text2); }
.vvforra .vvny { font-size:11px; color:var(--gultext); margin-left:4px; }
.valvval h1 + .valvlista { margin-top:18px; }
.vvstatus { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.vvchip { display:inline-flex; align-items:center; gap:6px; font:500 11px/1 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing:.3px; text-transform:uppercase;
  color:var(--dampad); border:1px solid var(--kant); background:var(--yta); border-radius:999px; padding:0 10px 0 8px; height:24px; margin:0; }
.vvchip svg { width:12px; height:12px; }
.vvchip.vvok { color:var(--grontext); border-color:color-mix(in srgb, var(--gron) 40%, var(--kant)); background:var(--gronbg); }
.vvchip.vvbla { color:#8fdcff; border-color:rgba(70,170,255,.55); background:rgba(14,60,120,.45);
  box-shadow:0 0 0 1px rgba(90,190,255,.12) inset, 0 0 10px rgba(60,160,255,.35); text-shadow:0 0 6px rgba(120,210,255,.55); }
:root[data-theme="light"] .vvchip.vvbla { color:#0b5aa8; background:rgba(40,130,230,.12); border-color:rgba(30,120,220,.45); box-shadow:0 0 8px rgba(40,140,240,.25); text-shadow:none; }
.vvchip.vvrod { color:var(--rodtext); border-color:color-mix(in srgb, var(--rod) 50%, var(--kant)); background:var(--rodbg); }
.vvchip.vvvarn { color:var(--gultext); border-color:color-mix(in srgb, var(--gul) 40%, var(--kant)); background:var(--gulbg); }
.valvlista { display:flex; flex-direction:column; gap:6px; }
.valvpost { margin:0; }
.valvpost button { width:100%; display:flex; align-items:center; gap:14px; padding:9px 16px; background:linear-gradient(180deg, var(--yta), color-mix(in srgb, var(--yta) 85%, var(--bg)));
  border:1px solid var(--kant); border-radius:11px; color:var(--text); font:inherit; text-align:left; cursor:pointer; position:relative;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 18px rgba(0,0,0,.18); transition:border-color .15s, transform .15s, box-shadow .15s; }
.valvpost button:hover { border-color:color-mix(in srgb, var(--vfarg-h, var(--accent)) 55%, var(--kant)); transform:translateY(-1px);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent), 0 10px 26px rgba(0,0,0,.25); }
.vinitial { --vfarg:var(--accent); flex:none; width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-weight:650; font-size:14px; color:#fff;
  background:linear-gradient(145deg, color-mix(in srgb, var(--vfarg) 88%, #fff), var(--vfarg) 55%, color-mix(in srgb, var(--vfarg) 70%, #000));
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset, 0 4px 12px color-mix(in srgb, var(--vfarg) 35%, transparent); text-shadow:0 1px 1px rgba(0,0,0,.25); }
.vinitial.kund { --vfarg:#5b6b86; } .vinitial.test { --vfarg:#7a6a4a; }
.vinitial[style] { } /* egen färg vinner via inline --vfarg */
.vinitial.mini { width:22px; height:22px; border-radius:6px; font-size:11px; display:inline-flex; margin-right:8px; vertical-align:-5px; box-shadow:none; }
.valvpost .vtext { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; line-height:1.3; }
.valvpost .vnamn { font-weight:600; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:-.1px; }
.valvpost .vtyp { font-weight:500; font-size:11px; color:var(--dampad); border:1px solid var(--kant2); border-radius:4px; padding:0 5px; margin-left:6px; vertical-align:2px; }
.valvpost .vunder { font-size:12px; color:var(--dampad); display:flex; flex-wrap:wrap; gap:0 6px; }
.valvpost .vsep { opacity:.6; }
.valvpost .vmeta, .valvpost .vandring { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:11.2px; }
.valvpost .vandring { color:var(--text2); display:flex; align-items:center; gap:6px; margin-top:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.valvpost .vdot { width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent); flex:none; }
.valvpost .voppet { font:600 10.5px/1 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing:.5px; text-transform:uppercase; color:var(--grontext);
  background:var(--gronbg); border:1px solid color-mix(in srgb, var(--gron) 45%, transparent); padding:4px 9px 4px 7px; border-radius:999px; display:inline-flex; align-items:center; gap:5px; }
.valvpost .voppet svg { width:11px; height:11px; filter:drop-shadow(0 0 4px var(--gron)); }
.valvpost .vpil { color:var(--dampad); display:flex; } .valvpost .vpil svg { width:16px; height:16px; }
.valvpost button:hover .vpil { color:var(--text); }
.valvpost.valt button { border-color:color-mix(in srgb, var(--gron) 45%, var(--kant)); }
.vvfot { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; margin-top:14px; padding:0 4px; font-size:12.5px; }
.vvfot a { color:var(--dampad); } .vvfot a:hover { color:var(--text); }
.vvfot .vvversion { justify-self:end; }
.vvversion { font:500 11px ui-monospace, "SF Mono", Menlo, monospace; color:var(--dampad); letter-spacing:.3px; }
:root[data-theme="light"] .valvpost button { box-shadow:0 1px 2px rgba(0,0,0,.05), 0 6px 18px rgba(0,0,0,.05); }
/* färgval i Hantera valv */
.fargval { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.fargval .etikett { font-size:12px; color:var(--dampad); margin-right:4px; }
.fargval label { margin:0; cursor:pointer; }
.fargval input { position:absolute; opacity:0; width:0; height:0; }
.fprov { --vfarg:var(--accent); display:block; width:22px; height:22px; border-radius:6px; background:var(--vfarg); border:2px solid transparent; box-shadow:0 0 0 1px var(--kant) inset; }
.fprov.std { background:repeating-linear-gradient(45deg, var(--kant2) 0 3px, transparent 3px 6px); }
.fargval input:checked + .fprov { border-color:var(--text); }
.fargval input:focus-visible + .fprov { outline:2px solid var(--accent); outline-offset:2px; }
/* användare: flikar, logg, konto */
.anvflikar { display:flex; gap:4px; border-bottom:1px solid var(--kant); margin:18px 0 12px; }
.anvflikar button { background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; padding:8px 12px; color:var(--dampad); font:inherit; font-weight:500; cursor:pointer; margin-bottom:-1px; }
.anvflikar button:hover { color:var(--text); }
.anvflikar button.vald { color:var(--text); border-bottom-color:var(--accent); }
.anvflikar i { font-style:normal; font-size:11px; background:var(--yta2); border:1px solid var(--kant); border-radius:999px; padding:1px 7px; margin-left:4px; color:var(--dampad); }
.avatar.raderad { background:transparent; color:var(--dampad); border:1px dashed var(--kant2); }
.orgroll { color:var(--text2); }
.anvlogg { background:var(--yta); border:1px solid var(--kant); border-radius:10px; padding:6px 0; max-height:560px; overflow:auto; }
.anvloggrad { display:grid; grid-template-columns:12px 120px 1fr auto; gap:10px; align-items:baseline; padding:7px 14px; font-size:13px; }
.anvloggrad + .anvloggrad { border-top:1px solid var(--hover-stark); }
.anvloggrad .lprick { width:8px; height:8px; border-radius:50%; background:var(--kant2); align-self:center; }
.anvloggrad.t-ny .lprick { background:var(--gron); } .anvloggrad.t-rod .lprick { background:var(--rod); }
.anvloggrad.t-beh .lprick { background:var(--accent); } .anvloggrad.t-sak .lprick { background:var(--gul); }
.anvloggrad .ltid { font:11.5px ui-monospace, "SF Mono", Menlo, monospace; color:var(--dampad); white-space:nowrap; }
.anvloggrad .lav { font-size:12px; color:var(--dampad); white-space:nowrap; }
.kontohuvud { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.kontohuvud h1 { margin:0; }
.avatar.stor { width:48px; height:48px; font-size:20px; }
.kontonamn { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-weight:600; color:var(--text); }
.kontovalv { list-style:none; padding:0; margin:0 0 12px; }
.kontovalv li { display:flex; align-items:center; gap:8px; padding:6px 0; flex-wrap:wrap; }
.kontovalv li + li { border-top:1px solid var(--kant); }

/* Lobby: användare & behörigheter */
.anvsok { width:220px; }
.anvstat { display:grid; grid-template-columns:repeat(6, 1fr); gap:1px; background:var(--kant); border:1px solid var(--kant); border-radius:10px; overflow:hidden; margin:14px 0 18px; }
.anvstat > div { background:var(--yta); padding:10px 14px; display:flex; flex-direction:column; gap:2px; }
.anvstat b { font-size:20px; font-weight:600; } .anvstat span { font-size:11.5px; color:var(--dampad); text-transform:uppercase; letter-spacing:.4px; }
.anvtabell2 { font-size:13px; }
.anvtabell2 td { vertical-align:middle; }
.anvtabell2 tbody.anvrad + tbody.anvrad > tr:first-child > td { border-top:1px solid var(--kant); }
.anvtabell2 tbody.inaktiv > tr:first-child { opacity:.55; }
.anvid { display:flex; align-items:center; gap:10px; }
.avatar { flex:none; width:32px; height:32px; border-radius:50%; background:#5b6b86; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:13px; }
.avatar.sys { background:var(--accent); }
.pill { display:inline-block; font-size:11px; font-weight:600; padding:1px 8px; border-radius:999px; border:1px solid var(--kant2); color:var(--text2); white-space:nowrap; }
.pill.gron { color:var(--gron); border-color:rgba(46,170,117,.45); background:var(--gronbg); }
.pill.rod { color:var(--rod); border-color:rgba(229,83,75,.45); background:var(--rodbg); }
.pill.gul { color:var(--gul); border-color:rgba(212,162,58,.45); background:var(--gulbg); }
.pill.bla { color:#9bc0ff; border-color:rgba(76,141,245,.5); background:rgba(76,141,245,.14); }
.atkomst { display:flex; flex-wrap:wrap; gap:5px; }
.vchip { display:inline-flex; align-items:stretch; border:1px solid var(--kant2); border-radius:6px; overflow:hidden; font-size:11.5px; white-space:nowrap; }
.vchip > span { padding:1px 7px; }
.vchip > i, .rollforklaring i { font-style:normal; font-weight:600; padding:1px 7px; font-size:11px; }
i.r-admin { background:rgba(76,141,245,.18); color:#9bc0ff; } i.r-redigera { background:var(--gulbg); color:var(--gul); } i.r-las { background:var(--yta2); color:var(--text2); }
.anvdetalj > td { background:var(--yta2); padding:14px 16px !important; }
.anvpaneler { display:grid; grid-template-columns:minmax(380px, 1.6fr) 1fr 1fr; gap:12px; }
.anvpanel { background:var(--yta); border:1px solid var(--kant); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
.anvpanelrubrik { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.anvfot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:4px; }
.anvfot label.inline { display:flex; align-items:center; gap:8px; font-size:12.5px; } .anvfot label.inline select { width:auto; margin:0; }
.anvatg { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.knapp.farlig { color:var(--rod); border-color:rgba(229,83,75,.45); }
.anvfakta { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:12.5px; margin:0; } .anvfakta dt { color:var(--dampad); } .anvfakta dd { margin:0; }
.behmatris { width:100%; border-collapse:collapse; font-size:12.5px; }
.behmatris th { font-size:11px; color:var(--dampad); font-weight:600; text-align:center; padding:4px 6px; border-bottom:1px solid var(--kant); }
.behmatris th:first-child, .behmatris td:first-child { text-align:left; }
.behmatris td { padding:5px 6px; border-bottom:1px solid var(--kant); text-align:center; }
.behmatris tr:last-child td { border-bottom:0; }
.vprick { display:inline-block; width:8px; height:8px; border-radius:2px; margin-right:7px; background:#5b6b86; } .vprick.eget { background:var(--accent); } .vprick.test { background:#7a6a4a; }
.behval { display:inline-flex; cursor:pointer; margin:0; }
.behval input { position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.behval span { width:16px; height:16px; border-radius:50%; border:1.5px solid var(--kant2); display:inline-block; transition:all .1s; }
.behval:hover span { border-color:var(--accent); }
.behval input:checked + span { border-width:5px; }
.behval.r-ingen input:checked + span { border-color:var(--dampad); }
.behval.r-las input:checked + span { border-color:var(--text2); }
.behval.r-redigera input:checked + span { border-color:var(--gul); }
.behval.r-admin input:checked + span { border-color:var(--accent); }
.behval input:focus-visible + span { outline:2px solid var(--accent); outline-offset:2px; }
.anvny { margin:0 0 16px; }
.anvgrid { display:grid; grid-template-columns:minmax(260px, 1fr) minmax(380px, 1.4fr); gap:20px; margin-top:8px; }
.anvfalt { display:flex; flex-direction:column; gap:8px; }
.rollforklaring { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:14px; font-size:12px; color:var(--dampad); }
.rollforklaring i { border-radius:5px; margin-right:6px; }
input[type=search] { border:1px solid var(--kant2); border-radius:6px; padding:6px 10px; background:var(--input); color:var(--text); font:inherit; font-size:13px; }
.anvfalt label { font-size:12.5px; } .anvfalt label input, .anvfalt label select { margin-top:3px; }

.chip.privat { color:#c9a6ff; border-color:rgba(160,110,240,.5); background:rgba(160,110,240,.12); font-size:10.5px; padding:0 6px; }

/* Register: talfält högerställda som talen ovanför; Nr-kolumnen smal */
.tabell.register th.nrkol, .tabell.register td.nrkol { width:56px; }
.tabell.register td.tal input { text-align:right; margin-left:auto; display:block; }
.tabell.register td.nrkol input { width:48px; }

/* Fordringar → Analys */
.fastat { display:grid; grid-template-columns:repeat(5, 1fr); gap:12px; margin:6px 0 4px; }
.fastat .kort { padding:12px 14px; display:flex; flex-direction:column; gap:3px; }
.fastat .kort span { font-size:11px; color:var(--dampad); text-transform:uppercase; letter-spacing:.4px; }
.fastat .kort b { font-size:21px; font-weight:600; } .fastat .kort small { font-size:11.5px; }
.gultext { color:var(--gul); }
.fagraf { padding:14px 16px; } .fagraf svg { display:block; overflow:visible; }
.farad2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.faleg { display:flex; gap:16px; font-size:11.5px; color:var(--text2); margin-top:10px; }
.faleg i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:5px; vertical-align:-1px; }
.faleg i.bolag { background:var(--accent); } .faleg i.privat { background:#a06ef0; } .faleg i.snart { background:var(--gul); } .faleg i.ater { background:var(--kant2); }
@media print { .farad2 { grid-template-columns:1fr 1fr; } .fastat .kort b { font-size:15px; } }

/* Ägarstruktur & närstående */
.asny { margin:6px 0 4px; } .asny .formrad { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; } .asny label select { min-width:200px; }
.astabell { max-width:760px; } .astabell td:first-child { width:170px; color:var(--text2); }
.asbolag h2 .pill { margin-left:8px; vertical-align:2px; }

/* Låneförbud: markering på fordran */
.lfvarning { font-size:10.5px; font-weight:600; border-radius:999px; padding:0 7px; margin-left:6px; cursor:help; white-space:nowrap; }
.lfvarning.rod { color:var(--rod); background:var(--rodbg); border:1px solid rgba(229,83,75,.45); }
.lfvarning.gul { color:var(--gul); background:var(--gulbg); border:1px solid rgba(212,162,58,.45); }

.astabell td.asknappar { white-space:nowrap; width:70px; } .astabell tr.asred > td { background:var(--yta2); }
.astabell tr.asred .formrad { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; } .astabell tr.asred select { min-width:180px; }
.anstabell { max-width:900px; } .anstabell td:first-child { width:auto; color:var(--text); }

/* ---------- koncernstruktur ---------- */
.ksform .ksnyrad { flex-basis:100%; display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; padding:10px 12px; border:1px dashed var(--kant2); border-radius:8px; background:var(--yta2); }
.ksform .ksnyrad b { flex-basis:100%; font-size:12px; color:var(--text2); font-weight:600; }
.ksform .ksnyrad[hidden] { display:none; }
.ksandel { display:inline-flex; align-items:center; gap:5px; } .ksandel input { width:70px; }
.ksschema { overflow-x:auto; padding:14px; text-align:center; } .ksschema svg { max-width:none; }
.ksbox rect { fill:var(--yta); stroke:var(--kant2); stroke-width:1.2; } .ksbox { cursor:pointer; }
.ksbox.agare rect { stroke:var(--accent); stroke-width:1.6; fill:color-mix(in srgb, var(--accent) 7%, var(--yta)); }
.ksbox.person rect { stroke:#a06ef0; stroke-width:2.6; fill:color-mix(in srgb, #a06ef0 7%, var(--yta)); }
.ksbox:hover rect { stroke-width:2.8; }
.ksnamn { font-size:13px; font-weight:650; fill:var(--text); } .ksnr { font-size:11.5px; fill:var(--text2); font-variant-numeric:tabular-nums; }
.ksvarn { font-size:10px; fill:var(--gul); font-weight:650; }
.kslinje { stroke:var(--text2); stroke-width:1.3; stroke-dasharray:4 3; } .kslinje.k { stroke:var(--accent); stroke-width:1.8; stroke-dasharray:none; }
.kspilspets { fill:var(--text2); } .kspilspets.k { fill:var(--accent); }
.kspilg { cursor:pointer; } .kspilg:hover .kslinje { stroke-width:2.6; }
.ksetikett { fill:var(--bg); stroke:var(--kant); } .ksandeltext { font-size:11px; font-weight:650; fill:var(--text); font-variant-numeric:tabular-nums; }
.ksleg i.ks-person { background:transparent; border:2.5px solid #a06ef0; } .ksleg i.ks-agare { background:transparent; border:1.6px solid var(--accent); } .ksleg i.ks-motpart { background:transparent; border:1.2px solid var(--kant2); }
@media print { .ksny, .asknappar, .asred { display:none !important; } .ksschema { overflow:visible; } .ksschema svg { max-width:100%; height:auto; } .ksetikett { fill:#fff; } }
.ksutan { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; } .ksvalj { cursor:pointer; }
.kslinje { stroke-linejoin:round; }

/* ---------- nätverksanalys (lobby) ---------- */
.nvkpi { display:grid; grid-template-columns:repeat(5, 1fr); gap:12px; margin:14px 0; }
.nvkpi .kort { padding:12px 14px; display:flex; flex-direction:column; gap:3px; } .nvkpi span { font-size:11.5px; color:var(--text2); } .nvkpi b { font-size:22px; font-variant-numeric:tabular-nums; }
.rodtext { color:var(--rod); } .gultext { color:var(--gul); }
.nvverktyg { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; padding:10px 14px; margin-bottom:12px; }
.nvverktyg input[type=search] { width:240px; }
.nvfilter { display:flex; flex-wrap:wrap; gap:6px; }
.nvchip { display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:3px 9px; border:1px solid var(--kant); border-radius:999px; cursor:pointer; user-select:none; white-space:nowrap; }
.nvchip input { margin:0; width:auto; } .nvchip i { width:10px; height:10px; border-radius:2px; display:inline-block; }
.nvchip i.l-ager { background:var(--accent); } .nvchip i.l-styr { background:var(--text2); } .nvchip i.l-huvudman { background:#2bb5c9; } .nvchip i.l-nar { background:#a06ef0; } .nvchip i.l-anst { background:#3fb27f; } .nvchip i.l-lan { background:#e0794a; }
.nvyta { display:grid; grid-template-columns:1fr 320px; gap:12px; align-items:start; }
.nvgraf { padding:0; position:relative; overflow:hidden; } .nvgraf svg { display:block; cursor:grab; background:var(--bg); border-radius:inherit; } .nvgraf svg:active { cursor:grabbing; }
.nvhjalp { position:absolute; left:12px; bottom:8px; pointer-events:none; }
.nvpanel { padding:14px 16px; max-height:640px; overflow:auto; position:sticky; top:60px; }
.nvpanel h3 { margin:0 0 2px; font-size:16px; } .nvpanel h4 { margin:12px 0 4px; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--text2); }
.nvpanel ul { list-style:none; padding:0; margin:0; } .nvpanel li { padding:3px 0; font-size:13px; border-bottom:1px solid var(--kant); }
.nvpanel .knapp { margin-top:12px; }
.nvpvalv { display:flex; flex-wrap:wrap; gap:4px; margin:8px 0; }
.nvvalvchip { display:inline-block; font-size:11px; padding:1px 7px; margin:1px 3px 1px 0; border:1.5px solid var(--kant2); border-radius:999px; }
.nvprick { display:inline-block; width:7px; height:7px; border-radius:50%; vertical-align:1px; }
.nvleg { margin-top:16px; display:grid; gap:4px; } .nvleg svg { vertical-align:-2px; margin-right:4px; } .nvleg-p { fill:var(--text2); } .nvleg-b { fill:var(--text2); }
.nvl { stroke:var(--text2); stroke-opacity:.55; fill:none; }
.nvl.l-ager { stroke:var(--accent); stroke-opacity:.8; } .nvl.l-styr { stroke-dasharray:2 3; } .nvl.l-huvudman { stroke:#2bb5c9; stroke-dasharray:6 3; }
.nvl.l-nar { stroke:#a06ef0; stroke-dasharray:5 4; stroke-opacity:.85; } .nvl.l-anst { stroke:#3fb27f; } .nvl.l-lan { stroke:#e0794a; stroke-opacity:.85; } .nvl.avsl { stroke-opacity:.2; }
.nvpilspets { fill:var(--text2); }
.nvlab { font-size:9.5px; fill:var(--text2); text-anchor:middle; pointer-events:none; paint-order:stroke; stroke:var(--bg); stroke-width:3px; }
.nvn { cursor:pointer; } .nvform { stroke:var(--bg); stroke-width:1.5; }
.nvring { fill:none; stroke:var(--gul); stroke-width:2.5; }
.nvtxt { font-size:11px; fill:var(--text); pointer-events:none; paint-order:stroke; stroke:var(--bg); stroke-width:3px; }
.nvn.vald .nvform { stroke:var(--text); stroke-width:3; } .nvn.traff .nvform { stroke:var(--gul); stroke-width:3; }
.nvn.dim, .nvn.tona { opacity:.15; } .nvl.dim, .nvlab.dim { opacity:.06; }
.nvrad { cursor:pointer; } .nvrad:hover td { background:var(--yta2); }
.chip.gul { color:var(--gul); border-color:var(--gul); }
@media (max-width:1100px) { .nvyta { grid-template-columns:1fr; } .nvkpi { grid-template-columns:repeat(2, 1fr); } }
.register tr.reggrupp th { text-align:left; padding:14px 8px 6px; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--text2); background:transparent; border-bottom:1px solid var(--kant2); }
.register tr.reggrupp th small { font-weight:400; margin-left:6px; text-transform:none; letter-spacing:0; }
.nvlayout { display:inline-flex; border:1px solid var(--kant2); border-radius:8px; overflow:hidden; }
.nvlayout button { background:transparent; border:0; padding:4px 11px; font-size:12px; color:var(--text2); cursor:pointer; } .nvlayout button + button { border-left:1px solid var(--kant2); }
.nvlayout button.vald { background:var(--accent); color:#fff; }
.nvkolrub text { font-size:11px; text-transform:uppercase; letter-spacing:.08em; fill:var(--text2); font-weight:600; }
.valvradera { margin-top:12px; padding-top:10px; border-top:1px dashed var(--kant2); align-items:center; gap:10px; }
.valvradera input { width:180px; }
.knapp.fara { background:transparent; color:var(--rod); border:1px solid var(--rod); } .knapp.fara:hover { background:var(--rod); color:#fff; }
.menysteg .menysteg2 a { white-space:normal; line-height:1.3; }
.ksram rect { fill:color-mix(in srgb, var(--accent) 3%, transparent); stroke:var(--kant2); stroke-width:1; }
.ksram.separat rect { fill:color-mix(in srgb, #a06ef0 4%, transparent); stroke:#a06ef0; stroke-opacity:.55; stroke-dasharray:6 5; }
.ksramtitel { font-size:10.5px; fill:var(--text2); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.ksram.separat .ksramtitel { fill:#b98cf5; }
.ksnar path { stroke:#a06ef0; stroke-width:1.6; stroke-dasharray:3 4; }
.ksnar text { font-size:10.5px; fill:#b98cf5; paint-order:stroke; stroke:var(--yta); stroke-width:4px; }
.ksleg i.ks-ram { background:transparent; border:1.5px dashed #a06ef0; } .ksleg i.ks-nar { background:transparent; border-top:2px dashed #a06ef0; height:0; border-radius:0; margin-bottom:3px; }
.astabell tr.ksgrupprad th { text-align:left; padding:12px 8px 5px; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--text2); background:transparent; border-bottom:1px solid var(--kant2); }
.astabell tr.ksgrupprad.separat th { color:#b98cf5; border-bottom-color:rgba(160,110,240,.5); }
.astabell tr.ksgrupprad th small { text-transform:none; letter-spacing:0; font-weight:400; margin-left:6px; color:var(--text2); }
@media print { .ksram rect { fill:none; } }
.nvchip i.l-revisor { background:#e86aa6; } .nvl.l-revisor { stroke:#e86aa6; stroke-dasharray:1 3; stroke-linecap:round; stroke-opacity:.9; }
.avatar.vadm { background:#3fb27f; }

/* ---------- anpassningsbar översikt ---------- */
.ovgrid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:15px 18px; align-items:stretch; }
.ovgrid > .ovmod.halv { display:flex; flex-direction:column; }
.ovgrid > .ovmod.halv > .kort, .ovgrid > .ovmod.halv > .ovkpi { flex:1; }
.ovgrid > .ovmod.halv > .ovkpi > .kort { height:100%; }
.ovgrid > .ovmod.halv > .kort.ovkort { display:flex; flex-direction:column; }
.ovgrid > .ovmod { grid-column:1 / -1; margin:0; min-width:0; }
.ovgrid > .ovmod.halv { grid-column:auto; }
.ovgrid > .ovmod.dold, .kortdold { display:none; }
.ovgrid > .ovmod > h2:first-of-type { margin-top:0; }
.ovgrid > .ovmod .rulla, .ovgrid > .ovmod.halv { overflow-x:auto; }
.ovkontroll { display:none; }
body.ovredigera .ovkontroll { display:flex; align-items:center; gap:8px; margin:-2px 0 6px; font-size:13.5px; }
body.ovredigera .ovkontroll b { flex:1; }
.ovhandtag { cursor:grab; color:var(--text2); letter-spacing:-2px; padding:2px 4px; user-select:none; }
.ovknappar { display:inline-flex; gap:5px; }
.ovknappar button { background:transparent; border:1px solid var(--kant2); color:var(--text2); border-radius:6px; padding:1px 7px; font-size:11.5px; cursor:pointer; line-height:1.5; }
.ovknappar button.vald { color:var(--text); border-color:var(--text2); background:var(--yta2); }
body.ovredigera .ovgrid > .ovmod { outline:1.5px dashed color-mix(in srgb, var(--accent) 45%, transparent); outline-offset:6px; border-radius:10px; }
body.ovredigera .ovgrid > .ovmod.dold { display:block; opacity:.38; outline-color:var(--kant2); max-height:56px; overflow:hidden; }
body.ovredigera .ovgrid > .ovmod.dras { opacity:.35; }
body.ovredigera .kortdold { display:block; opacity:.35; position:relative; cursor:pointer; }
body.ovredigera .kortdold::after { content:"dold"; position:absolute; top:8px; right:10px; font-size:10.5px; color:var(--text2); }
body.ovredigera [data-kort] { cursor:pointer; }
body.ovredigera .ovgrid, body.ovredigera .ovband { margin-right:290px; }
.ovband { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:4px 0 22px; padding:10px 14px; border:1px solid var(--accent); border-radius:10px;
  background:color-mix(in srgb, var(--accent) 10%, transparent); position:sticky; top:8px; z-index:20; backdrop-filter:blur(6px); }
.ovband[hidden], .ovpanel[hidden] { display:none; }
.ovband .ovhjalp { flex:1; min-width:200px; }
.ovseg { display:inline-flex; border:1px solid var(--kant2); border-radius:8px; overflow:hidden; }
.ovseg button { background:transparent; border:0; padding:4px 10px; font-size:12px; color:var(--text2); cursor:pointer; } .ovseg button + button { border-left:1px solid var(--kant2); }
.ovseg button.vald { background:var(--accent); color:#fff; }
.ovpanel { position:fixed; right:0; top:0; bottom:0; width:270px; overflow:auto; background:var(--yta); border-left:1px solid var(--kant); padding:20px 16px; z-index:30; box-shadow:-8px 0 24px rgba(0,0,0,.25); }
.ovpanel h3 { margin:0 0 4px; font-size:14px; } .ovpanel p { margin:0 0 10px; }
.ovgrupp { font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--text2); margin:14px 0 6px; }
.ovlagg { display:flex; width:100%; justify-content:space-between; align-items:center; padding:7px 10px; margin-bottom:6px; border:1px solid var(--kant); border-radius:8px; background:transparent; color:var(--text); font-size:12.5px; cursor:pointer; text-align:left; }
.ovlagg:hover { border-color:var(--accent); } .ovlagg b { color:var(--accent); font-size:15px; } .ovlagg i { display:none; font-style:normal; font-size:11px; color:var(--text2); }
.ovlagg.pasidan { opacity:.45; cursor:default; } .ovlagg.pasidan b { display:none; } .ovlagg.pasidan i { display:inline; }
.ovkort { padding:14px 16px; margin:0; }
.ovman { display:grid; grid-template-columns:repeat(12, 1fr); gap:5px; margin-bottom:8px; height:110px; align-items:end; }   /* samma baslinje som staplarna i Utdelningar per månad */
.ovman a { height:38px; border-radius:6px; font-size:10.5px; display:flex; align-items:flex-end; justify-content:center; padding-bottom:4px; color:var(--text2); text-decoration:none; border:1px solid var(--kant2); }
.ovman a.klar { background:color-mix(in srgb, var(--gron, #3fb27f) 55%, transparent); border-color:transparent; color:#fff; }
.ovman a.kvar { background:color-mix(in srgb, var(--gul) 28%, transparent); border-color:color-mix(in srgb, var(--gul) 50%, transparent); color:var(--text); }
.ovman a:hover { outline:2px solid var(--accent); }
.ovstaplar { display:grid; grid-template-columns:repeat(12, 1fr); gap:6px; align-items:end; }
.ovstapel { display:flex; flex-direction:column; align-items:center; gap:4px; }
.ovstapelyta { position:relative; width:100%; height:110px; border-bottom:1px solid var(--kant); }
.ovstapelyta i { position:absolute; bottom:0; border-radius:3px 3px 0 0; }
.ovstapelyta i.fjol { left:8%; right:8%; background:transparent; border:1.5px solid var(--kant2); border-bottom:0; }
.ovstapelyta i.iar { left:22%; right:22%; background:var(--accent); opacity:.9; }
.ovstapel span { font-size:10px; color:var(--text2); }
.ovkpi { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:10px; }
.ovkpi .kort { margin:0; padding:12px 14px; display:flex; flex-direction:column; gap:3px; } .ovkpi span { font-size:11.5px; color:var(--text2); } .ovkpi b { font-size:20px; font-variant-numeric:tabular-nums; }
.ovlista { margin:0; } .ovlista td { padding:6px 6px; } .ovlista .betyg { color:var(--gul); white-space:nowrap; } .ovlista td.ovpill { width:90px; }
@media (max-width:900px) { .ovgrid { grid-template-columns:minmax(0, 1fr); } .ovgrid > .ovmod.halv { grid-column:1 / -1; } body.ovredigera .ovgrid, body.ovredigera .ovband { margin-right:0; } .ovpanel { position:static; width:auto; box-shadow:none; } }
@media print { .ovgrid { display:block; } .ovgrid > .ovmod { margin-bottom:15px; } .ovband, .ovpanel, .ovkontroll, #ovanpassa { display:none !important; } }
.chip.revisor { color:#f19ac6; border-color:rgba(232,106,166,.55); background:rgba(232,106,166,.13); font-size:10.5px; padding:0 6px; }

/* ---------- inställning: gradering på Bevakning ---------- */
.bvform { padding:22px 24px; max-width:880px; }
.bvskala { display:flex; height:42px; border-radius:9px; overflow:hidden; border:1px solid var(--kant); }
.bvseg { display:flex; align-items:center; justify-content:center; font-size:12.5px; white-space:nowrap; overflow:hidden; transition:width .2s; }
.bvseg.s0 { background:var(--yta2); color:var(--text2); } .bvseg.s1 { background:rgba(212,162,58,.16); color:var(--gul); } .bvseg.s2 { background:rgba(212,162,58,.30); color:var(--gul); }
.bvseg.s3 { background:rgba(212,162,58,.48); color:#fff; } .bvseg.s4 { background:rgba(229,101,95,.28); color:var(--rodtext, #f3a09b); }
.bvaxel { position:relative; height:22px; margin-bottom:18px; }
.bvaxel span { position:absolute; top:4px; transform:translateX(-50%); font-size:11px; color:var(--text2); white-space:nowrap; }
.bvaxel span:first-child { transform:none; }
.bvfalt { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
.bvfalt label { display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:var(--text2); padding:12px; border:1px solid var(--kant); border-radius:9px; background:var(--yta2); }
.bvstj { color:var(--gul); font-size:16px; letter-spacing:1px; } .bvstj.varn { color:var(--rod); font-weight:700; }
.bvin { display:inline-flex; align-items:center; gap:6px; color:var(--text); } .bvin input { width:80px; text-align:right; font-size:15px; }
.bvin input.fel { border-color:var(--rod); }
.bvfalt small { font-size:11px; color:var(--text2); }
.bvexempel { font-size:12.5px; color:var(--text2); margin:16px 0 4px; } .bvexempel b { color:var(--gul); }
.bvfot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; } #bvfel { color:var(--rod); }
.bvinfo { max-width:880px; margin-top:16px; padding:14px 22px; } .bvinfo h3 { margin:0 0 6px; font-size:14px; } .bvinfo ul { margin:0; padding-left:18px; font-size:13px; color:var(--text2); line-height:1.6; }
@media (max-width:800px) { .bvfalt { grid-template-columns:1fr 1fr; } }
a.ikonknapp { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; color:var(--dampad); border:1px solid var(--kant); border-radius:6px; vertical-align:middle; text-decoration:none; }
a.ikonknapp:hover { color:var(--text); border-color:var(--kant2); background:var(--hover); text-decoration:none; }
@media print { a.ikonknapp { display:none !important; } }

/* ---------- flyttbara och hopfällbara sektioner (Innehav) ---------- */
.flyttsektion .grupptoggle { margin:0 4px 0 2px; vertical-align:1px; }
.flyttsektion .gruppantal { display:none; margin-left:8px; font-weight:normal; font-size:12px; }
.flyttsektion.ihop .gruppantal { display:inline; }
.flyttsektion.ihop > table, .flyttsektion.ihop > .kortrad, .flyttsektion.ihop > .rulla, .flyttsektion.ihop > p { display:none; }
.flyttsektion + .flyttsektion { margin-top:0; } .flyttsektion > h2 { margin:15px 0 8px; }
.totalsektion { margin-top:22px !important; }   /* luft mellan sista gruppen och totalraden */
body.draglage .flyttsektion > table, body.draglage .flyttsektion > .kortrad, body.draglage .flyttsektion > .rulla, body.draglage .flyttsektion > p { display:none; }
body.draglage .flyttsektion { border:1px dashed var(--kant2); border-radius:8px; padding:4px 10px; margin-top:8px !important; background:var(--yta); }
body.draglage .flyttsektion h2 { margin:4px 0; }
.flyttsektion.dras { opacity:.45; border-color:var(--accent); }
@media print { .flyttsektion.ihop > table { display:table; } .flyttsektion .grupptoggle, .flyttsektion .gruppantal, .flyttsektion .dragghandtag, #fallalla { display:none !important; } }
/* ägande/parter från andra valv (eget valv, systemadministratör) */
.ksram.extern rect { fill:color-mix(in srgb, #2bb5c9 5%, transparent); stroke:#2bb5c9; stroke-opacity:.6; stroke-dasharray:6 5; }
.ksram.extern .ksramtitel { fill:#5fd0e0; }
.ksbox.extern rect { stroke:#2bb5c9; stroke-dasharray:4 3; fill:color-mix(in srgb, #2bb5c9 6%, var(--yta)); } .ksbox.extern { cursor:default; }
.ksbox.extern.person rect { stroke:#a06ef0; stroke-dasharray:4 3; }
.ksnar.extern path { stroke:#2bb5c9; } .ksnar.extern text { fill:#5fd0e0; }
.ksleg i.ks-extern { background:transparent; border:1.5px dashed #2bb5c9; }
.chip.avenvalv { color:#5fd0e0; border-color:rgba(43,181,201,.5); background:rgba(43,181,201,.1); font-size:10.5px; padding:0 6px; }
.andravalv td { color:var(--text2); }
/* ---------- lobbyns tema (samma uttryck som Välj valv) ---------- */
body.lobbysida { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
body.lobbysida .lobbymain { position:relative; isolation:isolate; }
body.lobbysida .lobbymain::before { content:""; position:absolute; left:-40px; right:-40px; top:0; height:520px; z-index:-1; pointer-events:none;
  background-image:linear-gradient(var(--kant) 1px, transparent 1px), linear-gradient(90deg, var(--kant) 1px, transparent 1px); background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5), transparent 70%); mask-image:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5), transparent 70%); opacity:.5; }
body.lobbysida .valvval::before { display:none; }      /* Välj valv har redan rutnätet från lobbymain */
body.lobbysida .lobbymain h1 { font-size:26px; letter-spacing:-.4px; }
body.lobbysida .lobbymain h2 { letter-spacing:-.2px; }
body.lobbysida .lobbymain .kort, body.lobbysida .lobbymain .tabell, body.lobbysida .anvstat, body.lobbysida .anvlogg {
  background:linear-gradient(180deg, var(--yta), color-mix(in srgb, var(--yta) 85%, var(--bg))); border-radius:12px;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 18px rgba(0,0,0,.18); }
:root[data-theme="light"] body.lobbysida .lobbymain .kort, :root[data-theme="light"] body.lobbysida .lobbymain .tabell,
:root[data-theme="light"] body.lobbysida .anvstat, :root[data-theme="light"] body.lobbysida .anvlogg { box-shadow:0 1px 2px rgba(0,0,0,.05), 0 6px 18px rgba(0,0,0,.05); }
body.lobbysida .lobbymain .tabell th { font:600 10.5px/1.2 ui-monospace, "SF Mono", Menlo, monospace; text-transform:uppercase; letter-spacing:.5px; color:var(--dampad);
  background:color-mix(in srgb, var(--yta2) 70%, transparent); padding-top:8px; padding-bottom:8px; }
body.lobbysida .anvstat > div { background:transparent; }
body.lobbysida .anvstat { gap:0; } body.lobbysida .anvstat > div + div { border-left:1px solid var(--kant); }
body.lobbysida .anvstat b { font-size:22px; letter-spacing:-.3px; }
body.lobbysida .anvstat span, body.lobbysida .nvkpi .kort span { font:500 10.5px ui-monospace, "SF Mono", Menlo, monospace; letter-spacing:.5px; text-transform:uppercase; color:var(--dampad); }
body.lobbysida .pill { font:600 10px/1.6 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing:.5px; text-transform:uppercase; padding:1px 8px; }
body.lobbysida .pill.bla { color:#8fdcff; border-color:rgba(70,170,255,.5); background:rgba(14,60,120,.4); }
:root[data-theme="light"] body.lobbysida .pill.bla { color:#0b5aa8; background:rgba(40,130,230,.1); }
body.lobbysida .mono, body.lobbysida .anvloggrad .ltid { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:11.5px; }
body.lobbysida .anvflikar button { font-size:13.5px; }
body.lobbysida .lobbyfot { font-family:ui-monospace, "SF Mono", Menlo, monospace; letter-spacing:.3px; }
body.lobbysida .lobbymain input, body.lobbysida .lobbymain select { border-radius:8px; }
.chip.rod { color:var(--rodtext); border-color:color-mix(in srgb, var(--rod) 55%, transparent); background:var(--rodbg); font-size:10.5px; padding:0 6px; }
.nvkonflikt ul { margin:6px 0 0; padding-left:18px; } .nvkonflikt p { margin:4px 0 0; }
.bevdetalj .lasrad { gap:18px; align-items:baseline; flex-wrap:wrap; }
.kort.avstangd { display:none !important; }
.modgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:10px; margin:8px 0 10px; }
.modgrupp { border:1px solid var(--kant); border-radius:10px; padding:8px 12px 10px; margin:0; background:var(--yta); }
.modgrupp legend { font-weight:600; font-size:13px; padding:0 4px; }
.modgrupp legend label, .modrad { display:flex; align-items:center; gap:7px; margin:0; cursor:pointer; }
.modrad { font-size:13px; padding:3px 0; } .modrad code { font-size:10.5px; margin-left:auto; }
.modgrupp input { width:auto; accent-color:var(--accent); }
.valvtabell tr.valvredigera td { white-space:normal; }
.modgrupp, .modrad { min-width:0; } .modrad { white-space:normal; }
.sida.ihop .menybotten .utlogg .knappar + .knappar { margin-top:10px; }
/* import: en ruta för allt */
.importruta { padding:18px; }
.slapp { display:flex; flex-direction:column; align-items:center; gap:8px; padding:30px 20px; border:2px dashed var(--kant2); border-radius:14px; background:var(--yta2); cursor:pointer; text-align:center; transition:border-color .15s, background .15s; margin:0; }
.slapp:hover, .slapp.over, .slapp:focus-within { border-color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, var(--yta2)); }
.slapp input { position:absolute; opacity:0; width:0; height:0; }
.slappikon { color:var(--accent); } .slapptext { font-size:14px; line-height:1.5; } .slappvalda { max-width:100%; word-break:break-word; }
.klistra { margin-top:12px; } .klistra summary { cursor:pointer; font-size:13px; } .klistra textarea { width:100%; box-sizing:border-box; margin-top:8px; font:12.5px ui-monospace, Menlo, monospace; border:1px solid var(--kant2); border-radius:8px; background:var(--input); color:var(--text); padding:8px 10px; }
.importkallor { display:grid; gap:6px; margin:0 0 18px; line-height:1.5; } .importkallor form.inline { display:inline; }
.ocrtext pre { margin-top:8px; font:12px ui-monospace, Menlo, monospace; border:1px solid var(--kant2); border-radius:8px; background:var(--input); padding:8px 10px; white-space:pre-wrap; max-height:260px; overflow:auto; }
/* Månadsavstämning: dölj redan granskade (gröna) poster tillfälligt – bara i webbläsaren */
body.dolj-granskade .tabell.styck tr.granskad { display:none; }
.importrad { display:flex; align-items:center; gap:12px; flex-wrap:wrap; } .importrad form { flex:1; }
#doljgranskade.aktiv { border-color:var(--accent); color:var(--accent); }
/* Månadsavstämning: utskrift per sektion + månadsval längst ned */
.periodrad .skrivut-val.hoppa { margin-left:auto; }
h2 .sektverktyg button.skrivut { float:none; margin-left:8px; vertical-align:-2px; }
.periodfot { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:28px 0 8px; padding-top:14px; border-top:1px solid var(--kant); }
@media print { .periodfot, .importrad, .kalpanel, .periodrad, h2 .sektverktyg, td.verktyg button:not(.gron), td.verktyg .kalla { display:none !important; } td.verktyg button.gron { border:0; background:none; } }
/* Uthyrning: historik direkt på sidan */
.historikform { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0 12px; }
.historikform input.kort { width:150px; } .historikform input.tal { width:130px; } .historikform input.bred { flex:1; min-width:160px; }
.historiktabell td.verktyg form.inline { display:inline; }

.tabell tr.nettorad td { border-bottom:1px solid var(--kant2); }

/* ---------- samma skärpa som i lobbyn, i hela valvet ---------- */
body { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
main h1 { letter-spacing:-.4px; } main h2 { letter-spacing:-.2px; }
main .kort, main .tabell { background:linear-gradient(180deg, var(--yta), color-mix(in srgb, var(--yta) 85%, var(--bg))); border-radius:12px;
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 18px rgba(0,0,0,.18); }
:root[data-theme="light"] main .kort, :root[data-theme="light"] main .tabell { box-shadow:0 1px 2px rgba(0,0,0,.05), 0 6px 18px rgba(0,0,0,.05); }
main .tabell thead th { font:600 10.5px/1.25 ui-monospace, "SF Mono", Menlo, monospace; text-transform:uppercase; letter-spacing:.4px; color:var(--dampad);
  background:color-mix(in srgb, var(--yta2) 70%, transparent); padding-top:8px; padding-bottom:8px; }
main .tabell thead th.sorterad { color:var(--text); }
.sidomeny .menysteg a, .sidomeny .menyrubrik { letter-spacing:-.1px; }
@media print { main .kort, main .tabell { background:#fff; box-shadow:none; } main .tabell thead th { font-size:8.5px; } }

.tabell tr.objrubrik th { text-align:left; padding:12px 8px 5px; font-size:12.5px; color:var(--text); background:transparent; border-bottom:1px solid var(--kant2); }
/* Hyror & kostnader: årsgrupper med streck mellan åren */
.argrupp th.ar, .argrupp td.ar { border-left:1px solid var(--kant2); }
.argrupp tr.grupphuvud th.ar { text-align:center; border-left:1px solid var(--kant2); border-bottom:1px solid var(--kant); }
.argrupp th.ars, .argrupp td.ars { border-right:1px solid var(--kant2); }

.fargprov { display:inline-block; width:14px; height:14px; border-radius:4px; vertical-align:-2px; margin-right:4px; border:1px solid var(--kant2); }
/* Objektkort */
.objektkort tr.ny input, .tabell tr.ny input { width:100%; box-sizing:border-box; min-width:70px; }
.historikform label { display:inline-flex; flex-direction:column; gap:3px; font-size:11.5px; color:var(--dampad); }
.historikform label input, .historikform label select { font-size:13px; color:var(--text); }
.historikform label.bred { flex:1; }
.tabell tr.inaktiv td { color:var(--dampad); }
h3 small, h4.dampad { font-weight:normal; }
.aviVal label { display:block; white-space:nowrap; font-size:12.5px; }
.historikfilter { display:flex; gap:12px; align-items:center; margin:8px 0; flex-wrap:wrap; } .historikfilter input.bred { flex:1; min-width:260px; } .historikfilter label { display:inline-flex; gap:5px; align-items:center; }

.diagramkort { padding:8px 4px 4px; }
.diagramkort .legend { margin-bottom:6px; align-items:center; }
.diagramkort .legend i.linje { width:16px; height:0; border-top:2px solid; vertical-align:3px; }
svg.diagram .axel.antal { fill:#BF7F22; }
svg.diagram rect.stapel { pointer-events:none; }
tr.diagramrad td { padding-top:6px; padding-bottom:6px; }
