/* Teknisk bilde på aksjesiden (plan 2026-10-06; static/teknisk.js). Bare tokens fra lys.css. */
.tb-valg { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 14px; }
.tb-seg { display: inline-flex; gap: 2px; padding: 3px; background: var(--kalk-dyp); border-radius: var(--radius-input); }
.tb-seg button { font: 600 13px/1 "Schibsted Grotesk", sans-serif; padding: 9px 14px; border: 0; border-radius: 8px;
  background: transparent; color: var(--kull-myk); cursor: pointer; transition: background .2s, color .2s; }
.tb-seg button small { font-weight: 500; color: var(--kull-svak); margin-left: 5px; }
.tb-seg button { white-space: nowrap; }
@media (max-width: 600px) { .tb-seg button small { display: none; } .tb-seg button { padding: 9px 11px; } }
.tb-seg button[aria-pressed="true"] { background: var(--kalk-lys); color: var(--kull); box-shadow: 0 1px 2px rgb(38 34 27 / .12); }
.tb-seg button:disabled { opacity: .45; cursor: not-allowed; }
.tb-seg button:focus-visible { outline: 2px solid var(--sol-blekk); outline-offset: 1px; }

.tb-flate { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; }
@media (max-width: 920px) { .tb-flate { grid-template-columns: 1fr; } }
.tb-kort { background: var(--kalk-lys); border: 1px solid var(--mortel); border-radius: var(--radius); }
.tb-graf { padding: 16px 8px 8px 16px; position: relative; min-width: 0; }
.tb-topp { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 0 10px 6px 0; }
.tb-dato { color: var(--kull-svak); font-size: 13px; }
.tb-trend { margin-left: auto; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  padding: 6px 10px; border-radius: 999px; background: var(--kalk-dyp); color: var(--kull-myk); }
.tb-trend.stigende { background: color-mix(in srgb, var(--opp) 14%, transparent); color: var(--opp); }
.tb-trend.fallende { background: color-mix(in srgb, var(--ned) 14%, transparent); color: var(--ned); }

.tb svg { display: block; width: 100%; height: auto; overflow: visible; }
.tb-akse text { font: 11px "Spline Sans Mono", ui-monospace, monospace; fill: var(--kull-svak); }
.tb-akse line { stroke: var(--gridline); }
.tb-band { fill: var(--sol); fill-opacity: .14; }
.tb-kant { fill: none; stroke: var(--sol); stroke-width: 1.6; }
.tb-midt { fill: none; stroke: var(--sol); stroke-width: 1; stroke-dasharray: 2 5; opacity: .8; }
.tb-niva line { stroke-width: 1.4; stroke-dasharray: 6 5; }
.tb-niva.motstand line { stroke: var(--ned); } .tb-niva.motstand rect { fill: var(--ned); }
.tb-niva.stotte line { stroke: var(--opp); } .tb-niva.stotte rect { fill: var(--opp); }
.tb-niva.ved line { stroke: var(--sol-blekk); stroke-dasharray: none; stroke-width: 2; }
.tb-niva text { font: 600 11px "Spline Sans Mono", ui-monospace, monospace; fill: var(--kalk-lys); }
.tb-lys { stroke-width: 1; } .tb-opp { stroke: var(--opp); fill: var(--opp); } .tb-ned { stroke: var(--ned); fill: var(--ned); }
.tb-linje { fill: none; stroke: var(--kull); stroke-width: 1.8; stroke-linejoin: round; }
.tb-under { fill: var(--kull); opacity: .05; }
.tb-kryss line { stroke: var(--kull-svak); stroke-width: 1; stroke-dasharray: 3 3; }
.tb-kryss rect { fill: var(--kull); } .tb-kryss text { font: 600 11px "Spline Sans Mono", monospace; fill: var(--kalk-lys); }
.tb-tips { position: absolute; pointer-events: none; background: var(--kull); color: var(--kalk-lys); border-radius: 8px;
  padding: 8px 10px; font: 12px/1.5 "Spline Sans Mono", monospace; opacity: 0; transition: opacity .12s; white-space: nowrap; }

.tb-side { padding: 20px 20px 16px; display: flex; flex-direction: column; gap: 16px; }
.tb-tekst { display: flex; flex-direction: column; gap: 10px; }
.tb-tekst p { margin: 0; line-height: 1.5; color: var(--kull-myk); }
.tb-tekst p:first-child { color: var(--kull); font-weight: 500; }
.tb-liste { display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--mortel); padding-top: 12px; }
.tb-rad { display: grid; grid-template-columns: 10px 1fr auto; gap: 10px; align-items: center; padding: 6px 0; font-size: 14px; }
.tb-rad i { width: 10px; height: 10px; border-radius: 3px; }
.tb-rad span { color: var(--kull-svak); }
.tb-rad em { font-style: normal; color: var(--sol); letter-spacing: 1px; }
.tb-rad b { font: 600 13px "Spline Sans Mono", monospace; white-space: nowrap; }
.tb-rad u { text-decoration: none; font: 500 12px "Spline Sans Mono", monospace; color: var(--kull-svak); margin-left: 8px; }
.tb-fot { font-size: 12px; color: var(--kull-svak); line-height: 1.5; margin: 12px 0 0; }

.tb-tegn { animation: tb-tegn .9s cubic-bezier(.2,.8,.2,1) both; }
.tb-glid { animation: tb-glid .7s cubic-bezier(.2,.8,.2,1) both; }
.tb-fade { animation: tb-fade .5s ease both; }
@keyframes tb-tegn { from { stroke-dashoffset: var(--l); } to { stroke-dashoffset: 0; } }
@keyframes tb-glid { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes tb-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tb-tegn, .tb-glid, .tb-fade { animation: none; } }
/* Under knip-zoom tegnes grafen på nytt for hvert steg; animasjonene ville blinke. */
.tb-stille * { animation: none !important; }
