/* ================================================================
   Algexo portal — shared shell + components
   Skin: "Graphite Precision" v3 (2026-07-02). Speiler brand/algexo_tokens.css.
   Klasse- og variabelnavn er API mot side-CSS og side-JS — ikke endre navn.
   ================================================================ */
/* impeccable-disable overused-font -- Instrument Sans + IBM Plex Mono er låst brand-identitet (algexo-ui §2); refleks-flagg ignoreres bevisst */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root {
  /* Graphite-tokens */
  --bg:#0A0A0D; --sidebar:#0A0A0D; --surface:#101014; --surface-2:#15151B; --surface-3:#1C1C24;
  --line:rgba(255,255,255,0.07); --line-2:rgba(255,255,255,0.14);
  /* Legacy-aliaser (--blue/--cyan/--grad brukes av side-CSS): begge peker på aksenten */
  --blue:#3ECF8E; --cyan:#3ECF8E; --accent:#3ECF8E; --grad:linear-gradient(135deg,#F2F2EF,#DEDEDA);
  --green:#3ECF8E; --amber:#E2A336; --violet:#9B8AFB; --gold:#D4B36A; --red:#E5484D;
  --text:#F2F2EF; --text-2:#A3A39E; --text-3:#7C7B72; /* t3 bumpet fra #63635E for lesbar hjelpetekst (WCAG AA ~4.6:1); speiler brand/algexo_tokens.css */
  --font:'Instrument Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'Cascadia Mono',monospace;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:var(--font); background:var(--bg); color:var(--text); font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:var(--surface-3); border-radius:8px; border:2px solid var(--bg); }
:focus-visible { outline:1.5px solid var(--accent); outline-offset:2px; border-radius:4px; }
@keyframes blip { 0%,100%{opacity:1;} 50%{opacity:.35;} }
@keyframes drwIn { from{transform:translateX(20px);opacity:0;} to{transform:translateX(0);opacity:1;} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
body.ax-nomotion *, body.ax-nomotion *::before { animation:none !important; transition:none !important; }
a { color:inherit; text-decoration:none; }
.app { display:flex; min-height:100vh; position:relative; z-index:1; }

/* ---------- Micro-label (gjenbrukbar): mono, uppercase, spaced ---------- */
.mlabel, .kpi .lbl, .nav-label, .benchgroup-h, .whychg .wc-h, .nextstep .ns-eyebrow {
  font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3);
}

/* ---------- Sidebar ---------- */
.sidebar { width:218px; min-width:218px; background:var(--sidebar); border-right:1px solid var(--line); display:flex; flex-direction:column; padding:22px 14px; position:sticky; top:0; height:100vh; }
.logo { display:flex; align-items:center; gap:10px; font-size:16.5px; font-weight:700; letter-spacing:-0.3px; padding:0 8px 24px; }
.logo-mark { width:28px; height:28px; border-radius:7px; background:var(--text); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; color:var(--bg); }
.nav-item { display:flex; align-items:center; gap:11px; padding:8px 11px; border-radius:6px; color:var(--text-2); font-weight:500; font-size:13.5px; margin-bottom:2px; border:1px solid transparent; transition:background .12s, color .12s; position:relative; }
.nav-item:hover { color:var(--text); background:var(--surface); }
.nav-item.active { color:var(--text); background:var(--surface-2); font-weight:600; }
.nav-item.active::before { content:""; position:absolute; left:-14px; top:50%; transform:translateY(-50%); width:2px; height:16px; background:var(--accent); border-radius:2px; }
.nav-item .ic { width:18px; text-align:center; opacity:0.8; font-size:13px; }
.nav-item .ic svg { width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vertical-align:-2px; }
.side-spacer { flex:1; }
.user { display:flex; align-items:center; gap:10px; padding:10px 8px 2px; border-top:1px solid var(--line); margin-top:12px; }
.avatar { width:30px; height:30px; border-radius:50%; background:var(--surface-3); border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center; font-weight:600; font-size:11px; color:var(--text-2); }
.user .n { font-weight:600; font-size:12.5px; }
.user .p { font-family:var(--mono); font-size:9px; color:var(--text-3); text-transform:uppercase; letter-spacing:.08em; margin-top:1px; }

/* ---------- Main / topbar ---------- */
.main { flex:1; padding:26px 36px 70px; min-width:0; max-width:1400px; margin:0 auto; }
.topbar { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; gap:16px; flex-wrap:wrap; padding-bottom:18px; border-bottom:1px solid var(--line); }
.page-title h1 { font-size:21px; font-weight:700; letter-spacing:-0.5px; }
.page-title .sub { font-size:12.5px; color:var(--text-3); margin-top:3px; }
.balance-chip { padding:8px 14px; border-radius:var(--ax-r,8px); background:var(--surface); border:1px solid var(--line); text-align:right; }
.balance-chip .l { font-family:var(--mono); font-size:8.5px; color:var(--text-3); text-transform:uppercase; letter-spacing:.12em; }
.balance-chip .v { font-family:var(--mono); font-weight:600; font-size:13.5px; font-variant-numeric:tabular-nums; }

.trust { display:flex; gap:10px; align-items:center; font-size:12px; color:var(--text-2); margin-bottom:22px; }
.trust .shield { color:var(--accent); }

.loading, .errbox { padding:40px; text-align:center; color:var(--text-3); font-size:14px; }
.errbox { color:var(--amber); }

.sec-h { font-size:13.5px; font-weight:600; color:var(--text); margin:0 0 4px; letter-spacing:-.1px; }
.sec-sub { font-size:12px; color:var(--text-3); margin-bottom:16px; }
.sec-gap { margin-top:32px; }

/* ---------- KPI-band: delte hairlines (grid m/ 1px gap) ---------- */
.kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:16px; }
.kpi { padding:16px 18px; background:var(--surface); transition:background .15s; }
.kpi:hover { background:var(--surface-2); }
.kpi .lbl { margin-bottom:9px; }
.kpi .val { font-family:var(--mono); font-size:22px; font-weight:600; letter-spacing:-0.5px; font-variant-numeric:tabular-nums; }
.kpi .val small { font-size:12px; color:var(--text-3); font-weight:500; }
.kpi .note { font-size:11.5px; color:var(--text-2); margin-top:6px; }

/* ---------- Panel ---------- */
.panel { border-radius:10px; border:1px solid var(--line); background:var(--surface); padding:20px; margin-bottom:16px; }
.panel h3 { font-size:13.5px; font-weight:600; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; letter-spacing:-.1px; }
.panel h3 a { font-size:11.5px; color:var(--text-2); font-weight:500; border-bottom:1px solid var(--line-2); padding-bottom:1px; }
.panel h3 a:hover { color:var(--text); border-color:var(--text); }

.row { display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line); }
.row:first-of-type { border-top:none; }
.row .grow { flex:1; min-width:0; }
.row .k { font-size:13px; font-weight:600; }
.row .s { font-size:11.5px; color:var(--text-3); margin-top:2px; }
.row .t { font-family:var(--mono); font-size:10px; color:var(--text-3); font-variant-numeric:tabular-nums; }

/* ---------- Tags / status ---------- */
.tag { font-family:var(--mono); font-size:8.5px; font-weight:600; padding:3px 7px; border-radius:4px; letter-spacing:.12em; text-transform:uppercase; border:1px solid; background:transparent; }
.tag-core{color:#8FB4FF;border-color:rgba(143,180,255,0.3);background:rgba(143,180,255,0.05)}
.tag-momentum{color:#6EE7F5;border-color:rgba(110,231,245,0.3);background:rgba(110,231,245,0.05)}
.tag-meanrev{color:var(--green);border-color:rgba(62,207,142,0.3);background:rgba(62,207,142,0.05)}
.tag-range{color:var(--gold);border-color:rgba(212,179,106,0.35);background:rgba(212,179,106,0.05)}
.tag-breakout{color:var(--violet);border-color:rgba(155,138,251,0.35);background:rgba(155,138,251,0.05)}
.tag-trend{color:#6EE7F5;border-color:rgba(110,231,245,0.3);background:rgba(110,231,245,0.05)}
.dot-live{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;color:var(--green);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.dot-live::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green)}
.dot-paper{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;color:var(--violet);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.dot-paper::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--violet)}
.pill { font-family:var(--mono); font-size:8.5px; font-weight:600; padding:2px 7px; border-radius:4px; letter-spacing:.1em; text-transform:uppercase; }
.pill-ok { background:rgba(62,207,142,0.08); color:var(--green); border:1px solid rgba(62,207,142,0.22); }
.pill-warn { background:rgba(226,163,54,0.08); color:var(--amber); border:1px solid rgba(226,163,54,0.25); }
.pill-off { background:var(--surface-3); color:var(--text-3); border:1px solid var(--line); }

/* ---------- Knapper ---------- */
.btn { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line-2); border-radius:7px; font-weight:600; font-size:12.5px; cursor:pointer; font-family:var(--font); padding:8px 15px; transition:all .12s; background:transparent; color:var(--text); }
.btn-p { background:var(--text); border-color:var(--text); color:var(--bg); }
.btn-p:hover { background:#fff; border-color:#fff; }
.btn-p:disabled { opacity:.35; cursor:not-allowed; }
.btn-g { background:transparent; color:var(--text); border:1px solid var(--line-2); }
.btn-g:hover { background:var(--surface); border-color:rgba(255,255,255,0.24); }
.btn-danger { background:transparent; color:var(--red); border:1px solid rgba(229,72,77,0.35); }
.btn-danger:hover { background:rgba(229,72,77,0.08); }

/* ---------- Tomstate ---------- */
.empty { text-align:center; padding:40px 20px; border:1px dashed var(--line-2); border-radius:10px; background:transparent; }
.empty .e-ic { font-size:22px; margin-bottom:8px; opacity:.7; }
.empty .e-t { font-size:14px; font-weight:600; margin-bottom:5px; }
.empty .e-s { font-size:12px; color:var(--text-3); max-width:360px; margin:0 auto 14px; line-height:1.5; }

/* ---------- Skjema ---------- */
.field { margin-bottom:16px; }
.field label { display:block; font-size:12px; font-weight:600; color:var(--text-2); margin-bottom:6px; }
.field select, .field input { width:100%; max-width:320px; padding:9px 12px; border-radius:7px; border:1px solid var(--line-2); background:var(--bg); color:var(--text); font-size:13.5px; font-family:var(--font); outline:none; transition:border-color .12s; }
.field select:focus, .field input:focus { border-color:var(--accent); }
.field .hint { font-size:11px; color:var(--text-3); margin-top:5px; }

/* ---------- Modal ---------- */
.modal-back { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.72); backdrop-filter:blur(3px); z-index:200; align-items:center; justify-content:center; padding:20px; }
.modal-back.open { display:flex; }
.modal { width:520px; max-width:100%; border-radius:12px; background:var(--surface-2); border:1px solid var(--line-2); padding:24px; box-shadow:0 32px 80px rgba(0,0,0,0.6); }
.modal h3 { font-size:17px; font-weight:700; margin-bottom:8px; letter-spacing:-.3px; }
.modal .msub { font-size:13.5px; color:var(--text-2); margin-bottom:18px; line-height:1.55; }
.modal .msub b { color:var(--text); }
.consent { display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:var(--text-2); background:var(--surface); border:1px solid var(--line-2); border-radius:8px; padding:12px 14px; margin-bottom:16px; line-height:1.5; cursor:pointer; }
.consent input { margin-top:2px; accent-color:var(--accent); }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; }
.modal-fine { font-size:10.5px; color:var(--text-3); margin-top:14px; line-height:1.55; }
.disc { margin-top:32px; font-size:10.5px; color:var(--text-3); line-height:1.65; border-top:1px solid var(--line); padding-top:16px; }

/* ---------- Dash / komposisjon (JS-generert markup) ---------- */
.dash-cols { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
@media (max-width:900px){ .dash-cols { grid-template-columns:1fr; } }
.perf-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:10px; }
.pcard { border:1px solid var(--line); border-radius:8px; background:var(--surface); padding:13px 15px; transition:background .15s; }
.pcard:hover { background:var(--surface-2); }
.pcard .pt { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.pcard .pn { font-size:13px; font-weight:600; line-height:1.3; }
.pcard .pv { font-family:var(--mono); font-size:13.5px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
.pcard .ps { font-size:11px; color:var(--text-3); margin-top:5px; }
.nextstep { border:1px solid var(--line-2); border-radius:8px; padding:16px 19px; margin-bottom:16px; background:rgba(62,207,142,0.045); }
.nextstep .ns-eyebrow { color:var(--accent); margin-bottom:8px; display:block; }
.nextstep .ns-body { font-size:13.5px; line-height:1.55; color:var(--text); }
.nextstep .ns-ctas { display:flex; flex-wrap:wrap; gap:9px; margin-top:13px; }
.covstrip { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:8px; overflow:hidden; margin:6px 0 20px; }
@media (max-width:620px){ .covstrip { grid-template-columns:repeat(2,1fr); } }
.covcell { padding:11px 13px; background:var(--surface); border:none; border-radius:0; }
.covcell .cl { font-size:12px; font-weight:600; }
.covcell .cm { font-family:var(--mono); font-size:9px; margin-top:4px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
.covcell.cov-on { background:rgba(62,207,142,0.05); } .covcell.cov-on .cm { color:var(--green); }
.covcell.cov-off .cm { color:var(--text-3); }
.whychg { border:1px solid var(--line); border-radius:8px; padding:14px 17px; margin-bottom:18px; background:var(--surface); }
.whychg .wc-h { margin-bottom:7px; display:block; }
.whychg .wc-b { font-size:13px; line-height:1.55; color:var(--text); }
.whychg .up { color:var(--green); font-weight:600; } .whychg .dn { color:var(--red); font-weight:600; } .whychg .fl { color:var(--text-3); font-weight:600; }
.whychg .wc-trend .wc-tl { font-family:var(--mono); font-size:9px; color:var(--text-3); font-weight:500; margin:11px 0 4px; letter-spacing:.1em; text-transform:uppercase; }
.whychg .spark { display:block; width:240px; max-width:100%; height:46px; }
.benchfit { font-size:11.5px; font-weight:500; margin-top:6px; }
.benchfit.fit-good { color:var(--accent); } .benchfit.fit-neutral { color:var(--text-3); }
.act-hidden { display:none; }
.linkbtn { background:none; border:none; color:var(--text-2); font-family:inherit; font-size:12.5px; font-weight:500; cursor:pointer; padding:0; border-bottom:1px solid var(--line-2); }
.linkbtn:hover { color:var(--text); border-color:var(--text); }
.benchgroup-h { margin:18px 0 8px; display:block; }
.benchgroup-h:first-child { margin-top:4px; }
.cmpcard:empty { display:none; }
.cmpcard { margin-top:12px; border:1px solid var(--line-2); border-radius:8px; padding:13px 15px; background:var(--surface-2); }
.cmpcard .cmp-h { font-size:12px; font-weight:600; margin-bottom:9px; color:var(--text); }
.cmptbl { width:100%; border-collapse:collapse; }
.cmptbl th { font-family:var(--mono); font-size:8.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--text-3); font-weight:500; text-align:right; padding:4px 6px; }
.cmptbl th:first-child { text-align:left; }
.cmptbl td { font-family:var(--mono); font-size:11.5px; padding:5px 6px; text-align:right; border-top:1px solid var(--line); font-variant-numeric:tabular-nums; }
.cmptbl td:first-child { text-align:left; font-weight:500; font-family:var(--font); font-size:12px; }
.cmptbl td.up { color:var(--green); font-weight:600; } .cmptbl td.dn { color:var(--red); font-weight:600; } .cmptbl td.fl { color:var(--text-3); }
.cmpcard .cmp-foot { font-size:10.5px; color:var(--text-3); margin-top:8px; }
.tour-dots { display:flex; gap:6px; margin-top:14px; }
.tour-dots span { width:6px; height:6px; border-radius:50%; background:var(--line-2); }
.tour-dots span.on { background:var(--accent); }
.trendsvg { width:100%; height:auto; display:block; max-height:140px; }
.ax-tip { display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; font-size:9px; line-height:1; color:var(--text-3); border:1px solid var(--line-2); cursor:help; margin-left:5px; vertical-align:middle; user-select:none; flex:none; font-family:var(--mono); }
.ax-tip:hover, .ax-tip:focus { color:var(--accent); border-color:var(--accent); outline:none; }
td, .cmptbl td, .pcard .pv, .kpi .val { font-variant-numeric:tabular-nums; }

/* ---------- Score-elementer (gull, kun score) ---------- */
.scorebar { height:3px; background:var(--surface-3); border-radius:2px; overflow:hidden; }
.scorebar i { display:block; height:100%; background:var(--gold); border-radius:2px; }
.scorering { border-radius:50%; display:grid; place-items:center; position:relative; }
.scorering::before { content:""; position:absolute; inset:5px; border-radius:50%; background:var(--surface); }
.scorering b { position:relative; font-family:var(--mono); font-weight:600; font-variant-numeric:tabular-nums; }

/* ---------- L0: liv-fundamentet (2026-07-10) — transkribert fra design-laben ---------- */
/* Entrance-stagger: gi barna .rv + .in og en --i-indeks (AX.enter gjør det). */
.rv { opacity:0; transform:translateY(12px); }
.rv.in { animation:axRvIn .62s cubic-bezier(.22,1,.36,1) forwards; animation-delay:calc(var(--i,0)*60ms); }
@keyframes axRvIn { to { opacity:1; transform:translateY(0); } }
/* Skeleton-shimmer: loading ≠ empty. */
.skl { border-radius:6px; height:13px; background:linear-gradient(100deg, var(--surface-2) 40%, var(--surface-3) 50%, var(--surface-2) 60%); background-size:200% 100%; animation:axShimmer 1.4s linear infinite; margin-bottom:9px; }
@keyframes axShimmer { to { background-position:-200% 0; } }
/* Puls-ring: KUN på verifisert live/paper-kjøring — puls på statisk data er fasade (R9). */
.pdot { position:relative; display:inline-block; width:6px; height:6px; border-radius:50%; background:currentColor; }
.pdot::before { content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid currentColor; animation:axPring 2.2s cubic-bezier(.22,1,.36,1) infinite; }
@keyframes axPring { 0% { transform:scale(.4); opacity:.9; } 70%,100% { transform:scale(1.5); opacity:0; } }
/* Endrings-flash (AX.flash). */
.flash { animation:axFlash .65s ease-out; }
@keyframes axFlash { 0% { background:rgba(62,207,142,0.16); } 100% { background:transparent; } }
/* Strategy-chip — universell dør (NB: .schip er opptatt av My Team-side-CSS). */
.axchip { display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:8px; padding:9px 12px; background:var(--surface-2); cursor:pointer; transition:background .14s, border-color .14s; margin-bottom:8px; }
.axchip:hover { background:var(--surface-3); border-color:var(--line-2); }
.axchip .sd { width:6px; height:6px; border-radius:50%; flex:none; }
.axchip .nm { font-size:12.5px; font-weight:600; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.axchip .spk { flex:none; display:inline-flex; }
.axchip .rv2 { font-family:var(--mono); font-size:11.5px; font-weight:600; font-variant-numeric:tabular-nums; width:44px; text-align:right; }
.axchip .arr { color:var(--text-3); font-size:12px; flex:none; transition:transform .15s; }
.axchip:hover .arr { transform:translateX(2px); color:var(--text); }
/* Dør-drawer (AX.openDoor) — delt, sidene migrerer fra lokale .dw-kopier i L1–L5. */
.axdw { position:fixed; inset:0; z-index:210; display:none; }
.axdw.open { display:block; }
.axdw-bg { position:absolute; inset:0; background:rgba(0,0,0,0.62); }
.axdw-panel { position:absolute; top:0; right:0; height:100%; width:470px; max-width:94vw; overflow-y:auto; background:var(--surface); border-left:1px solid var(--line-2); box-shadow:-30px 0 80px rgba(0,0,0,0.5); padding:24px 26px; animation:axDwIn .24s cubic-bezier(.22,1,.36,1); }
@keyframes axDwIn { from { transform:translateX(24px); opacity:0; } to { transform:translateX(0); opacity:1; } }
.axdw-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:6px; }
.axdw-eb { font-family:var(--mono); font-size:9px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.axdw-title { font-size:17px; font-weight:700; margin-top:4px; letter-spacing:-.2px; }
.axdw-sub { font-size:12.5px; color:var(--text-3); margin-top:3px; line-height:1.5; }
.axdw-x { background:none; border:none; color:var(--text-2); font-size:17px; cursor:pointer; padding:2px 6px; border-radius:5px; }
.axdw-x:hover { color:var(--text); background:var(--surface-2); }
.axdw-sec { margin-top:18px; }
.axdw-sec h4 { font-size:12.5px; font-weight:600; margin-bottom:9px; }
.axdw-note { font-size:11px; color:var(--text-3); margin-top:16px; line-height:1.6; border-top:1px solid var(--line); padding-top:12px; }
/* Crosshair (AX.crosshair lager elementene). */
.axxh-line { position:absolute; top:0; bottom:0; width:1px; background:var(--line-2); pointer-events:none; opacity:0; transition:opacity .12s; }
.axxh-dot { position:absolute; width:9px; height:9px; border-radius:50%; border:2px solid var(--bg); pointer-events:none; opacity:0; transform:translate(-50%,-50%); }
.axxh-tip { position:absolute; pointer-events:none; background:var(--surface-3); border:1px solid var(--line-2); border-radius:7px; padding:7px 11px; font-family:var(--mono); font-size:10.5px; white-space:nowrap; opacity:0; transition:opacity .12s; transform:translate(-50%,-130%); z-index:5; font-variant-numeric:tabular-nums; box-shadow:0 14px 40px rgba(0,0,0,.5); }
.axxh-tip .d { color:var(--text-3); font-size:9px; display:block; letter-spacing:.06em; }
/* Rik tooltip-anker (motoren bor i _shared.js — tidligere kopi i My Team). */
.ii { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border-radius:50%; font-size:9px; font-family:var(--mono); color:var(--text-3); border:1px solid var(--line-2); cursor:help; margin-left:6px; }
.ii:hover, .ii:focus { color:var(--accent); border-color:var(--accent); }
/* Reduced motion — begge veier: OS-innstilling OG appens eget Display-valg.
   Uten disse ville .rv stå usynlig når animasjoner er avslått. */
@media (prefers-reduced-motion: reduce) {
  .rv, .rv.in { animation:none !important; opacity:1 !important; transform:none !important; }
  .skl { animation:none !important; }
  .pdot::before { animation:none !important; opacity:0; }
}
body.ax-nomotion .rv, body.ax-nomotion .rv.in { opacity:1 !important; transform:none !important; }
body.ax-nomotion .pdot::before { opacity:0; }

/* ---------- Pending-kø (Requested/Removing) — M9 2026-07-10 ----------
   Delt komponent brukt av My Team OG Dashboard (klient + SSR). Namespaced
   .pend-* for å unngå kollisjon med .prow (som betyr ulike ting per side).
   Venter-familien: hul, stiplet dot — aldri forvekslbar med Active sin fylte
   dot. REQUESTED = amber, REMOVING = rød. Selvstendig: avhenger ikke av
   side-lokale klasser (.rname/.ch-strip/.eyb), så den rendrer likt på begge
   sider og i SSR. */
.pend-sec { margin-top:14px; }
.pend-eyb { font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3); display:flex; align-items:center; gap:6px; margin-bottom:3px; }
.pend-eyb .n { font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--text-2); }
.pend-row { display:flex; gap:16px; padding:13px 0; border-top:1px solid var(--line); }
.pend-dot-req { display:inline-block; width:8px; height:8px; border-radius:50%; background:transparent; border:1.5px dashed var(--amber); flex:none; margin-top:6px; }
.pend-dot-rem { display:inline-block; width:8px; height:8px; border-radius:50%; background:transparent; border:1.5px dashed var(--red); flex:none; margin-top:6px; }
.pend-main { flex:1; min-width:0; }
.pend-head { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.pend-name { font-size:14px; font-weight:600; letter-spacing:-.1px; }
.pend-pill-req { font-family:var(--mono); font-size:8.5px; font-weight:600; padding:3px 8px; border-radius:4px; background:rgba(226,163,54,0.1); color:var(--amber); border:1px solid rgba(226,163,54,0.25); letter-spacing:.08em; }
.pend-pill-rem { font-family:var(--mono); font-size:8.5px; font-weight:600; padding:3px 8px; border-radius:4px; background:rgba(229,72,77,0.08); color:var(--red); border:1px solid rgba(229,72,77,0.25); letter-spacing:.08em; }
.pend-chip { font-family:var(--mono); font-size:9px; color:var(--text-3); border:1px solid var(--line); border-radius:4px; padding:2px 6px; letter-spacing:.06em; text-transform:uppercase; }
.pend-why { font-size:12px; color:var(--text-2); margin-top:5px; line-height:1.5; }
.pend-link { display:inline-block; font-size:11px; font-weight:500; color:var(--text-2); text-decoration:none; border:1px solid transparent; border-radius:6px; padding:5px 11px; margin:9px 0 0 -11px; transition:color .12s, border-color .12s; }
.pend-link:hover { color:var(--text); border-color:var(--line-2); }

/* ---------- Mobil: toppstripe + av/på-sidebar (JS i _shared.js) ---------- */
.mobilebar { display:none; }
@media (max-width:760px){
  .app { flex-direction:column; }
  .mobilebar { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); z-index:90; }
  .mobilebar .logo { padding:0; font-size:15px; }
  .mobilebar button { background:transparent; border:1px solid var(--line-2); border-radius:6px; color:var(--text); font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:7px 12px; cursor:pointer; }
  .sidebar { display:none; position:fixed; inset:0 auto 0 0; width:250px; z-index:100; height:100vh; box-shadow:0 0 60px rgba(0,0,0,.6); }
  .sidebar.open { display:flex; }
  .sidebar-scrim { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:99; }
  .sidebar-scrim.open { display:block; }
  .main { padding:18px 16px 60px; }
  .kpis { grid-template-columns:1fr 1fr; }
}
