/* U3 — VÅRT formspråk, frysta tokens (UPPGRADERING_3D.md §3, mätningar §9.1).
 *
 * Reglerna som gav värdena, så att en ändring kan prövas mot samma krav:
 *
 * 1. FÄRGERNA ÄR HÄRLEDDA, INTE VALDA. `tools/palett_kontrast.py` samplar
 *    riktiga ortofoto-pixlar (klassade av banlagrens polygoner, inte av en
 *    färggissning), kör dem genom `CourseMap.MAP_FILTER` med mobilens egen
 *    `bildfilter.js`, och mäter WCAG-kontrast på Burlöv OCH Barsebäck.
 *    Ändrar du en overlayfärg här: kör provet igen.
 *
 * 2. INGEN ENSAM FÄRG KAN KLARA KRAVET — det är bevisat, inte tyckt. Efter
 *    filtret ligger sand på luminans ~0,90 och trädskugga på ~0,01. Kravet
 *    4,5:1 mot sand ger taket L ≤ 0,165; mot skugga ger det golvet L ≥ 0,220.
 *    Fönstret är TOMT. Läsbarheten bärs därför av ett PAR: fyllning + kontur.
 *    Det är samma grepp U8 redan beskriver, nu med tal bakom sig.
 *
 * 3. KONTUREN ÄR SÅ LJUS DEN KAN VARA, INTE MÖRKARE. Fem kandidater prövades;
 *    först ren svart bär alla duor över 4,5:1 (sämsta 4,66 mot Burlövs
 *    fairway). `#0c2e22`, som var i drift, når bara 3,32.
 *
 * 4. CHROMEN ÄR AVMÄTTAD OCH KYLIGARE ÄN GRÄSET. Gräset ligger på nyans 76°
 *    (ORTOFOTO_FARG.md). Chromen ligger på 158° — den läses som "inte en del
 *    av banan". Mättnaden sänktes från 54–59 % till 22 %: den gamla ramp:en
 *    var kylig men INTE avmättad, och §3.3 kräver båda.
 *
 * Filen är enda stället färgerna bor. Hårdkoda inte en färg i en vy — då kan
 * de två glida isär, och det är precis den sortens fel princip 4 finns för.
 */

:root {
  /* ---- chrome: avmättad, kyligare än gräset (regel 4) ---- */
  --bg: #16221e;
  --card: #1e2f28;
  --line: #2e483e;
  --ink: #edf3f0;          /* 14,5:1 mot --bg */
  --dim: #a8bdb2;          /*  8,3:1 mot --bg */
  --accent-ink: #06180f;

  /* Flikradens yta. EGEN token, inte --card: chrome-färgerna här är medvetet
     avmättade och kyligare än gräset (regel 4), men flikraden är samma
     komponent på alla rundans vyer, och de andra sidorna bär sin egen grönare
     ton. Med --card blev kartans flikrad synligt gråare än Enkel vy och
     Scorekort — knappt märkbart förut, tydligt när skalet blev fullskärm och
     remsan växte (2026-08-10). Värdet är rundvyernas gröna kortfärg. */
  --flikrad-yta: #123c2d;

  /* Genomskinlig chrome-yta: banan ska synas IGENOM panelen, inte bakom en
     opak platta (§3.3). Avmättningen ligger i ytan, inte i en ny färg. */
  --framebg: rgba(22, 34, 30, .62);
  --frameblur: saturate(.72) blur(10px);

  /* Panelernas glasyta. Låg opacitet + avmättning i stället för en opak
     platta — banan ska synas igenom. Kanten är ljus och svag, inte en linje i
     en egen färg: den ska avgränsa, inte konkurrera med banan. */
  --panel: rgba(22, 34, 30, .82);
  --panelkant: rgba(237, 243, 240, .15);
  --panelkant-svag: rgba(237, 243, 240, .10);
  /* Skummet bakom ett kort som ligger ÖVER sidan (hålkortet i
     faltanalys). Mörkare och kallare än --framebg: här ska det som
     ligger under sluta konkurrera, inte skina igenom. */
  --skum: rgba(6, 12, 10, .72);
  --skugga: 0 10px 32px rgba(0, 0, 0, .42);
  --skugga-lag: 0 2px 8px rgba(0, 0, 0, .45);

  /* ---- overlay: fyllning + kontur (regel 2 och 3) ---- */
  --accent: #ffb703;       /* slaglinjen, i drift sedan tidigare (§3.1) */
  --accent-djup: #e07a00;
  --overlay-kontur: #000000;
  --overlay-kontur-bredd: 1.5px;
  --fara: #ff5a4d;
  --vatten: #4bb3ff;
  /* Green-accenten är chromens egen, inte banans — den används på knappar och
     aktiva lägen, aldrig som overlay ovanpå ortofotot. */
  --accent-ui: #37b06b;
  --accent-ui-ljus: #7fe0aa;   /* aktivt läge i verktygsraden */
  --accent-ui-kant: rgba(78, 171, 121, .8);
  --accent-ui-yta: #1a4c38;    /* aktiv flik/knapp: fylld yta i chrome-familjen */
  /* Samma familj, ett steg ljusare: stora tryckytor som ska hittas med handske
     i solsken (hålkvittots steppers). Mot --card ger --accent-ui-yta 1,4:1 och
     den här 2,7:1 — knappen syns som en knapp utan att börja konkurrera med
     --accent-ui, som är primärknappens fyllning på samma kort. */
  --accent-ui-yta-ljus: #2e7a59;
  --info: #8fd6ff;             /* siktrader och andra upplysningar i panel */
  /* PL18b: landningszonerna på planeringskartan. Två toner, för utslagets zon
     och par 5:s läggupp-zon är två olika frågor — "hur långt från tee" mot
     "hur långt kvar". Ljusa och kalla med flit: de ligger som en tunn ton
     ovanpå gräs och ska inte kunna läsas som vatten (mörkblått), bunker (sand)
     eller slagkedjan (--accent-ui). */
  --zon-utslag: #62d8ff;
  --zon-lagg: #e2a6ff;
  --varning: #ffcf4d;
  /* Femklassens fjärde steg (F7/F8): dubbel ligger MELLAN bogey och
     trippel, och behöver därför ett eget steg i rampen. Utan det föll
     dubbel och trippel ihop i samma röda — och det är just den skarven
     både nivåskillnaden och dagsformen ligger i (FALT_PLAN §3.2). */
  --utfall-dubbel: #f59042;
  /* "Spelar som"-läget på kartans greenkort (2026-09-02). Sedan lägesväljaren
     lämnade toppraden är kortets KANT det enda som säger vilket läge talen
     räknats i, så färgen bär hela betydelsen — därför en egen ton och inte
     --vatten-ui eller --markor-jag, som redan betyder andra saker på samma
     skärm. Mörkblå med flit: den ska läsas som "ett läge är på", inte som en
     varning eller en tryckbar accent, och den ligger mot en mörk glasyta som
     en ljusblå kant hade lyst sönder.
     Tonen är vald genom att rendera fem kandidater mot de fyra underlag kanten
     faktiskt möter — chrome-mörkt, skog, sand och green (2026-09-02). Detta är
     den MÖRKASTE som fortfarande skiljer sig från --line mot alla fyra; ett
     steg till (#1d3d80) tappade mot skog. Mörkare än så kräver en bredare
     kant, och bredden är låst: den flyttar talen. */
  --spelas-som-kant: #244a95;

  /* Live-rundans markörer. De ligger ovanpå banan och bär därför konturen
     (regel 2) — `--markor-ring` är den ljusa ringen som gör dem läsbara mot
     både sand och skugga. */
  --markor-pin: #e23b3b;
  --markor-pin-ink: #1a0606;
  --markor-jag: #3b82f6;
  --markor-gps: #e26a5a;
  --markor-ring: #ffffff;
  --vatten-ui: #4aa6e0;        /* vattenetiketter i chrome, inte på banan */

  /* Nedtonade varianter — samma färger, lägre närvaro. Finns som tokens så att
     en ändring av grundfärgen följer med hit i stället för att lämna en
     bortglömd rgba() efter sig. */
  --dim-svag: rgba(168, 189, 178, .6);
  --dim-svagare: rgba(168, 189, 178, .53);
  --varning-svag: rgba(255, 207, 77, .4);
  --accent-ui-fyll: rgba(55, 176, 107, .85);
  --accent-ui-tval: rgba(55, 176, 107, .22);
  --markor-pin-fyll: rgba(226, 59, 59, .85);
  /* Putt-etikettens pastill på kartan: --accent-ink med luft, så etiketten
     går att läsa mot gräs utan att bli en egen ruta. */
  --accent-ink-yta: rgba(6, 24, 15, .72);
  --panel-svag: rgba(14, 51, 38, .34);
  /* Oreggad FAB: medvetet nästan opak svart, så en färgad ring/text kan bära
     betydelsen ensam. Undantaget från glasytan, och det är avsiktligt. */
  --fab-oreggad: rgba(0, 0, 0, .72);

  /* Navigationsknapp ovanpå kartan (kartans hålbyte). SAMMA mörka ton som
     --framebg, bara mer genomskinlig (.45 mot .62): pilen är navigation, inte
     ännu ett mätkort, och ska väga mindre än korten den står bredvid — men
     vikten ska tas med opacitet, inte med en ljus yta. En ljus variant
     (--ink på 16 %) provades 2026-08-26 och togs tillbaka: den lyfte knappen
     ur chrome-familjen och lämnade vit text utan mörk botten. */
  --navknapp-yta: rgba(22, 34, 30, .45);

  /* Varningskort (planera.html): bärnsten i chrome-familjens ljushetstrappa. */
  --amber-yta: #4a3413;
  --amber-kant: #7a5a1f;
  --amber-ink: #f0d48a;

  /* Skuggfärgen är EN färg, inte sex olika kortformer (#0007/#0009/…). */
  --skuggfarg: rgba(0, 0, 0, .44);
  --skuggfarg-djup: rgba(0, 0, 0, .6);

  /* ---- typografi: serif enbart till identiteten (§3.4) ---- */
  --serif: ui-serif, Georgia, "Times New Roman", serif;
  --sans: -apple-system, "Segoe UI", Roboto, sans-serif;

  /* ---- bottenchromens lyft (§3.4) ----
     Allt som ligger nere lyfts av den nedre remsans höjd + safe-area, så inget
     kan hamna under den på någon skärm — det är precis den sortens fel vi gjort
     med notch och tangentbord. Handräknade offsets (`+56px`, `+58px`, `+66px`)
     är samma tal skrivet fyra gånger och glider isär vid första ändring; de
     uttrycks i stället som var(--lyft) plus sin egen lilla luft.
     Vyer med en nedre remsa sätter --remsa; övriga ärver 0. */
  --remsa: 0px;
  --lyft: calc(env(safe-area-inset-bottom) + var(--remsa) + 10px);

  /* ---- rörelse (§3.4) ---- */
  --tryck: 150ms;
  --lagesbyte: 420ms;
  --kurva: cubic-bezier(.22, .61, .36, 1);
}

/* Serif enbart till identiteten: bannamn, hålkort, tee-väljare. Allt
   funktionellt är sans — det är greppet som gör att vyn läses som klubbguide
   och inte som en GPS-app, och det slutar fungera om serifen sprider sig. */
.identitet, .halkort, .tee-val { font-family: var(--serif); letter-spacing: .01em; }

/* Kvittens på tryck: kort, snabb, med en liten nedskalning. */
.tryckbar { transition: transform var(--tryck) var(--kurva),
                        background var(--tryck) var(--kurva); }
.tryckbar:active { transform: scale(.97); }

/* Siffror och etiketter ovanpå banan bär konturen (regel 2) — utan den är de
   oläsliga mot ljus sand. Gäller både HTML-etiketter och SVG-text. */
.pabanan {
  color: var(--ink);
  paint-order: stroke fill;
  -webkit-text-stroke: var(--overlay-kontur-bredd) var(--overlay-kontur);
  text-shadow: 0 1px 2px var(--overlay-kontur);
}

@media (prefers-reduced-motion: reduce) {
  :root { --tryck: 0ms; --lagesbyte: 0ms; }
  .tryckbar:active { transform: none; }
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}
