
/* ANKER-OFFSET, ét sted for HELE sitet: hvert anker-hop stopper under admin-baren OG under en
   evt. sticky sektions-/filter-bar (højden MÅLES → --sushi-bar-h; 0 når der ingen bar er).
   Derfor må ingen snippet sætte sit eget scroll-margin-top: det ville lægges OVENI dette. */
html{scroll-padding-top:calc(var(--sushi-abh,0px) + var(--sushi-bar-h,0px) + 16px);}
/* Sentinel for "klæber baren nu?" (indsættes af shell-JS foran [data-sushi-bar]). 0px høj, så
   den kan aldrig flytte layoutet; barens .is-stuck-look bor i den snippet der ejer baren. */
.sushi-bar-sentinel{display:block;height:0;}
/* Knap-tokens staar paa :root, ALDRIG paa .sushi-shell. En ugyldig var() goer HELE background-
   erklaeringen ugyldig ("invalid at computed-value time") og knappen bliver gennemsigtig med
   hvid tekst, altsaa usynlig. Denne CSS printes ubetinget, saa :root garanterer at enhver
   .sushi-btn har farve uanset om shell-klassen naaede at komme paa. */
/* Knap-farverne er MAALT, ikke valgt paa oejemaal. Hvid tekst paa den gamle orange
   (#ffa12e -> #f97316) gav 2,02:1 i den lyse ende og 2,80:1 i den moerke: langt under AA-kravet
   paa 4,5:1, og det var netop den knap ejeren meldte som "usynlig". Orange er sitets DATA-accent
   (barer, procenter) og har allerede et separat tekst-token (--s-data-ink) fordi den ikke kan
   baere tekst. Handlings-farven er groen, samme som den primaere CTA paa forsiden. Begge
   gradienter er nu valgt saa den LYSESTE stop bestaar AA med hvid tekst (4,64:1 / 5,32:1). */
:root{--s-sidebar-width:244px;--s-nav-font-size:.93rem;--s-nav-icon-size:19px;--s-btn-font-size:.95rem;--s-btn-radius:999px;
  --s-shadow-lift:0 6px 22px rgba(28,27,23,.09);
  --s-btn-primary:linear-gradient(0deg,#2f7d54,#2f7d54); --s-btn-primary-sh:0 0 0 rgba(0,0,0,0);
  --s-btn-success:linear-gradient(0deg,#1f7a4d,#1f7a4d); --s-btn-success-sh:0 0 0 rgba(0,0,0,0);}

/* · BEHOLD Astras globale header + footer; skjul KUN sidetitel + widget-sidebar · */
body.sushi-shell .entry-header,body.sushi-shell .page-header,body.sushi-shell .ast-page-header,
body.sushi-shell .ast-archive-header,body.sushi-shell .ast-single-entry-banner,
body.sushi-shell .ast-breadcrumbs-wrapper,body.sushi-shell .ast-breadcrumbs,
body.sushi-shell #secondary{display:none!important;}

/* · ÉN ensartet flade-farve overalt (ingen gradient/sliver) · */
body.sushi-shell,body.sushi-shell #page,body.sushi-shell .site,body.sushi-shell #content,body.sushi-shell .site-content{background:var(--s-bg)!important;}
body.sushi-shell{font-family:var(--s-font);}
/* The canvas must continue behind card corners. Theme containers own no white sheet;
   the real section/card owns its surface. Keep overflow visible for dropdowns/tooltips. */
body.sushi-shell :is(#primary,#main,.site-main,.ast-article-single,.entry-content){background:transparent!important;}
body.sushi-shell #primary,body.sushi-shell .site-main,body.sushi-shell .ast-container > .ast-row{max-width:none!important;width:auto!important;}
body.sushi-shell .ast-container,body.sushi-shell .entry-content{max-width:1240px!important;width:auto!important;margin-left:auto!important;margin-right:auto!important;}  /* centreret main content (begge mulige Astra-wrappers) */
/* Auto-oprettede sider kan arve Astras NARROW-container (~750px, 4.x-default) og block-layoutets
   barn-klemme: app-siderne styrer SELV deres bredde (sushi-board 1180 / sushi-front 1060 /
   sushi-statspage 1180) → ophæv klemmen, ellers står fx statistik-siden i en smal søjle
   (live-fund jul 2026) mens de andre sider fylder containeren. */
body.sushi-shell.ast-narrow-container .site-content .ast-container,
body.sushi-shell.ast-narrow-container #content .ast-container{max-width:1240px!important;}
/* Block-layoutets barn-klemme (~750px content-size) løftes via WP-VARIABLERNE — ALDRIG ved at
   sætte max-width:none paa ALLE entry-content-boern: den forhamre nukede shortcode-roeddernes
   EGNE 1180-caps (live-fund 24/7: statistics gik kant til kant mens predictions kun overlevede
   fordi dens ydre container tilfaeldigvis var cappet). Regression laast i smoke-testen. */
body.sushi-shell .entry-content{--wp--style--global--content-size:1240px;--wp--style--global--wide-size:1240px;}
/* Astras "stretched/page-builder"-skabelon (auto-oprettede siders typiske default) fjerner BÅDE
   container-cap og padding → indholdet klistrer til højre kant (live-fund: statistics vs
   predictions). App-sider tvinges her ind i PRÆCIS samme centrerede 1240-container som
   predictions — samme bløde luft i begge sider, uanset hvilken skabelon WP gav siden. */
body.sushi-shell.ast-page-builder-template #content .ast-container,
body.sushi-shell.ast-page-builder-template .site-content .ast-container{
  max-width:1240px!important;margin-left:auto!important;margin-right:auto!important;
  padding-left:20px!important;padding-right:20px!important;}
/* MEN Astra-headeren skal være fuld bredde, så logoet sidder HELT til venstre (standard) -
   uden dette centrerede reglen ovenfor også header-containeren og skubbede logoet ind. */
body.sushi-shell .site-header .ast-container,body.sushi-shell #masthead .ast-container{max-width:none!important;margin-left:0!important;margin-right:0!important;}
/* Container queries fjerner barnets intrinsiske bredde. Astras flex-barn skal derfor
   fylde den tildelte kolonne, ikke shrink-to-fit (statistik blev 0 px paa live-sitet). */
body.sushi-shell #primary{flex:1 1 0%;min-width:0;width:100%!important;padding:0!important;margin:0!important;}
body.sushi-shell #main,body.sushi-shell .ast-article-single,body.sushi-shell .entry-content{min-width:0;}
/* overflow-x:clip (IKKE hidden): klipper vandret spild uden at lave en scroll-container, saa
   sticky-strimlerne inde i siderne stadig virker. Uden den giver et enkelt for bredt element
   vandret sidescroll paa HELE sitet, og saa "flytter" layoutet sig under fingeren paa mobil. */
body.sushi-shell #content,body.sushi-shell .site-content{padding:26px var(--s-page-gutter,24px) 60px!important;
  overflow-x:clip;}

/* ── FULD-BREDDE-SEKTION (.sushi-bleed) ────────────────────────────────────────────────
   En sektion der skal naa HELT ud til indholdsomraadets kanter (forsidens hero) skal bryde
   ud af BAADE 1240-cappen paa .ast-container og paddingen paa #content. Foer regnede forsiden
   det selv med et haardkodet margin:-26px -30px, men paddingen er 30 px paa desktop og 5 px
   paa mobil, og containeren er desuden centreret: resultatet var en bleg stribe mellem den
   moerke sidebar og heroen (og 25 px overflow paa mobil).
   Geometrien hoerer hjemme HER, hvor sidebar-bredden og paddingen defineres. Formlen bruger
   kun kendte stoerrelser: elementets egen bredde (100%) og indholdsomraadets bredde
   (100vw - sidebar). Halvdelen af forskellen er praecis hvad der skal trækkes fra i hver side. */
body.sushi-shell{--sushi-side-w:0px;}
/* ⚠️ MARGINEN MAA ALDRIG BLIVE POSITIV. Formlen er et LOEFTE om at ``100%`` er bredden paa
   den centrerede indholdskolonne. Holder loeftet ikke (en side hvis boern er bredere end
   kolonnen, eller en tema-opdatering der flytter paddingen), bliver forskellen negativ, og
   marginen dermed POSITIV: sektionen bliver SMALLERE end sin foraelder, og hero-teksten
   klippes i kanten. Det er praecis den fejl ejeren har meldt. ``min(0px, ...)`` goer den
   umulig: i vaerste fald er udbruddet 0, altsaa ingen bleed, aldrig en indsnaevring. */
body.sushi-shell .sushi-bleed{
  margin-left:min(0px, calc(-1 * ((100vw - var(--sushi-side-w)) - 100%) / 2));
  margin-right:min(0px, calc(-1 * ((100vw - var(--sushi-side-w)) - 100%) / 2));
  max-width:none;}

@media (min-width:901px){
  body.sushi-shell #content,body.sushi-shell .site-content{margin-left:var(--s-sidebar-width,244px)!important;}  /* KUN indholdet rykkes → header/footer fuld bredde */
  body.sushi-shell{--sushi-side-w:var(--s-sidebar-width,244px);}
}
@media (max-width:900px){
  /* One page gutter, shared by every shortcode and Astra template. Safe areas may enlarge it. */
  body.sushi-shell #content,body.sushi-shell .site-content{margin-left:0!important;padding:18px 16px 28px!important;padding-left:var(--s-page-inset-left,max(16px,env(safe-area-inset-left,0px)))!important;padding-right:var(--s-page-inset-right,max(16px,env(safe-area-inset-right,0px)))!important;}
  body.sushi-shell #content :is(.sushi-app,.sm):not(.sushi-ranked):not(:is(.sushi-app,.sm) *){padding-left:0!important;padding-right:0!important;}
  body.sushi-shell .sushi-bleed{margin-left:0;margin-right:0;}
  body.sushi-shell.ast-page-builder-template #content .ast-container,body.sushi-shell.ast-page-builder-template .site-content .ast-container,
  body.sushi-shell #content .ast-container,body.sushi-shell .site-content .ast-container,
  body.sushi-shell #content .ast-row,body.sushi-shell #content .ast-article-single,
  body.sushi-shell #content .entry-content{padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;}
  body.sushi-shell{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important;}  /* Reserve the tab-bar, including the two-line My Frontpage label. */
}

/* Desktop geometry. The shared Styling layer owns the light-grey/green palette. */
.sushi-side{display:none; --sg:var(--s-accent,#2f7d54);}
@media (min-width:901px){
  /* Fixed open, directly below the visible header. Header space is not scrollable padding. */
  .sushi-side{display:flex;flex-direction:column;position:fixed;top:var(--sushi-top,var(--wp-admin--admin-bar--height,0px));bottom:0;left:0;width:var(--s-sidebar-width,244px);height:auto;
    z-index:20;box-sizing:border-box;background:var(--s-nav-bg);
    border-right:1px solid #1c211e;padding:12px 12px 14px;font-family:var(--s-font);
    overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;contain:layout paint;}
  .sushi-side>.sushi-nav,.sushi-side>.sushi-side-end{flex-shrink:0;}
}
.sushi-side a{text-decoration:none;}
.sushi-logo{display:flex;align-items:center;gap:.6ch;font-weight:680;letter-spacing:-.01em;color:#f3f5f4;padding:0 2px;min-width:0;overflow:hidden;}
.sushi-logo .mark{width:36px;height:36px;border-radius:10px;background:#10201a;color:var(--sg);
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.74rem;letter-spacing:.02em;flex:0 0 auto;
  border:1px solid rgba(66,224,138,.4);box-shadow:0 0 16px rgba(66,224,138,.26),inset 0 0 12px rgba(66,224,138,.08);}
.sushi-logo-img{height:36px;width:auto;max-width:100%;display:block;border-radius:9px;}
.sushi-nav{display:flex;flex-direction:column;gap:3px;}
.sushi-nav a{display:flex;align-items:center;gap:.8ch;min-height:48px;padding:.6em 12px;box-sizing:border-box;border-radius:10px;
  color:var(--s-ink)!important;font-size:var(--s-nav-font-size,.93rem);font-weight:550;position:relative;border:1px solid transparent;
  transition:background .16s,color .16s,border-color .16s,box-shadow .16s;}
.sushi-nav a:not(.sushi-nav-gh) svg,.sushi-nav a:not(.sushi-nav-gh) img.sushi-ico-img{width:22px;height:22px;stroke:currentColor;stroke-width:1.7;fill:none;flex:0 0 auto;}
.sushi-nav a:not(.sushi-nav-gh) img.sushi-ico-img{object-fit:contain;}
.sushi-nav a.active:not(.sushi-nav-gh){background:var(--s-accent-soft);color:var(--s-accent-ink)!important;font-weight:700;}
.sushi-nav a.active::after,.sushi-more-sheet a.active::after{content:none;}
@media (hover:hover){.sushi-nav a:not(.active):hover{color:var(--s-accent-ink)!important;background:var(--s-accent-soft);}}
.sushi-nav a:focus-visible{outline:2px solid var(--sg);outline-offset:2px;}
/* Nav-gruppe (Tools): en tynd skillelinje + en lille versal-overskrift. Overskriften er et link
   til gruppens oversigt naar den har en side (53), ellers ren tekst. */
.sushi-nav-group{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding-top:8px;border-top:1px solid #1c211e;}
.sushi-nav .sushi-nav-gh{display:flex;align-items:center;gap:.5ch;min-height:32px;padding:.2em .8em;border:0;border-radius:9px;background:none;box-shadow:none;
  color:var(--s-nav-muted)!important;font-size:.7rem;font-weight:760;letter-spacing:.1em;text-transform:uppercase;}
.sushi-nav a.sushi-nav-gh svg,.sushi-nav a.sushi-nav-gh img.sushi-ico-img{width:13px;height:13px;stroke-width:2;}
.sushi-nav a.sushi-nav-gh.active{color:var(--sg)!important;background:none;border:0;box-shadow:none;}
@media (hover:hover){.sushi-nav a.sushi-nav-gh:hover{color:var(--s-accent-ink)!important;background:none;}}
/* Who we are, Settings and Log out / Log in sit at the bottom of the column. margin-top:auto
   pins them there when the list is short; a taller list scrolls as ONE area with them last. */
.sushi-side-end{margin-top:auto;display:flex;flex-direction:column;gap:3px;padding-top:8px;border-top:1px solid #1c211e;}
.sushi-side-end>.sushi-nav{margin:0;}
/* Log in / Log out: the last item in the sidebar, matching the nav links */
.sushi-auth{display:flex;align-items:center;gap:.8ch;min-height:48px;padding:.6em 12px;border-radius:10px;text-decoration:none;
  color:var(--s-ink);font-size:var(--s-nav-font-size,.93rem);font-weight:550;border:1px solid transparent;
  transition:background .16s,color .16s,border-color .16s;}
.sushi-auth svg,.sushi-auth img.sushi-ico-img{width:22px;height:22px;stroke:currentColor;stroke-width:1.7;fill:none;flex:0 0 auto;}
.sushi-auth img.sushi-ico-img{object-fit:contain;}
@media (hover:hover){.sushi-auth:hover{color:var(--s-accent-ink);background:var(--s-accent-soft);}}
.sushi-auth:focus-visible{outline:2px solid var(--sg);outline-offset:2px;}


/* · MOBIL-NAV: fast i BUNDEN, app-style: FEM faste pladser (fire sider + More), ikon over label,
   INTET vandret scroll. Ejer-fund 4/9 2026: den scrollende pille-bar (8 punkter) lagde den aktive
   fane under den klaebende More-knap, saa "Predictions" stod halvt skjult. Resten af nav-modellen
   bor i More-arket (hele modellen, ikke "resten"). Astra-header + footer bevares · */
.sushi-tabbar{display:none; --sg:var(--s-accent,#2f7d54);}
html:not(.sushi-menu-js) .sushi-more-button,.sushi-menu-js .sushi-more-native,.sushi-menu-js .sushi-more-cb{display:none!important;}
@media (max-width:900px){
  .sushi-tabbar{display:flex;align-items:stretch;gap:2px;position:fixed;left:0;right:0;bottom:0;z-index:40;font-family:var(--s-font);
    background:var(--s-surface);-webkit-backdrop-filter:none;backdrop-filter:none;
    border-top:1px solid #1c211e;padding:6px 6px calc(6px + env(safe-area-inset-bottom));}
  .sushi-tabbar a,.sushi-tabbar .sushi-more-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:3px;min-height:50px;padding:4px 2px;border:0;border-radius:10px;background:transparent;position:relative;
    color:var(--s-ink);text-decoration:none;font-size:var(--s-fs-min);font-weight:600;line-height:1.1;letter-spacing:.01em;
    white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  .sushi-tabbar a span,.sushi-tabbar .sushi-more-btn span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
  .sushi-tabbar a .sushi-frontpage-label{white-space:normal;overflow:visible;text-overflow:clip;text-align:center;}
  /* EN LINJE PR. FANE (ejer-dom 17/10 2026). Fem lige brede spor gav "Predictio..." ved 320 px og
     "My / Frontpage" paa to linjer, mens "More" og "Fixtures" stod med luft. Sporene deler nu
     pladsen efter INDHOLDET (flex-basis auto), saa de korte etiketter giver plads til de lange, og
     alle fem staar fuldt udskrevet paa én linje fra 320 px. Ingen etiket forkortes, intet skjules. */
  .sushi-tabbar a,.sushi-tabbar .sushi-more-btn{flex:1 1 auto;}
  .sushi-tabbar a .sushi-frontpage-label{white-space:nowrap;}
  .sushi-tabbar a svg,.sushi-tabbar .sushi-more-btn svg,.sushi-tabbar a img.sushi-ico-img,.sushi-tabbar .sushi-more-btn img.sushi-ico-img{width:22px;height:22px;box-sizing:content-box;padding:3px 12px;
    border-radius:999px;stroke:currentColor;stroke-width:1.7;fill:none;flex:0 0 auto;}
  .sushi-tabbar .sushi-more-btn svg{fill:currentColor;}
  /* The same small current-page dot as the sidebar, beside the icon without adding height. */
  .sushi-tabbar a.active{color:var(--s-accent-ink)!important;background:var(--s-accent-soft);font-weight:700;}
  .sushi-tabbar a.active::after{content:none;}
  .sushi-tabbar a:focus-visible,.sushi-tabbar .sushi-more-btn:focus-visible{outline:2px solid var(--sg);outline-offset:-2px;}
}
/* · MOBIL "More"-ark: HELE navigationen, ogsaa de punkter der ikke er i baren · */
.sushi-more-wrap{display:none;}
.sushi-more-cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}
body.sushi-menu-open{overflow:hidden;}
@media (max-width:900px){
  html:has(.sushi-more-cb:focus-visible) .sushi-more-btn.sushi-more-native{outline:2px solid var(--sg,#42e08a);outline-offset:-2px;}
  .sushi-more-wrap{display:block;font-family:var(--s-font);}
  .sushi-more-scrim{display:none;position:fixed;inset:0;z-index:44;background:rgba(6,9,7,.55);
    -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);}
  /* Hele modellen skal kunne naas (23/10 2026): dvh er den SYNLIGE hoejde med browserens
     vaerktoejslinjer (vh er den stoerste og skubbede toppen ud af billedet paa iOS), arket
     ruller selv uden at traekke siden med, og hovedet med luk-knappen bliver staaende. */
  .sushi-more-sheet{position:fixed;left:0;right:0;bottom:0;z-index:45;
    max-height:82vh;max-height:min(82dvh,calc(100dvh - 24px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    padding:14px 14px calc(18px + env(safe-area-inset-bottom));
    background:var(--s-nav-bg);-webkit-backdrop-filter:none;backdrop-filter:none;
    border-top:1px solid #1c211e;border-radius:18px 18px 0 0;
    visibility:hidden;transform:translateY(101%);transition:transform .22s ease;box-shadow:0 -18px 40px rgba(0,0,0,.45);}
  .sushi-more-cb:checked~.sushi-more-scrim{display:block;}
  .sushi-more-cb:checked~.sushi-more-sheet{visibility:visible;transform:translateY(0);}
  .sushi-more-head{display:flex;align-items:center;justify-content:space-between;margin:-14px 2px 12px;padding:14px 0 0;
    position:sticky;top:-14px;z-index:1;background:var(--s-nav-bg);
    color:#8d9a94;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;}
  .sushi-more-x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
    margin:0;padding:0;border-radius:0;border:0;background:transparent;color:#cdd3d1;cursor:pointer;}
  .sushi-more-x svg,.sushi-more-x img.sushi-ico-img{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;}
  .sushi-more-x:focus-visible{outline:2px solid var(--sg,#42e08a);outline-offset:2px;}
  /* To kolonner: hele menuen staar paa EN skaerm uden at rulle paa en normal telefon. */
  .sushi-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .sushi-more-sheet a{display:flex;align-items:center;gap:4px;min-height:48px;padding:.6em 1px;box-sizing:border-box;position:relative;
    border-radius:10px;border:0;background:none;
    color:var(--s-ink)!important;text-decoration:none;font-size:.875rem;font-weight:500;line-height:1.4;white-space:nowrap;}
  .sushi-more-sheet a:not(.sushi-more-gh) svg,.sushi-more-sheet a:not(.sushi-more-gh) img.sushi-ico-img{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;flex:0 0 auto;}
  .sushi-more-sheet a:not(.sushi-more-gh) img.sushi-ico-img{object-fit:contain;}
  .sushi-more-sheet a.active:not(.sushi-more-gh){background:var(--s-accent-soft);color:var(--s-accent-ink)!important;font-weight:700;}
  .sushi-more-sheet a:focus-visible{outline:2px solid var(--sg,#42e08a);outline-offset:2px;}
  .sushi-more-auth{margin-top:9px;justify-content:center;}
  .sushi-more-sheet .sushi-more-group .sushi-more-auth.sushi-more-tool{grid-column:2;margin:0;justify-content:flex-start;border:0;}
  /* Gruppen spaender begge kolonner og har sit eget 2-spors grid, saa overskriften staar over
     sine egne punkter. Overskrifts-linket er et fuldt 44 px touch-maal. */
  .sushi-more-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px;}
  .sushi-more-sheet .sushi-more-gh{grid-column:1/-1;display:flex;align-items:center;gap:6px;min-height:44px;margin:0;padding:0 2px;
    border:0;background:none;color:#8d9a94!important;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;}
  .sushi-more-sheet a.sushi-more-gh svg,.sushi-more-sheet a.sushi-more-gh img.sushi-ico-img{width:14px;height:14px;stroke-width:2;}
  .sushi-more-sheet a.sushi-more-gh.active{color:var(--sg,#42e08a)!important;background:none;border:0;}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .sushi-more-sheet{transition:none;}
}
/* Zoom/reflow below a normal phone width: keep full labels and targets. The
 * approved two-column order is unchanged from320px upwards. */
@media (max-width:19.75rem){
  .sushi-more-grid,.sushi-more-group{grid-template-columns:minmax(0,1fr);}
  .sushi-more-sheet{padding-inline:8px;}
  .sushi-more-sheet .sushi-more-group .sushi-more-auth.sushi-more-tool{grid-column:1;}
}

/* ============================================================
   KNAP-SYSTEM (site-bredt) · pill-form: primary (orange), success (grøn), ghost (hvid).
   Brug sparsomt: kun til HANDLINGER (tilføj/eksport/CTA), aldrig som fyld · den rolige
   flade bæres stadig af kort + hårlinjer. Klasser: .sushi-btn + --primary/--success/--ghost.
   ============================================================ */
.sushi-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55ch;border:0;cursor:pointer;
  font-family:var(--s-font);font-weight:650;font-size:var(--s-btn-font-size,.95rem);line-height:1;padding:.85em 1.5em;border-radius:var(--s-btn-radius,999px);
  text-decoration:none;white-space:nowrap;transition:background-color var(--s-dur) var(--s-ease),border-color var(--s-dur) var(--s-ease),color var(--s-dur) var(--s-ease);}
.sushi-btn svg{width:1.15em;height:1.15em;stroke:currentColor;stroke-width:2.2;fill:none;flex:0 0 auto;}
.sushi-btn--primary{color:#fff;background:var(--s-btn-primary);box-shadow:var(--s-btn-primary-sh);}
.sushi-btn--success{color:#fff;background:var(--s-btn-success);box-shadow:var(--s-btn-success-sh);}
.sushi-btn--ghost{color:var(--s-ink);background:var(--s-surface);border:1.5px solid var(--s-line);box-shadow:var(--s-shadow);}
/* En KNAP er ikke et link. Snippet 50 farver alle <a> inde i .sushi-app groenne (0,1,1) og slog
   .sushi-btn--primary (0,1,0): resultatet var groen tekst paa orange bund, maalt 2,3:1 (aug
   2026, Sign in-knappen). Vi vinder her med a + to klasser (0,2,1) i stedet for at fifle med
   link-reglens specificitet - det ville ramme forsidens egne .sf-btn. Ingen ancestor-krav, saa
   det holder ogsaa hvis shell-klassen mangler. */
/* ⚠️ ``border-bottom:0`` er FJERNET: haarlinjen er nu en inset-skygge (50), og nulstillingen
   aad ghost-knappens egen bundkant, saa den stod aaben forneden. */
a.sushi-btn.sushi-btn--primary,a.sushi-btn.sushi-btn--success{color:#fff!important;box-shadow:none;}
a.sushi-btn.sushi-btn--ghost{color:var(--s-ink)!important;}
@media (hover:hover){
  .sushi-btn--primary:hover,.sushi-btn--success:hover{transform:none;filter:brightness(1.04);}
  .sushi-btn--ghost:hover{border-color:var(--s-accent);color:var(--s-accent-ink);}
}
.sushi-btn:active{transform:none;filter:brightness(.97);}
.sushi-btn:focus-visible{outline:2px solid var(--s-accent);outline-offset:2px;}

/* Tracker-knapperne (45): rent, moderne look · neutral grøn, ingen orange. Hover = lille nudge
   + blød skygge/glow (ALDRIG kant-/farveskift). Tracker-specifikt blok; rører ikke .sushi-btn-systemet. */
body.sushi-shell .sushi-tracker .st-btn{border-radius:999px;font-weight:620;padding:.64em 1.25em;
  border:1px solid var(--s-line);background:var(--s-surface);color:var(--s-ink);box-shadow:0 1px 2px rgba(28,27,23,.05);
  transition:color var(--s-dur) var(--s-ease),border-color var(--s-dur) var(--s-ease),background-color var(--s-dur) var(--s-ease);}
body.sushi-shell .sushi-tracker .st-btn--add{border:0;color:#fff;background:#17221c;box-shadow:0 2px 8px rgba(20,32,26,.26);}
body.sushi-shell .sushi-tracker .st-btn--accent{border:0;color:#fff;background:var(--s-accent);box-shadow:0 2px 8px rgba(47,125,84,.24);}
@media (hover:hover){
  body.sushi-shell .sushi-tracker .st-btn:hover{transform:none;border-color:var(--s-accent);}
  body.sushi-shell .sushi-tracker .st-btn--add:hover{transform:none;border-color:var(--s-accent);}
  body.sushi-shell .sushi-tracker .st-btn--accent:hover{transform:none;border-color:var(--s-accent);}
}
body.sushi-shell .sushi-tracker .st-btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(28,27,23,.06);}

@media (prefers-reduced-motion:reduce){.sushi-nav a,.sushi-btn,.sushi-side{transition:none;}.sushi-btn:hover{transform:none;}}
