/* =====================================================
   assets/css/cross-browser-responsive.css
   =====================================================
   Sitewide, ADDITIV kompatibilitets- och mobilanpassningslager.
   Skriven för att aldrig kunna krocka med er befintliga style.css/
   footer.css/login.css m.fl. (som inte finns i mitt projekt-root och
   därför inte kan redigeras direkt utan risk) – allt här är antingen:
     a) generella webbläsar-kompatibilitetsfixar som är säkra överallt, eller
     b) helt nya klassnamn (dp-*) som bara min egen JS sätter/tar bort.

   Ladda EFTER er övriga CSS (sist i <head>) så att den kan komplettera.
===================================================== */

/* ---- 1. Generella cross-browser-fixar (Chrome/Firefox/Safari/Edge) ---- */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%; /* Förhindrar att Safari på iPhone auto-förstorar text vid rotation */
  text-size-adjust: 100%;
}

html, body {
  max-width: 100%;
  overflow-x: hidden; /* Stoppar horisontell scroll om något enstaka element råkar bli för brett */
}

img, video, iframe {
  max-width: 100%;
  height: auto;
}

/* Safari/iOS: förhindrar att sidan zoomar in automatiskt när ett formulärfält
   fokuseras, vilket annars händer för alla <input>/<select>/<textarea> med
   font-size under 16px. */
@media (max-width: 640px) {
  input, select, textarea {
    font-size: 16px !important;
  }
}

/* Safari/äldre Firefox: nollställ inkonsekvent standardutseende på formulärelement */
input, select, textarea, button {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 6px;
}
input[type="checkbox"], input[type="radio"] {
  -webkit-appearance: auto;
  appearance: auto; /* Kryssrutor/radioknappar ska behålla sitt naturliga OS-utseende */
}

/* Safari flexbox-bugg: flex-barn krymper inte korrekt utan explicit min-width */
.header-inner, .footer-grid, .nav, .dashboard, .sidebar__nav {
  min-width: 0;
}

/* Konsekvent, tillgänglig tap-yta på mobil (Apples/Googles rekommendation: 44px) */
@media (max-width: 900px) {
  a, button, .btn-primary, .btn-secondary, .sidebar__link {
    min-height: 40px;
  }
}

/* Stöd för iPhone med "hack"/notch (safe-area) så innehåll inte hamnar bakom skärmens rundade hörn */
body {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

/* Responsiva tabeller sitewide: om en <table> inte redan är inlindad i en
   scroll-container, undvik i alla fall att den tvingar fram horisontell
   sidscroll på hela sidan. */
table {
  max-width: 100%;
}

/* ---- 2. Mobil hamburgermeny för huvudnavigationen ----
   Klasserna nedan (dp-nav-toggle, dp-nav-open) sätts/tas bort av
   assets/js/mobile-nav.js. Aktiv bara under 900px – över det görs
   ingenting alls, er befintliga navigering i style.css påverkas inte. */

.dp-nav-toggle {
  display: none;
}

@media (max-width: 900px) {
  .header-inner {
    flex-wrap: wrap;
  }

  .dp-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    background: none;
    font-size: 1.5rem;
    cursor: pointer;
    margin-left: auto;
    order: 2;
  }

  .header .nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    order: 3;
    background: #fff;
    border-top: 1px solid #eee;
    margin-top: 12px;
    padding-top: 8px;
  }

  .header .nav.dp-nav-open {
    display: flex;
  }

  .header .nav a,
  .header .nav .site-nav-dropdown,
  .header .nav .addon-dropdown {
    width: 100%;
    padding: 10px 4px;
  }

  .header .nav .site-nav-dropdown__menu {
    position: static;
    box-shadow: none;
    width: 100%;
  }

  .header-search {
    order: 4;
    flex-basis: 100%;
    margin-top: 8px;
  }

  .auth {
    order: 1;
  }
}

/* =====================================================
   PUNKTFIXAR – startsidans header + chattwidget
   (rapporterat: Om oss osynlig förutom vid hover, Logga in/
   Registrera dig hamnar fel/överlappar, chattens stängknapp
   gör ingenting eftersom panelen inte respekterar [hidden]).
   ===================================================== */

/* Chattwidgeten: garantera att [hidden] faktiskt döljer panelen,
   oavsett vad style.css råkar sätta för display-regler på divar. */
#dp-chat-panel[hidden] {
  display: none !important;
}

/* "Om oss"-knappen i huvudmenyn är en <button>, och knappar ärver
   inte automatiskt textfärg från sin förälder i alla webbläsare –
   därav att den ser osynlig ut mot den mörka headern tills hover. */
.header .site-nav-dropdown__trigger {
  background: none !important;
  border: none !important;
  font: inherit !important;
  color: #fff !important;
  opacity: 1 !important;
}
.header .site-nav-dropdown:hover .site-nav-dropdown__trigger,
.header .site-nav-dropdown.active .site-nav-dropdown__trigger {
  color: #f28b93 !important;
}

/* Logga in / Registrera dig: tvinga dem längst till höger på SAMMA rad
   som resten av menyn (istället för att hamna på egen rad, eller
   överlappa övrig navigation).

   Föregående försök lät menylänkarna (.nav) bli en egen flex-container
   med flex-wrap: wrap – det fungerade inte förutsägbart eftersom er
   befintliga style.css redan lägger flyt/bredd/marginal-regler på
   *varje enskild länk* (samt på dropdown-diven "Om oss", som har en
   annan HTML-struktur än de vanliga <a>-länkarna). När jag också
   gjorde .nav till "display:flex" krockade det med dessa okända regler
   och gav en ojämn, trasig radbrytning.

   Ny, mer försiktig strategi: rör INTE .nav:s interna layout alls
   (låt style.css sköta menylänkarna som vanligt, precis som innan alla
   dessa fixar). Lägg bara till en enkel skalning på hela raden: om allt
   inte får plats på en rad krymper "container header-inner" till
   flex-wrap, MEN logga + meny hålls ihop på översta raden och endast
   auth-knapparna tillåts hamna på en tydlig egen rad till höger under
   – aldrig mitt i menyn. */
.header .header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 8px;
}
.header .header-inner .logo {
  flex-shrink: 0;
  margin-right: 0;
  order: 1;
}
.header .header-inner .header-search {
  order: 2;
}
.header .header-inner .nav {
  order: 3;
  flex: 1 1 auto;
  min-width: 0;
}
.header .header-inner .auth {
  position: static !important;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  order: 4;
}

/* Efter att "Partnerskap & Sponsorer" lades till blev menyraden bredare,
   men headerns ".container" har fortfarande en fast max-bredd – på breda
   skärmar blir det då dött, tomt utrymme mellan "Mitt konto"-knappen och
   den faktiska fönsterkanten. Låt bara headerns container använda mer av
   den tillgängliga bredden (påverkar inte .container på andra ställen på
   sajten, bara i <header>), så hamnar Logga ut/Mitt konto närmare kanten. */
.header .container {
  max-width: 1500px;
}

/* =====================================================
   3. SURFPLATTA (600–1024px)
   =====================================================
   Ett mellanläge mellan mobilens 900px-brytpunkt ovan och full
   desktop. De flesta av era sidor bygger på flex/grid med
   auto-fit/minmax, vilket redan anpassar sig själv, men containrar
   med FASTA pixel-bredder (t.ex. tvåkolumns-layouter i annonser,
   dashboard-widgets) tenderar att bli för trånga på iPad-bredd.
   Detta är medvetet försiktigt: vi krymper bara padding/gap, vi
   tvingar aldrig om en layout som redan fungerar. */
@media (min-width: 601px) and (max-width: 1024px) {
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* Vanligt mönster: en tvåkolumns-grid (innehåll + sidopanel) med fast
     bredd på sidopanelen blir för smal på iPad – låt den brytpunkten
     komma tidigare än på ren mobil, om class-namnet matchar. */
  .annons-detail-layout,
  .annons-content {
    gap: 1rem;
  }
}

/* =====================================================
   4. LITEN MOBIL (max 420px, t.ex. iPhone SE/Mini)
   =====================================================
   Extra marginal-krympning så inget innehåll klipps av på de allra
   smalaste skärmarna. */
@media (max-width: 420px) {
  .container {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* =====================================================
   5. TOUCH / SCROLL-BETEENDE (alla mobiler + surfplattor)
   =====================================================*/

/* Mjuk, "kastbar" scroll på iOS för alla element som medvetet
   scrollar horisontellt (kort-rader, tabeller inlindade i wrapper) –
   utan detta känns scroll på iPhone/iPad hackig och stel. */
.table-responsive,
.scroll-x,
[class*="-scroll"] {
  -webkit-overflow-scrolling: touch;
}

/* Förhindrar att hela sidan studsar/scrollar i sidled när en modal
   eller ett dropdown-menyval öppnas nära skärmkanten på mobil –
   påverkar bara sidled, vertikal scroll fungerar som vanligt. */
html, body {
  overscroll-behavior-x: none;
}

/* Tar bort den gråa "flash"-highlighten som Android Chrome annars
   visar vid varje tryck på en länk/knapp – ger en mer app-lik känsla. */
a, button, .btn-primary, .btn-secondary {
  -webkit-tap-highlight-color: transparent;
}

/* Synligt, konsekvent fokusläge (tangentbordsnavigering) i alla
   webbläsare – Safari/Firefox ritar annars ingen eller en avvikande
   fokusring jämfört med Chrome/Edge, vilket är ett tillgänglighets-
   och testbarhetsproblem snarare än bara kosmetiskt. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #6d3fc0;
  outline-offset: 2px;
}

/* =====================================================
   6. WEBBLÄSARSPECIFIKA FALLBACKS
   =====================================================
   Chrome, Edge och nyare Firefox/Safari stödjer redan grid/flexbox/
   gap fullt ut, så inget särskilt behövs där. De punkter som
   historiskt skiljer sig är: */

/* Safari kräver -webkit-prefix för backdrop-filter (används i
   ev. glas-effekter/overlays) – annars uteblir bara effekten helt
   utan att något går sönder, men vi lägger till den ändå. */
.backdrop-blur,
[style*="backdrop-filter"] {
  -webkit-backdrop-filter: blur(10px);
}

/* Konsekvent scrollbar-utseende: Firefox stödjer scrollbar-width/
   scrollbar-color, Chrome/Edge/Safari (Chromium/WebKit) stödjer
   ::-webkit-scrollbar. Utan detta ser scrollbars omotiverat olika
   ut mellan webbläsare på samma sida. */
* {
  scrollbar-width: thin;
  scrollbar-color: #c9c2d6 transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-thumb {
  background: #c9c2d6;
  border-radius: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}

/* OBS om Internet Explorer ("Explorer"): Microsoft avvecklade IE
   permanent i juni 2022 – det går inte längre att installera eller
   använda det på Windows, och det har i praktiken 0% användare
   kvar globalt. IE saknar dessutom stöd för grid, CSS-variabler och
   moderna flexbox-regler som hela sajten bygger på, så att stödja
   det skulle kräva en helt separat, väsentligt enklare layout.
   Rekommendationen är att inte lägga tid på IE och istället fokusera
   på Chrome, Safari, Firefox och Edge (alla moderna, Chromium/Gecko/
   WebKit-baserade) – vilket är exakt vad reglerna ovan riktar sig
   mot. Säg till om ni ändå vill ha en enkel "ej längre supporterad
   webbläsare"-varningsruta för det fåtal som skulle besöka sajten
   med IE, det går snabbt att lägga till separat. */
