.home-play-card{padding:16px;background:#fffdf7;border:1px solid #d9e2d6;border-radius:16px;margin:14px 0;color:#083b2d}.home-play-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.home-play-card h2{font:600 23px Georgia,serif;margin:0}.home-play-card header button{border:0;background:none;color:inherit;font-size:12px}.home-play-card header>span{font-size:12px}.home-round-summary{display:grid;gap:6px;padding:10px 0}.home-round-summary span{font-size:13px}.home-resume{width:100%;padding:13px;background:#063e2d;color:#fff;border:0;border-radius:10px;font-weight:700;text-transform:uppercase}.home-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.home-side-grid article{display:flex;gap:10px;padding:10px;border:1px solid #e3e8dd;border-radius:10px}.home-side-grid article img{width:28px;height:32px;object-fit:contain}.home-side-grid article div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere;font-size:13px}.home-side-grid small{font-size:11px}.home-event-row{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1.3fr);gap:8px;width:100%;padding:12px 0;border:0;border-bottom:1px solid #e1e6da;background:none;text-align:left;color:inherit;font-size:12px;align-items:center}.home-event-row strong{font-weight:500;overflow-wrap:anywhere}.home-event-row:last-child{border-bottom:0}
html body #app .home-play-card{margin:10px 0;padding:12px}
html body #app .home-play-card h2{display:flex;align-items:center;gap:10px}
html body #app .home-card-icon{width:30px;height:30px;object-fit:contain}
.home-round-tiles{display:grid;grid-template-columns:minmax(0,1fr) 76px 48px;gap:5px;margin:8px 0}
.home-round-tiles>div{border:1px solid #e5e8df;border-radius:7px;padding:8px 5px;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:3px}
.home-round-tiles .home-ball-tile{text-align:left;padding-left:8px}
.home-round-tiles small{font-size:10px;line-height:1.3}.home-round-tiles strong{font-size:13px}
html body #app .home-my-round .home-resume{padding:10px;font-size:13px}
html body #app .home-side-grid>p{grid-column:1/-1;font:400 13px/1.5 Inter,system-ui,sans-serif!important;color:#405847;margin:0!important}
.home-event-detail{display:flex;align-items:center;gap:6px}.home-event-detail img{width:18px;height:18px;object-fit:contain;flex-shrink:0}
html body #app .home-side-grid article>div{flex:1}
html body #app .home-side-results{list-style:decimal;margin:5px 0 0;padding-left:16px;font:400 12px/1.4 Inter,Arial,sans-serif}
html body #app .home-side-results li{padding:4px 0;border-bottom:1px solid #e3e8dd}
.v2-lb-detail-title{display:flex;gap:12px;align-items:center;padding:8px 4px 14px}.v2-lb-detail-title>div{flex:1}.v2-lb-detail-title strong{display:block;font:600 18px Georgia,serif;color:#123d2d}.v2-lb-detail-title small{display:block;font-size:11px;color:#5a7363}.v2-lb-detail-title>b{font:600 24px Georgia,serif;padding:12px;background:#e8eee1;border-radius:10px;color:#123d2d}.v2-score-legend{display:flex;justify-content:space-between;gap:5px;font-size:8px;color:#33533f;padding:12px 2px}.v2-score-legend span:before{content:'';display:inline-block;width:9px;height:9px;margin-right:3px;background:#164e3a;border-radius:3px}.v2-score-legend span:nth-child(2):before{background:#cee6d2}.v2-score-legend span:nth-child(3):before{background:#d6dcd3}.v2-score-legend span:nth-child(4):before{background:#f5dfad}.v2-score-legend span:nth-child(5):before{background:#dc9861}
.tl-playing .home-play-card h2 img{width:28px;height:28px;object-fit:contain}.tl-playing .home-side-grid p{grid-column:1/-1}.tl-playing{margin-top:-24px}.tl-live-card{background:linear-gradient(120deg,#0a3d30,#194d40);color:white;border-radius:20px;padding:18px;margin:10px 0}.tl-live-card header{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1.5px}.tl-live-card header button{background:none;border:0;color:white;font-size:12px}.tl-live-card h2{font:25px Georgia,serif;margin:10px 0}.tl-live-row{display:flex;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff22}.tl-live-row:last-child{border:0}.tl-live-row>strong{flex:1;font-size:14px}.tl-live-row>div{text-align:right;max-width:40%}.tl-live-row b{font-size:22px;color:#ead17b}.tl-live-row small{display:block;font-size:10px;color:#d6e2d6}.tl-medal{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#dfc65d;color:#103d31;font-weight:700;flex-shrink:0}.tl-live-row:nth-of-type(2) .tl-medal{background:#a4beb0}.tl-live-row:nth-of-type(3) .tl-medal{background:#b78d59}.tl-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid #dce3d9;overflow:hidden;flex:none;background:#ecede1;color:#103d31;font-size:12px}.tl-avatar img{width:100%;height:100%;object-fit:cover}.tl-day{padding:8px 14px;margin:0;font-size:12px}.tl-round-tabs{padding:12px;gap:8px}.tl-round-tabs button{border-radius:18px;font-size:13px;font-weight:600}.tl-round-title{font-size:16px;margin:12px 16px 20px;font-weight:500}.tl-leaderboard .lb-row-main,.tl-leaderboard .lb-colhead-white-concept{display:grid;grid-template-columns:22px 28px minmax(0,1fr) minmax(60px,100px) 28px;gap:6px;align-items:center;padding:14px 10px;width:100%;text-align:left;border:0;background:transparent;color:var(--ink)}.tl-points .lb-row-main,.tl-points .lb-colhead-white-concept{grid-template-columns:20px 26px minmax(0,1fr) 40px 40px 24px}.tl-leaderboard .lb-colhead-white-concept{font-size:10px;font-weight:700;text-transform:uppercase}.tl-leaderboard .lb-row-main{min-height:68px;border-bottom:1px solid #dbe2d5;font-size:14px;cursor:pointer}.tl-leaderboard .lb-me>.lb-row-main{background:#f5edcc}.lb-person{min-width:0}.lb-name{display:block;overflow-wrap:anywhere;font-size:15px}.lb-sub{display:block;color:#718076;font-size:11px;margin-top:3px}.lb-rank,.lb-holes{color:#84948d}.lb-expand-toggle{font-size:24px;font-weight:600}.tl-under{color:#e43734}.tl-leaderboard [data-scorecard-detail]{padding:18px 12px;background:#fffef8}.tl-leaderboard [hidden]{display:none}.tl-score-scroll{overflow-x:auto;border-radius:9px;border:1px solid #dfe5d9}.tl-score-scroll table{min-width:440px;white-space:nowrap;background:#fafbf7}.tl-score-scroll th,.tl-score-scroll td{text-align:center;padding:9px 5px;font-size:11px;color:#143d2d}.tl-score-scroll th small{display:block;color:#bd9b32;height:8px}.tl-score-scroll .score-dot{display:inline-block;min-width:23px;padding:4px;border-radius:5px}.tl-score-scroll .eagle{background:#164e3a;color:white}.tl-score-scroll .birdie{background:#cee6d2}.tl-score-scroll .par{background:#d6dcd3}.tl-score-scroll .bogey{background:#f5dfad}.tl-score-scroll .double{background:#dc9861}.tl-leaderboard .v2-lb-detail-title{gap:8px}.tl-leaderboard .v2-lb-detail-title strong{font-family:inherit;font-size:15px}.tl-leaderboard .v2-lb-detail-title b{font:600 19px sans-serif}.tl-leaderboard .v2-score-legend{flex-wrap:wrap}.nav-more-dots{display:block;width:25px;height:25px;font:bold 25px/17px sans-serif;letter-spacing:1px}.tl-playing .home-side-grid{grid-template-columns:1fr}.tl-playing .home-play-card header>span{white-space:nowrap}.tl-playing .home-events h2{font-size:22px}
html body #app .home-main-menu{position:relative;z-index:30}.home-main-menu summary{list-style:none;cursor:pointer;font-size:26px}.home-main-menu summary::-webkit-details-marker{display:none}.home-main-menu nav{position:absolute;top:54px;left:0;min-width:210px;padding:8px;background:#fffdf7;border:1px solid #d5dfd4;border-radius:14px;box-shadow:0 8px 28px #001c2430}.home-main-menu nav button{display:block;width:100%;border:0;border-radius:8px;background:none;text-align:left;padding:13px;color:#083d2c;font-size:16px}.home-main-menu nav button:hover{background:#edf1e8}
.tl-hero-chrome{position:relative;isolation:isolate}.tl-hero-chrome:has(.home-main-menu[open]){z-index:40}.tl-hero-chrome .bnh-topbar{position:absolute;top:16px;left:16px;right:16px;z-index:30;display:flex;justify-content:space-between;align-items:flex-start}.tl-hero-chrome .bnh-top-actions{display:flex;gap:8px}.tl-hero-chrome .bnh-glass-icon{display:flex;align-items:center;justify-content:center;position:relative;width:44px;height:44px;padding:9px;border:1px solid #ffffff15;background:#16352b55;backdrop-filter:blur(10px);border-radius:15px;color:white;font-size:29px;line-height:1}.tl-hero-chrome .bnh-glass-icon svg{width:26px;height:26px}.tl-hero-chrome .bnh-red-dot{position:absolute;width:9px;height:9px;background:#f45656;border:2px solid white;border-radius:50%;top:8px;right:8px}.tl-hero-chrome .v2-hero-profile{position:absolute;bottom:32px;left:20px;z-index:3;display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;color:white;text-align:left}.tl-hero-chrome .v2-hero-avatar{width:62px;height:62px;border:2px solid white;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#174a39;font-size:24px}.tl-hero-chrome .v2-hero-avatar img{width:100%;height:100%;object-fit:cover}.tl-hero-chrome .v2-hero-profile strong{display:block;font:27px Georgia,serif}.tl-hero-chrome .v2-hero-profile small{display:block;font-size:13px;margin-top:4px}.tl-hero-chrome .v2-trip-status{position:absolute;right:18px;bottom:28px;display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid #ffffff88;border-radius:22px;background:#16372b66;backdrop-filter:blur(9px);color:white;text-align:center;z-index:3}.tl-hero-chrome .v2-trip-status img{width:26px;height:26px;filter:brightness(0) invert(1)}.tl-hero-chrome .v2-trip-status strong{display:block;font-size:28px;line-height:1}.tl-hero-chrome .v2-trip-status span{display:block;font-size:10px;margin-top:4px}.tl-hero-wave{position:absolute;bottom:-1px;left:0;width:100%;height:43px;z-index:2}.tl-notifications{width:min(92vw,480px);border:1px solid #d4dfd2;border-radius:18px;padding:22px;background:#fffdf7;color:#103d31;max-height:80dvh}.tl-notifications::backdrop{background:#00180e66}.tl-notifications header{display:flex;align-items:center;justify-content:space-between}.tl-notifications header h2{font:27px Georgia,serif;margin:0}.tl-notifications header button{border:0;background:none;font-size:28px}.tl-notifications small{display:block;font-size:12px;color:#6a7d70;margin-top:6px}.tl-hero-chrome .home-main-menu nav{max-height:70dvh;overflow:auto}@media(min-width:600px){.tl-hero-chrome .v2-hero-avatar{width:78px;height:78px}.tl-hero-chrome .bnh-glass-icon{width:52px;height:52px}.tl-hero-chrome .v2-hero-profile strong{font-size:32px}}

/* Keep hole numbers level when only some holes receive handicap strokes. */
.tl-score-scroll thead th{vertical-align:top;line-height:16px}
.tl-score-scroll thead th small{line-height:8px}
.tl-score-scroll tbody tr:nth-child(odd){background:#fff}
.tl-score-scroll tbody tr:nth-child(even){background:#f0f2eb}

/* Match Trip's compact home live leaderboard. */
html body #app .tl-live-card{padding:12px 14px;margin:0 0 10px}
html body #app .tl-live-card h2{font:500 18px/1.2 "Bodoni Moda",Georgia,serif;letter-spacing:0;margin:4px 0 8px}
html body #app .tl-live-row{padding:6px 0;gap:8px;min-height:48px}
html body #app .tl-live-row>.tl-avatar{width:32px;height:32px}
html body #app .tl-live-row>strong{font:600 13px/1.2 Inter,system-ui,sans-serif;min-width:0}
html body #app .tl-live-row b{font-size:20px;line-height:1.1}
html body #app .tl-live-row small{font:400 10px/1.3 Inter,system-ui,sans-serif}
html body #app .tl-live-row .tl-medal{width:26px;height:26px;font-size:14px}

/* v542: sidhuvudet och deltavlingsflikarna satt langt isar - sidhuvudet
   slutade med 19 px, sidan borjade med 20 och flikraden lade pa ytterligare
   12. Trimma luften en gang har, sa galler den alla vyer i Tournament.
   Reglerna ligger i live.css for att den laddas EFTER app.css. */
#page-header{padding-bottom:11px}
.page{padding-top:12px}
.tabs{padding-top:0}
/* Leaderboarden har ingen egen marginal, sa flikraden bar sin dar.
   Inuti .page finns den redan - da tar flikraden bort sin egen, annars
   hamnar flikarna bade langre ner och langre in an innehallet. */
.tl-round-tabs{padding:10px 12px}
.page>.tl-round-tabs{padding:0 0 10px}
.tl-day{margin-bottom:8px}
.tl-round-title{margin-top:4px}

/* v543: halhuvudet och halbollarna var satta for stora - trimma rubriken,
   raden med par/index/langd och sjalva bollarna. Reglerna maste ligga efter
   app.css, som satter h2 med !important. */
.cs-hole-head{padding:0 0 2px!important}
.cs-hole-head h2{font:400 23px/1.1 'Libre Caslon Display',Georgia,serif!important;letter-spacing:-.01em}
.cs-hole-head p{font:400 11.5px/1.25 Inter,'DM Sans',sans-serif;margin:2px 0 0;color:#5d6f64}
.cs-hole-head button,.cs-hole-head .cs-header-spacer{height:36px;min-width:36px;font-size:20px}
/* Bollarna ska ligga tatt under par/index-raden - inte i ett eget stycke. */
.cs-hole-strip{gap:5px;padding:2px 0 8px}
.cs-hole-strip button{min-width:32px;height:32px;font-size:12.5px}

/* v543: sidotavlingarna grupperade per speldag. Registreringen gors i
   banguiden, sa har finns bara resultaten. */
.ta-sides .ta-side-day{margin:0 0 22px}
.ta-sides .ta-side-day>h2{font:400 21px/1.15 'Libre Caslon Display',Georgia,serif;margin:0 0 2px}
.ta-sides .ta-side-date{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.ta-sides .card{padding:14px 16px;margin-bottom:10px}
.ta-sides .card h3{margin:0 0 8px;font:600 14px Inter,'DM Sans',sans-serif}
.ta-sides .ta-side-row{display:flex;justify-content:space-between;gap:12px;margin:5px 0;font-size:14px}
.ta-sides .ta-side-note{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted)}

/* v545: notispanelen - lista over spelhandelser med en knapp for att sla pa
   eller snooza dem. Zzz markerar snoozat lage, precis som i Trip. */
.tl-notif-feed{padding:18px}
.tl-notif-feed header{align-items:flex-start;gap:12px;margin-bottom:12px}
.tl-notif-feed header h2{font:400 24px/1.1 'Libre Caslon Display',Georgia,serif;margin:0}
.tl-notif-feed header p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.tl-notif-actions{display:flex;align-items:center;gap:6px;flex:none}
.tl-notif-toggle{position:relative;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);
 background:#fff;color:var(--ink);display:grid;place-items:center;font-size:0}
.tl-notif-toggle svg{width:21px;height:21px}
.tl-notif-toggle.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.tl-notif-toggle.is-off{color:#8a9a90}
.tl-notif-toggle.is-off span{position:absolute;right:-1px;bottom:-1px;background:#fff;border:1px solid var(--line);
 border-radius:8px;padding:0 4px;font:700 8.5px/1.5 Inter,sans-serif;color:#6a7d70}
.tl-notif-scroll{display:grid;gap:2px;max-height:52dvh;overflow:auto;margin:0 -4px}
.tl-notif-item{display:block;padding:11px 4px;border-bottom:1px solid var(--line)}
.tl-notif-item:last-child{border-bottom:0}
.tl-notif-item>span{display:block;font-size:14px;line-height:1.35}
.tl-notif-item>small{display:block;margin-top:3px;font-size:11.5px;color:var(--muted)}
.tl-notif-item.is-message>span{font-weight:600}
.tl-notif-empty{margin:10px 4px;font-size:13.5px;color:var(--muted)}
.tl-notif-feed footer{margin-top:14px;display:flex;justify-content:flex-end}
.tl-notif-feed footer button{border:1px solid var(--line);background:#fff;color:var(--ink);
 border-radius:11px;padding:9px 14px;font:600 13px Inter,sans-serif}

/* v546: scorekortet fyller bredden pa samma satt som i Trip. .page och
   .cs-match-entry hade 20 resp. 14 px sidluft - Trip kor ~7 px, sa flikar,
   hero, bollvaxlaren och korten gar nastan kant i kant. */
/* v548: kant i kant. 7 px lag kvar som en tunn ram runt hero och korten -
   nu gar flikraden, heron, bollvaxlaren och korten anda ut till skarmkanten.
   Korten har egen ram och radie, sa de ramlar inte ihop med kanten. */
.page.clean-ball-overview{padding-left:0;padding-right:0}
.cs-match-entry{padding-left:7px;padding-right:7px}
/* v546: halbollarna lag kvar 14 px ner - det var .cs-match-entry:s egen
   toppluft, inte halhuvudet, som holl isar dem. */
.cs-match-entry{padding-top:2px}
/* score-ui.css laser storleken langre ner i filen med bade !important och
   html body #app #content-view - da racker det inte med klassen ensam. */
html body #app #content-view .cs-hole-strip button{flex:0 0 32px!important;width:32px!important;
 min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;
 max-height:32px!important;font-size:12.5px!important}

/* v550: i score-inmatningen bar sidhuvudet halet - "HÅL 4" med par, index och
   langd under, centrerat och utan ...-knapp, precis som i Trip. Spacern till
   hoger ar lika bred som bakatpilen sa rubriken hamnar mitt i. */
#page-header.t-header-hole{padding:12px 14px 8px;min-height:0;align-items:center}
#page-header.t-header-hole .t-header-heading{flex:1;justify-content:center;text-align:center;gap:0}
#page-header.t-header-hole h1{font:400 25px/1.15 Georgia,'Libre Caslon Display',serif;letter-spacing:.01em}
#page-header.t-header-hole .t-header-heading p{margin:3px 0 0;max-width:none;
 font:400 12.5px/1.3 Inter,'DM Sans',sans-serif;color:#5d6f64}
#page-header.t-header-hole>span.t-header-back{width:32px;flex:none;border:0;background:none;pointer-events:none}

/* v550: slutresultatkortet pa startsidan. Guldkant och en enda knapp - det
   ska kannas som att nagot oppnats, inte som en till lista med siffror. */
.tl-final-card{background:linear-gradient(120deg,#0a3d30,#124a38);color:#fff;border:1px solid #c9a34155;
 border-radius:20px;padding:18px;margin:0 0 12px;box-shadow:0 18px 38px #06251b26}
.tl-final-card>span{display:block;font:700 10px/1 Inter,sans-serif;letter-spacing:.22em;color:#e3c98f}
.tl-final-card h2{font:500 22px/1.15 'Bodoni Moda',Georgia,serif;margin:8px 0 6px;color:#fff}
.tl-final-card p{margin:0 0 14px;font:400 13px/1.45 Inter,sans-serif;color:#d8e5da}
.tl-final-card button{width:100%;border:0;border-radius:12px;padding:14px;background:#e8cf8a;color:#0a3d30;
 font:700 14px Inter,sans-serif}

/* v553: korttitlarna pa startsidan ("Dagens runda", "Sidotavlingar") gick i
   fet Georgia och blev tunga. Bodoni Moda 500 ar samma typsnitt som live-
   kortet och tavlingskorten anvander - lattare streck, samma familj. */
html body #app .home-play-card h2{font:500 23px/1.2 'Bodoni Moda',Georgia,serif;
 letter-spacing:-.02em;margin:0}

/* v559: samma hårstreck mellan sidhuvud och innehåll som Trip har i
   score-inmatningen - ett under rubriken och ett under hålraden. */
#page-header.t-header-hole{border-bottom:1px solid #e3e7dd}
.cs-match-entry>.cs-hole-strip{border-bottom:1px solid #e3e7dd;margin-bottom:8px}

/* v563: bottenmenyn ska matcha Trip exakt. Trip har en rad med fast hojd
   80 px och INGEN safe-area-luft under - i Tournament lade vi pa
   env(safe-area-inset-bottom), och i PWA-lage blir det ~34 px extra sa
   baren vaxte langt over Trips. Etiketterna gar ocksa i Trips typsnitt och
   storlek: 12 px, halvfet, samma systemsans som resten av Trips meny. */
html body #app #gamebook-bottom-nav{height:80px;min-height:80px;padding:0 8px;
 align-items:center;justify-content:space-around;box-sizing:content-box}
html body #app #gamebook-bottom-nav button>span{
 font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
 font-size:12px;font-weight:650;line-height:1.15;letter-spacing:0;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
html body #app #gamebook-bottom-nav button{gap:5px}

/* Innehallet ska sluta ovanfor baren OCH ovanfor hemindikatorn. Baren sjalv
   bar ingen luft (som i Trip), sa marginalen laggs pa sidan i stallet. */
html body #app #content-view{padding-bottom:calc(80px + 22px + env(safe-area-inset-bottom,0px))}

/* v583: Trips LAYOUTGRUND, som saknades. Det var den, inte hjalten, som var
   problemet.

   Trip (public/styles.css rad 1-62): html och body ar 100 % hoga med
   overflow:hidden - SIDAN scrollar aldrig. #app ar en flexkolumn med hojden
   100dvh minus safe-areorna, och det ar #content-view som scrollar inuti.
   Darfor ligger #app alltid still mot vyporten, och pa startsidan kan det
   dras upp i statusfaltet (v819) med hjalten som forsta barn.

   Tournament lat i stallet hela dokumentet scrolla. Da hjalper ingen negativ
   marginal: #app foljer med dokumentflodet och statusfaltet malas av
   html-elementets bakgrund - forst nastan svart, sedan vit.

   Nedan ar Trips rad 1-62 och rad 27070-27078, ordagrant oversatta till
   Tournaments skal (#page-header i stallet for header, och #content-views
   egen bottenpadding). */
html,body{height:100%!important;margin:0!important;overflow:hidden!important}
html body #app{
 display:flex!important;flex-direction:column!important;
 height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
 min-height:0!important}
html body #app #page-header{flex-shrink:0!important;position:relative!important;z-index:50!important}
html body #app #content-view{
 flex:1 1 auto!important;min-height:0!important;
 height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
 overflow-y:auto!important;-webkit-overflow-scrolling:touch;
 box-sizing:border-box!important}

/* v581: Trips losning, port rakt av ur public/styles.css. Den bestar av TRE
   delar, och det var de tva forsta som saknades helt i Tournament - darfor
   var statusfaltet bara vitt:

   1. v816-grunden: <html> far padding-top lika med safe-arean och en egen
      bakgrund. Det ar html-elementets bakgrund som malar statusfaltet.
      Tournament hade ingen sadan regel alls, sa falten blev vitt.
   2. v819: pa startsidan dras #app upp med -safe-area-inset-top, sa att
      appen sjalv flyttar in i statusfaltet. Hjalten vaxer med samma matt.
   3. v820: html::before malar samma hjaltebild over statusfaltet, sa att
      overscroll och eventuella glapp far bild i stallet for en farg.

   data-bnh-view och --bnh-active-hero-url satts av renderApp, precis som
   Trip gor i sin egen renderApp. */
@supports (padding: max(0px)){
 }

/* v568: bottenmenyns geometri, tagen rakt ur Trips renderNav. Tournament gav
   varje knapp max-width:84px och lat space-around fordela luften - da hamnar
   Hem och Banguide ute i kanterna och Leaderboard langt fran mittknappen.
   Trip ger i stallet varje knapp flex:1, sa de delar utrymmet jamnt runt den
   fasta 82 px-knappen i mitten. Ikonerna ar 28 px i Trip, inte 25, och
   avstandet till etiketten 2 px, inte 7. */
html body #app #gamebook-bottom-nav button{
 flex:1;min-width:0;max-width:none;gap:2px;padding:6px 4px;
 display:flex;flex-direction:column;align-items:center;justify-content:center}
html body #app #gamebook-bottom-nav button img,
html body #app #gamebook-bottom-nav button svg{width:28px;height:28px;flex-shrink:0}
html body #app #gamebook-bottom-nav .tl-nav-score{
 flex:0 0 82px;width:82px;min-width:82px;max-width:82px;padding:0;gap:0}
html body #app #gamebook-bottom-nav .tl-nav-score img{width:100%;height:100%}

/* v569: samma flikspecifikation som Trip - annars var de olika hoga och gick
   i olika typsnitt. Hojden last till 40 px i stallet for att falla ut ur
   padding + radhojd, och Inter i bada apparna ('DM Sans' laddas inte alls,
   sa den foll tillbaka pa Arial har). */
html body #app .tabs button,html body #app .tl-round-tabs button{
 box-sizing:border-box;height:40px;min-height:40px;max-height:40px;
 padding:0 17px;border-radius:18px;border:1px solid #dedfd3;background:#fffef8;
 color:#103d31;font:600 13px/1 Inter,system-ui,-apple-system,sans-serif;letter-spacing:0;
 display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
 box-shadow:none;flex:none}
html body #app .tabs button.active,html body #app .tl-round-tabs button.active{
 background:#103d31;color:#fff;border-color:#dedfd3}

/* v575: scorekortstabellen i leaderboarden.

   Halkolumnerna var minmax(24px,1fr). Pa en smal skarm racker inte bredden
   till 1fr overallt, och da faller kolumnerna tillbaka pa sina minimum -
   fast inte alla samtidigt. Resultatet blev ett storre glapp mellan hal 1
   och 2 an mellan de ovriga. Rena 1fr kan inte bli ojamna: alla halkolumner
   far exakt samma bredd, och etikett- och totalkolumnen krymper i stallet.

   minmax(0,1fr) i stallet for 1fr sa att langa varden inte kan trycka ut en
   enskild kolumn - det ar den vanliga fallgropen med grid och 1fr. */
html body #app #content-view .lb-scorecard-detail:not(.rcup-detail-table) .sc-row{
 grid-template-columns:minmax(48px,64px) repeat(9,minmax(0,1fr)) minmax(30px,38px)!important}

/* Teckenforklaringen ska inte spannas ut over hela bredden. Den borjar till
   vanster och halls ihop; ryms den inte bryter den till en ny rad. */
html body #app .v2-score-legend{justify-content:flex-start;gap:4px 12px;
 padding:10px 2px;flex-wrap:wrap}
html body #app .v2-score-legend span{white-space:nowrap}

/* v578: Etikettkolumnen i scorekortstabellen (Hal / Index / Par / Slag /
   Netto / Poang) ar en <th> i en tabell dar .tl-score-scroll centrerar allt.
   Rubrikerna ska vara vansterstallda - bara siffrorna centreras. */
html body #app .tl-score-scroll table tr>th:first-child,
html body #app .tl-score-scroll table tr>td:first-child{
 text-align:left!important;padding-left:10px!important}

/* v578: tunn vit kontur runt live-kortet + en pulserande rod prick i
   etiketten sa att det syns direkt att stallningen ar live. Pricken sitter
   vid texten den beskriver, inte langst ut till hoger. */
html body #app .tl-live-card{border:1px solid #ffffff5c}
html body #app .tl-live-card .tl-live-label{display:inline-flex;align-items:center;gap:7px}
html body #app .tl-live-card .tl-live-dot{
 display:block;width:8px;height:8px;border-radius:50%;background:#ff4b3e;
 box-shadow:0 0 0 0 #ff4b3e99;animation:tlLivePuls 1.8s ease-out infinite}
@keyframes tlLivePuls{
 0%{box-shadow:0 0 0 0 #ff4b3e99}
 70%{box-shadow:0 0 0 7px #ff4b3e00}
 100%{box-shadow:0 0 0 0 #ff4b3e00}}
@media (prefers-reduced-motion:reduce){
 html body #app .tl-live-card .tl-live-dot{animation:none;box-shadow:0 0 6px #ff4b3ecc}}

/* v578: halkolumnerna i tabellen ska vara exakt lika breda. Tabellen har
   auto-layout, sa en kolumn med ett brett varde (score-dot) drog ut sig och
   glappet mellan hal 1 och 2 blev storre an mellan ovriga. En uttalad bredd
   pa varje halkolumn gor dem jamna; etikett- och totalkolumnen star for sig. */
html body #app .tl-score-scroll table.lb-scorecard-detail tr>th:first-child,
html body #app .tl-score-scroll table.lb-scorecard-detail tr>td:first-child{
 width:72px!important}
html body #app .tl-score-scroll table.lb-scorecard-detail tr>th:last-child,
html body #app .tl-score-scroll table.lb-scorecard-detail tr>td:last-child{
 width:42px!important}
html body #app .tl-score-scroll table.lb-scorecard-detail tr>th:not(:first-child):not(:last-child),
html body #app .tl-score-scroll table.lb-scorecard-detail tr>td:not(:first-child):not(:last-child){
 width:34px!important;min-width:34px!important}

/* v580: startsidan ska se ut som Trips - hjalten forst i flodet, inget
   sidhuvud ovanfor. Trip har ingen #page-header over huvud taget; i
   Tournament doljs den bara pa startsidan sa att hjalten borjar i toppen. */
body.tl-start-view #page-header{display:none!important}

/* v582: bottenmenyns hojd, matt mot Trips riktiga meny i webblasaren.
   Trip: 73 px stapel under 700 px bredd, 75 px over, mittknappen 78 resp 80 px
   och 14 px over stapelns overkant. Tournament lag pa 81 px och 82 px med bara
   9 px overhang - darav intrycket att raden var hogre.
   content-box gor att safe-area-paddningen i botten inte raknas in i hojden,
   sa den synliga stapeln blir lika hog som Trips aven pa iOS. */
html body #app #gamebook-bottom-nav{
 box-sizing:content-box;height:72px;min-height:72px;
 padding:0 8px env(safe-area-inset-bottom,0px);align-items:center}
html body #app #gamebook-bottom-nav .tl-nav-score{
 width:78px;height:78px;min-width:78px;max-width:78px;flex:0 0 78px;margin-top:-24px}
@media(min-width:700px){
 html body #app #gamebook-bottom-nav{height:74px;min-height:74px}
 html body #app #gamebook-bottom-nav .tl-nav-score{
  width:80px;height:80px;min-width:80px;max-width:80px;flex:0 0 80px;margin-top:-24px}
}

/* v584: i PWA-lage nollar Trip bottenmenyns nedre padding i stallet for att
   lagga pa safe-area-inset-bottom (11-app.js rad 31632:
   @media all and (display-mode: standalone){#gamebook-bottom-nav nav{
   padding-bottom:0!important;bottom:0!important}}).
   Tournament vaxte i stallet med hela home indicator-marginalen - darav att
   raden blev hogre sa fort appen kordes fran hemskarmen. */
html.bnh-standalone body #app #gamebook-bottom-nav{
 padding-bottom:0!important;bottom:0!important}

/* v585: tavlingslistan ("Dina tavlingar") ritas av renderTournamentEventsHome
   och gar aldrig genom renderApp - darfor hade den varken data-bnh-view eller
   tl-start-view, och alla regler for startsidan missade den helt.
   Diagnostiken pa telefonen visade #app med toppen pa 62 px: html-paddningen
   sköt ned appen och ingenting drog upp den igen. Listan ar en hjalte-forst-vy
   precis som startsidan, sa den far samma behandling. */
@supports (padding: max(0px)){
}

/* ===========================================================================
   v587: Trips block, ordagrant. Inget eget pahitt.

   Grunden (public/styles.css rad 1-24) - HELA paddningen, inte bara toppen,
   och box-sizing, annars stammer inte hojderna:
   ===========================================================================*/
@supports (padding: max(0px)){
 html{
  min-height:calc(100% + env(safe-area-inset-top,0px))!important;
  padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px)
          env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)!important;
  box-sizing:border-box!important;
  background-attachment:fixed!important}
 html body{min-height:100%!important;box-sizing:border-box!important}

 /* Trips v819 (styles.css rad 27070) - BARA startsidan flyttas in i
    safe-arean. Ovriga vyer ligger kvar under statusfaltet, sa sidhuvudet och
    bottenmenyn hamnar dar de ska. */
 html[data-bnh-view="start"]{padding-top:0!important}
 html[data-bnh-view="start"] body #app{
  margin-top:0!important;
  height:calc(100dvh - env(safe-area-inset-bottom,0px))!important}
 html[data-bnh-view="start"] body #app #content-view{
  height:calc(100dvh - env(safe-area-inset-bottom,0px))!important}
 html[data-bnh-view="start"] body #app .bnh-home-v11 .bnh-hero{
  margin-top:0!important;
  height:calc(360px + env(safe-area-inset-top,0px))!important;
  min-height:calc(360px + env(safe-area-inset-top,0px))!important}
 html[data-bnh-view="start"] body #app .tl-hero-chrome .bnh-topbar{
  top:calc(env(safe-area-inset-top,0px) + 16px)!important}
 html[data-bnh-view="start"] body #app .tournament-brand-anchor{
  top:calc(env(safe-area-inset-top,0px) + 16px)!important}

 /* Tavlingslistan ar ocksa en hjalte-forst-vy och far samma behandling. */
 /* Tavlingslistan doljer bottenmenyn, sa ingenting tacker html-paddningen
    for home indicator - den blev en gron remsa langst ner. Har far #app hela
    hojden i stallet, och luften mot indikatorn laggs inuti listan. */
 html[data-bnh-view="events"]{padding-top:0!important;padding-bottom:0!important}
 html[data-bnh-view="events"] body #app{
  margin-top:0!important;height:100dvh!important}
 html[data-bnh-view="events"] body #app #content-view{height:100dvh!important}
 html[data-bnh-view="events"] body #app .te-home{
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))!important}
 html[data-bnh-view="events"] body #app .te-hero{
  padding-top:calc(34px + env(safe-area-inset-top,0px))!important}
}

/* Bakgrunden bakom safe-arean pa hjaltevyerna. Ar den gron i stallet for vit
   syns det direkt om ett band nagonsin dyker upp igen - da ar det appens egen
   bakgrund, inte iOS statusrad. */
html{background:#fafbf7!important}
html[data-bnh-view="start"],html[data-bnh-view="events"]{background:#0b2a21!important}
