/* Runde 1: nye sider og skall (uten figurer) */
.lv-spinn{ display:block; width:44px; height:44px; border-radius:50%; border:3px solid rgba(255,255,255,.14); border-top-color:var(--lv-ice); animation:lv-snurr 1s linear infinite; margin:0 auto 14px; }
@keyframes lv-snurr{ to{ transform:rotate(360deg); } }
.lv-laster{ display:grid; place-items:center; min-height:50vh; text-align:center; }
.lv-lasterside{ min-height:100vh; display:grid; place-items:center; }
.lv-diskmodus .hode{ display:grid; place-items:center; }
.lv-diskmodus .modik{ display:grid; place-items:center; width:100%; height:100%; color:var(--mf,#c1d1cf); }
.lv-diskmodus .modik svg{ width:46%; height:46%; }
/* ting som tilhørte figurene */
.lv-ptrlop, .lv-purrebunn, .lv-kiwibunn, .lv-peko, .lv-pekoopp, .lv-passer, .lv-lopover, .lv-kommerfig, .lv-purreboks, .lv-tomfly img, .lv-lasterark{ display:none !important; }
.lv-gnistfeir{ font-size:2rem; color:#f2d27a; text-shadow:0 0 18px #f2d27a; }
.lv-hr{ border:0; border-top:1px solid var(--lv-line); margin:4px 0; }
.lv-farlig{ color:#f0a2a2 !important; }
.lv-svak{ opacity:.35; }
.lv-col{ display:flex; flex-direction:column; gap:8px; align-items:stretch; }
.lv-stack{ display:flex; flex-direction:column; gap:12px; min-width:0; }
.lv-grid2{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; }
.lv-sidetopp{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.lv-chipknapp{ display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; border:1px solid var(--lv-line); background:transparent; color:var(--lv-muted); font-size:.78rem; cursor:pointer; }
.lv-chipknapp svg{ width:13px; height:13px; }
.lv-chipknapp.on{ color:#f3f4f4; background:linear-gradient(180deg,#3e474c,#1e2427); border-color:rgba(193,209,207,.35); }
@media (max-width:700px){ .lv-duo{ grid-template-columns:minmax(0,1fr); } }

/* menyen: ikonene lyser mens du kan bytte side (Innstillinger › Livsstil) */



@keyframes lv-lysgul{ 0%,100%{ filter:drop-shadow(0 0 2px rgba(255,235,150,.4)); } 50%{ filter:drop-shadow(0 0 10px rgba(255,235,150,1)); } }
.lv-slots{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.lv-slot, .lv-bytt{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:18px; background:var(--lv-tile2); border:1px solid var(--lv-line); color:var(--lv-ink); text-align:left; cursor:pointer; }
.lv-slot{ border-color:rgba(255,224,122,.55); box-shadow:0 0 18px -8px #ffe07a; }
.lv-slot > :last-child, .lv-bytt > :last-child{ margin-left:auto; }
.lv-bytt{ width:100%; justify-content:space-between; margin-bottom:8px; }
.lv-bytt.on{ border-color:rgba(193,209,207,.6); background:linear-gradient(180deg,#3e474c,#262d31); }
.lv-byttik{ display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.07); flex:none; }
.lv-byttik svg{ width:18px; height:18px; }
.lv-byttliste{ max-height:44vh; overflow:auto; display:flex; flex-direction:column; gap:6px; }
.lv-byttliste .lv-bytt{ margin:0; padding:10px 14px; }
.lv-byttfaner{ margin-top:10px; }
.lv-malvalg{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lv-malvalg .lv-bytt{ flex-wrap:wrap; margin:0; width:auto; align-items:flex-start; flex-direction:column; gap:6px; }
.lv-malvalg .lv-bytt > :last-child{ margin-left:0; }

/* Hjem: dagens flyt */
.lv-flytliste{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.lv-flytrad, .lv-dagrad{ display:grid; grid-template-columns:48px 14px 1fr; align-items:center; gap:10px; padding:7px 0; position:relative; }
.lv-flyttid{ font-family:var(--lv-mono); font-size:.72rem; color:var(--lv-muted); text-align:right; }
.lv-flytrad i, .lv-dagrad > i{ width:10px; height:10px; border-radius:50%; background:var(--k); box-shadow:0 0 10px -1px var(--k); justify-self:center; }
.lv-flyttekst{ display:flex; flex-direction:column; min-width:0; }
.lv-flyttekst small{ opacity:.8; }
.lv-dagrad{ grid-template-columns:48px 14px 1fr auto; }
.lv-utftekst{ font-size:1.05rem; line-height:1.4; }
.lv-hjemduo{ align-items:stretch; }
.lv-nesteb{ border:1px solid rgba(179,210,155,.35); box-shadow:0 0 30px -18px #b3d29b; }

/* Vaner: inngang til hagen */
.lv-hageinngang{ position:relative; display:grid; grid-template-columns:minmax(120px,38%) 1fr auto; align-items:center; gap:16px; border-radius:28px; overflow:hidden; border:1px solid rgba(179,210,155,.4); background:var(--lv-tile); cursor:pointer; padding:0; min-height:110px; }
.lv-hagemini{ height:100%; min-height:110px; }
.lv-hagetekst{ padding:14px 0; }
.lv-hagetekst h2{ font-family:var(--lv-display); font-size:1rem; margin-top:4px; }
.lv-hagepil{ padding-right:20px; color:var(--lv-ice); } .lv-hagepil svg{ width:22px; height:22px; }
.lv-hageinngang:hover{ box-shadow:0 0 28px -10px #b3d29b; }

/* Prosjekter */
.lv-pkort{ display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:22px; background:var(--lv-tile); border:1px solid var(--lv-line); color:var(--lv-ink); text-align:left; cursor:pointer; }
.lv-pkort.kunde{ border-color:rgba(243,211,107,.4); }
.lv-pkort:hover{ border-color:rgba(193,209,207,.45); }
.lv-arkivd summary{ cursor:pointer; }
.lv-orad{ display:flex; align-items:center; gap:6px; }
.lv-orad.ok .lv-vrow span:first-child{ text-decoration:line-through; opacity:.55; }
.lv-timer{ display:flex; align-items:center; justify-content:center; gap:22px; padding:6px 0; }
.lv-timer b{ font-family:var(--lv-display); font-size:1.35rem; min-width:150px; text-align:center; }
.lv-tidrad{ padding:7px 0; border-bottom:1px solid var(--lv-line); }
.lv-mote{ padding:8px 0; border-bottom:1px solid var(--lv-line); } .lv-mote p{ margin-top:4px; }
.lv-fokus{ position:fixed; inset:0; z-index:9700; display:grid; place-items:center; background:radial-gradient(circle at 50% 40%,#26363a,#0f1416 70%); opacity:0; transition:opacity .25s; }
.lv-fokus.inn{ opacity:1; }
.lv-fokusboks{ text-align:center; padding:24px; max-width:420px; }
.lv-fokustid{ font-family:var(--lv-display); font-size:clamp(3.4rem,16vw,6rem); letter-spacing:-.03em; margin:14px 0; text-shadow:0 0 40px rgba(193,209,207,.35); }
.lv-fokustekst{ font-size:1.1rem; margin-bottom:8px; }
.lv-fokusring{ height:5px; border-radius:9px; background:var(--lv-line); margin:20px auto 0; width:min(300px,70vw); overflow:hidden; }
.lv-fokusring i{ display:block; height:100%; width:calc(var(--p,0) * 100%); background:linear-gradient(90deg,#b3d29b,#e9f3dd); box-shadow:0 0 14px #b3d29b; }

/* Notater */
.lv-notater{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
.lv-notat{ display:flex; flex-direction:column; gap:6px; padding:14px; border-radius:18px; background:var(--lv-tile2); border:1px solid var(--lv-line); color:var(--lv-ink); text-align:left; cursor:pointer; }
.lv-notatutdrag{ color:var(--lv-muted); font-size:.86rem; line-height:1.35; }
.lv-notattekst{ line-height:1.6; font-size:1rem; }

/* Budsjett og reiser */
.lv-budfaner{ align-self:flex-start; }
.lv-budhode{ text-align:center; }
.lv-budtall{ font-family:var(--lv-display); font-size:clamp(2rem,8vw,3.2rem); letter-spacing:-.03em; margin:6px 0 12px; }
.lv-budtall.minus{ color:#f0a2a2; }
.lv-budmeter{ height:10px; border-radius:9px; background:var(--lv-line); overflow:hidden; margin-bottom:10px; }
.lv-budmeter i{ display:block; height:100%; background:linear-gradient(90deg,#8fc4d8,#b3d29b); box-shadow:0 0 14px -2px #8fc4d8; }
.lv-katrad{ margin-bottom:12px; }
.lv-prikk{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:8px; }
.lv-kartboks{ padding:0; }
.lv-kart{ display:block; width:100%; height:auto; }
.lv-kartnavn{ fill:#fff; font:600 12px var(--lv-body); paint-order:stroke; stroke:#12171a; stroke-width:3px; }
.lv-kartnavn.lyst{ font-size:11px; }
.lv-kartland{ fill:#c9d4d6; font:9px var(--lv-mono); paint-order:stroke; stroke:#12171a; stroke-width:2.5px; }
.lv-pin{ cursor:pointer; transition:transform .2s; transform-box:fill-box; transform-origin:50% 100%; }
.lv-pin:hover{ transform:scale(1.18); }
.lv-pin:focus{ outline:none; transform:scale(1.18); }
.lv-reiseliste{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.lv-reisekort{ position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; min-height:132px; padding:14px; border-radius:22px; overflow:hidden; background:linear-gradient(150deg,var(--bg),#12171a); color:#fff; text-align:left; border:1px solid var(--lv-line); cursor:pointer; }
.lv-reisekort img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; }
.lv-reisekort::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.65),transparent 65%); }
.lv-reisekort > *{ position:relative; z-index:1; }
.lv-reiseinit{ position:absolute !important; right:14px; top:2px; font-family:var(--lv-display); font-size:4.2rem; opacity:.12; }
.lv-reiseinit.stor{ font-size:9rem; right:22px; top:-14px; }
.lv-reiseinfo{ display:flex; flex-direction:column; gap:3px; } .lv-reiseinfo b{ font-size:1.15rem; }
.lv-reisetid{ text-align:right; display:flex; flex-direction:column; line-height:1; } .lv-reisetid b{ font-family:var(--lv-display); font-size:1.7rem; } .lv-reisetid small{ font-family:var(--lv-mono); font-size:.64rem; color:#d8e0e1; }
.lv-reisehode{ position:relative; min-height:170px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; background:linear-gradient(150deg,var(--bg),#12171a); overflow:hidden; }
.lv-reisehode img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.5; }
.lv-reisehode::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 70%); }
.lv-reisehode > *{ position:relative; z-index:1; }
.lv-reisehodetekst{ display:flex; flex-direction:column; gap:6px; }
.lv-reisetelle{ text-align:right; display:flex; flex-direction:column; line-height:1; } .lv-reisetelle b{ font-family:var(--lv-display); font-size:2.6rem; } .lv-reisetelle small{ font-family:var(--lv-mono); font-size:.7rem; }
.lv-reisefaner{ align-self:flex-start; }

/* Kalender */
.lv-kalhode{ flex-wrap:wrap; }
.lv-kaltittel{ font-family:var(--lv-display); font-size:1rem; margin:14px 0 12px; } .lv-kaltittel::first-letter{ text-transform:uppercase; }
.lv-mndhode, .lv-mndgrid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.lv-mndhode span{ text-align:center; padding-bottom:4px; }
.lv-mcelle{ min-height:58px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; padding:7px 8px; border-radius:12px; background:var(--lv-tile2); border:1px solid transparent; color:var(--lv-ink); cursor:pointer; }
.lv-mcelle.ut{ opacity:.35; } .lv-mcelle.idag{ border-color:var(--lv-ice); box-shadow:0 0 14px -6px var(--lv-ice); }
.lv-prikker{ display:flex; gap:3px; flex-wrap:wrap; } .lv-prikker i{ width:6px; height:6px; border-radius:50%; }
.lv-uke{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.lv-ukedag{ background:var(--lv-tile2); border-radius:16px; padding:8px; min-width:0; border:1px solid transparent; }
.lv-ukedag.idag{ border-color:var(--lv-ice); }
.lv-ukehode{ display:flex; align-items:baseline; gap:6px; background:none; border:0; color:var(--lv-ink); padding:0 0 6px; cursor:pointer; width:100%; border-bottom:1px solid var(--lv-line); margin-bottom:6px; }
.lv-ukehend{ display:flex; flex-direction:column; gap:4px; }
.lv-hend{ display:flex; align-items:flex-start; gap:7px; text-align:left; padding:5px 7px; border-radius:10px; background:color-mix(in srgb,var(--k) 16%,transparent); border:0; border-left:3px solid var(--k); color:var(--lv-ink); font-size:.8rem; line-height:1.25; cursor:pointer; }
.lv-hend i{ display:none; }
.lv-hend .lv-mono{ font-size:.62rem; }
@media (max-width:760px){ .lv-uke{ grid-template-columns:minmax(0,1fr); } .lv-ukedag{ display:grid; grid-template-columns:62px 1fr; gap:8px; } .lv-ukehode{ flex-direction:column; border:0; align-items:flex-start; } }
.lv-katchip{ display:inline-flex; align-items:center; gap:8px; padding:6px 13px; border-radius:999px; background:color-mix(in srgb,var(--k) 20%,transparent); border:1px solid color-mix(in srgb,var(--k) 55%,transparent); color:var(--lv-ink); font-size:.82rem; cursor:pointer; }
.lv-katchip i{ width:9px; height:9px; border-radius:50%; background:var(--k); }
.lv-fargeprikk{ width:32px; height:32px; border-radius:50%; border:3px solid transparent; cursor:pointer; }
.lv-fargeprikk.on{ border-color:#fff; box-shadow:0 0 12px rgba(255,255,255,.4); }
.lv-ikonvalg{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:var(--lv-tile2); border:1px solid var(--lv-line); color:var(--lv-ink); cursor:pointer; } .lv-ikonvalg svg{ width:19px; height:19px; } .lv-ikonvalg.on{ border-color:var(--lv-ice); box-shadow:0 0 12px -4px var(--lv-ice); }
.lv-dagvalg{ display:flex; flex-direction:column; align-items:center; gap:3px; font-size:.78rem; }

/* Koble sammen */
.lv-person{ padding:12px 0; border-top:1px solid var(--lv-line); display:flex; flex-direction:column; gap:6px; }
.lv-person b{ display:flex; align-items:center; gap:8px; } .lv-person b svg{ width:16px; height:16px; }
.lv-privatlas{ padding:4px 0 2px; }
.lv-mottatt{ padding:12px 0; border-top:1px solid var(--lv-line); }

/* Hagen */
body.lv-hagemodus .lv-tab{ opacity:.82; }
body.lv-hagemodus .lv-ptrbtn{ display:none !important; }
.lv-hagerot{ position:static; }
.lv-hage{ position:fixed; inset:0; z-index:20; overflow:hidden; background:var(--grunn); user-select:none; touch-action:none; }
.lv-kamera{ position:absolute; inset:0; }
.lv-verden{ position:absolute; left:0; top:0; will-change:transform; transition:transform .12s linear; }
.lv-bakke{ position:absolute; left:0; top:0; }
.lv-tre, .lv-ting{ position:absolute; transform:translate(-50%,-100%); background:none; border:0; padding:0; cursor:pointer; color:#fff; }
.lv-tre svg, .lv-ting svg{ display:block; overflow:visible; }
.lv-tre.dvale .lv-tre-svg{ opacity:.45; filter:saturate(.4); }
.lv-tre.arkiv .lv-tre-svg{ opacity:.8; }
.lv-trenavn{ position:absolute; left:50%; top:100%; transform:translate(-50%,2px); white-space:nowrap; font:600 12px var(--lv-body); color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.7); background:rgba(18,23,26,.45); padding:2px 8px; border-radius:99px; }
.lv-zzz{ position:absolute; left:55%; top:8%; font:700 13px var(--lv-mono); color:#fff; opacity:.85; animation:lv-zzz 2.6s ease-in-out infinite; }
@keyframes lv-zzz{ 0%,100%{ transform:translateY(0); opacity:.4; } 50%{ transform:translateY(-8px); opacity:1; } }
.lv-trehake{ position:absolute; left:50%; top:-6px; transform:translateX(-50%); width:20px; height:20px; border-radius:50%; background:#7fd08a; display:grid; place-items:center; color:#0c2110; } .lv-trehake svg{ width:12px; height:12px; }
.lv-omr{ position:absolute; padding:14px 22px; pointer-events:none; display:flex; gap:10px; align-items:center; }
.lv-omr .lv-mono{ color:rgba(255,255,255,.78); font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; text-shadow:0 1px 3px rgba(0,0,0,.4); }
.lv-omr b{ font:600 .78rem var(--lv-body); color:#ffe9b0; background:rgba(18,23,26,.6); padding:3px 10px; border-radius:99px; }
.lv-vandrer{ position:absolute; width:0; height:0; z-index:5; }
.lv-vandrerskygge{ position:absolute; left:-15px; top:-4px; width:30px; height:9px; border-radius:50%; background:rgba(0,0,0,.28); }
.lv-vandrerkropp{ position:absolute; left:-22px; top:-64px; width:44px; height:64px; display:flex; align-items:flex-end; justify-content:center; transform-origin:50% 100%; }
.lv-vandrerkropp img{ position:absolute; bottom:0; left:50%; height:62px; width:auto; max-width:none; transform:translateX(-50%); display:none; pointer-events:none; filter:drop-shadow(0 4px 3px rgba(0,0,0,.25)); }
.lv-vandrerkropp img.pa{ display:block; }
.lv-vandrer.gaar .lv-vandrerkropp{ animation:lv-gaa .42s ease-in-out infinite; }
@keyframes lv-gaa{ 0%,100%{ transform:rotate(-4deg) translateY(0); } 25%{ transform:rotate(0) translateY(-3px); } 50%{ transform:rotate(4deg) translateY(0); } 75%{ transform:rotate(0) translateY(-3px); } }
.lv-sommerfugl{ position:absolute; width:8px; height:6px; border-radius:50% 50% 50% 50%; background:#f4a8c0; box-shadow:7px 0 0 #f4a8c0; animation:lv-fly 9s ease-in-out infinite; z-index:4; pointer-events:none; }
@keyframes lv-fly{ 0%,100%{ transform:translate(0,0); } 25%{ transform:translate(60px,-30px); } 50%{ transform:translate(110px,20px); } 75%{ transform:translate(40px,40px); } }
.lv-snoe{ position:absolute; top:-10px; width:6px; height:6px; border-radius:50%; background:#fff; opacity:.85; animation:lv-snoe 8s linear infinite; pointer-events:none; z-index:6; }
@keyframes lv-snoe{ to{ transform:translate(40px,1100px); } }
.lv-glod{ animation:lv-puls 2.4s ease-in-out infinite; } @keyframes lv-puls{ 50%{ opacity:.45; } }
.lv-flamme{ transform-origin:50% 100%; animation:lv-flamme .9s ease-in-out infinite alternate; } @keyframes lv-flamme{ to{ transform:scaleY(1.15) skewX(4deg); } }
.lv-skyer{ position:absolute; inset:0; z-index:30; pointer-events:none; }
.lv-skyer i{ position:absolute; width:62%; height:55%; border-radius:50%; background:radial-gradient(ellipse,#fff 40%,rgba(255,255,255,.0) 72%); filter:blur(8px); transition:transform 1.9s cubic-bezier(.5,0,.2,1), opacity 1.9s; }
.lv-skyer .s1{ left:-8%; top:-6%; } .lv-skyer .s2{ right:-8%; top:-6%; } .lv-skyer .s3{ left:-8%; bottom:-6%; } .lv-skyer .s4{ right:-8%; bottom:-6%; }
.lv-hage.apen .s1, .lv-hage.apen .s3{ transform:translateX(-110%); opacity:0; } .lv-hage.apen .s2, .lv-hage.apen .s4{ transform:translateX(110%); opacity:0; }
.lv-root .lv-hagetilbake{ position:absolute; z-index:25; left:12px; top:calc(var(--lv-dv) + 14px + env(safe-area-inset-top)); }
.lv-root .lv-hagebutikk{ position:absolute; z-index:25; right:12px; top:calc(var(--lv-dv) + 14px + env(safe-area-inset-top)); }
.lv-poengpille{ background:#f2d27a; color:#2a2200; border-radius:99px; padding:1px 8px; font:700 .74rem var(--lv-mono); }
.lv-hagehud{ position:absolute; z-index:25; left:12px; right:12px; bottom:calc(84px + env(safe-area-inset-bottom)); display:flex; flex-direction:column; align-items:center; gap:8px; pointer-events:none; }
.lv-hagehud > *{ pointer-events:auto; background:rgba(18,23,26,.55); backdrop-filter:blur(8px); padding:5px 12px; border-radius:99px; }
.lv-hagehud .lv-seg{ padding:3px; }
.lv-hint{ opacity:.8; }
@media (hover:none){ .lv-hint{ display:none; } }
.lv-hagepanel{ position:absolute; z-index:26; left:50%; transform:translateX(-50%); bottom:calc(150px + env(safe-area-inset-bottom)); width:min(440px,calc(100vw - 24px)); padding:16px; border-radius:22px; background:rgba(30,37,40,.92); backdrop-filter:blur(14px); border:1px solid var(--lv-edge); color:var(--lv-ink); }
.lv-hagepanel[hidden]{ display:none; }
.lv-hagepanel.butikk{ top:calc(var(--lv-dv) + 64px); bottom:auto; right:12px; left:auto; transform:none; }
.lv-butikkliste{ display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.lv-vare{ display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:10px; padding:8px 12px; border-radius:16px; background:var(--lv-tile2); border:1px solid var(--lv-line); color:var(--lv-ink); text-align:left; cursor:pointer; }
.lv-vare.for-dyr{ opacity:.5; }
.lv-vareik{ display:grid; place-items:center; height:50px; } .lv-vareik svg{ max-width:100%; max-height:100%; }
.lv-pris{ background:#f2d27a; color:#2a2200; border-radius:99px; padding:3px 11px; font:700 .8rem var(--lv-mono); }
.lv-hage.plasserer{ cursor:crosshair; } .lv-hage.plasserer .lv-tre, .lv-hage.plasserer .lv-ting{ pointer-events:none; }
@media (prefers-reduced-motion:reduce){ .lv-skyer i, .lv-verden{ transition:none; } .lv-sommerfugl, .lv-snoe, .lv-flamme, .lv-glod, .lv-zzz{ animation:none; } }

.lv-seg svg, .lv-chipknapp svg{ width:15px; height:15px; flex:none; }
.lv-seg button{ display:inline-flex; align-items:center; gap:6px; }
.lv-root .lv-b.ic.sm{ width:32px; height:32px; }
.lv-pkort{ background:var(--lv-tile2); }

/* Bunnbaren som i første versjon: pillen strekker seg hele veien ut, og modus byttes bare med hjulet */
@media (max-width:640px){
  .lv-tab{ display:block; padding:0; }
  .lv-tab ul{ flex:none; width:auto; padding:0 26px max(0px, env(safe-area-inset-bottom) - 20px); height:calc(54px + max(0px, env(safe-area-inset-bottom) - 20px)); }
  .lv-tabbg{ height:calc(62px + max(0px, env(safe-area-inset-bottom) - 20px)); }
  #app{ padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
}

/* Disken følger med og krymper, men forsvinner ikke */
.lv-disk{ position:fixed; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.lv-disk.liten{ transform:translateY(calc(var(--lv-dv) * -.52)); }
.lv-disk.liten .lv-diskmodus:not(.on){ opacity:.2; }
.lv-disk .lv-diskknapp{ display:none; }
.lv-tab li[data-side=hjem] .ic, .lv-tab li[data-side=innstillinger] .ic{ width:22px; height:22px; }
.lv-tab.byttbar li[data-bytt] button{ color:#fff5c2; animation:lv-lysgul 1.8s ease-in-out infinite; }
.lv-tab.byttbar li[data-bytt] .ic{ filter:drop-shadow(0 0 7px #ffe07a); }
.lv-tab.byttbar li:not([data-bytt]):not([data-side=hjem]):not([data-side=innstillinger]){ opacity:.45; }
.lv-tab.byttbar li:not([data-bytt]) button{ animation:none; }

/* Slik ligger du an: ringer */
.lv-anring{ margin:2px 0 16px; padding:14px 14px 10px; border-radius:22px; background:radial-gradient(120% 140% at 10% 0%, rgba(143,196,216,.12), transparent 60%), var(--lv-tile2); border:1px solid var(--lv-line); }
.lv-ringer{ display:flex; gap:14px; overflow-x:auto; padding:12px 2px 6px; scrollbar-width:none; }
.lv-ring{ position:relative; flex:none; width:104px; display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
.lv-ring svg{ width:76px; height:76px; } .lv-ring .v{ transition:stroke-dasharray .9s cubic-bezier(.2,.8,.2,1); }
.lv-ring b{ position:absolute; top:26px; left:0; right:0; font:500 1.05rem var(--lv-display); } .lv-ring b small{ font-size:.55rem; opacity:.6; }
.lv-ringnavn{ font-size:.78rem; line-height:1.2; margin-top:4px; max-width:100px; }

/* Innstillinger: luft mellom delene, og bytte av sider i to steg */
#lv-innst-ekstra{ display:flex; flex-direction:column; gap:18px; }
#lv-innst-ekstra:empty{ display:none; }
.lv-slot{ opacity:.55; border-color:var(--lv-line); box-shadow:none; }
.lv-slot.klar{ opacity:1; border-color:rgba(255,224,122,.6); box-shadow:0 0 18px -8px #ffe07a; animation:lv-lysgul 1.8s ease-in-out infinite; }
.lv-slot.valgt{ background:linear-gradient(180deg,#4a4630,#2c2a1c); border-color:#ffe07a; box-shadow:0 0 22px -4px #ffe07a; }
.lv-valg{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.lv-valgkort{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:16px; background:var(--lv-tile2); border:1px solid var(--lv-line); color:var(--lv-muted); text-align:left; opacity:.5; }
.lv-valgkort > .lv-mono{ margin-left:auto; }
.lv-valgkort.aktiv{ opacity:1; color:var(--lv-ink); cursor:pointer; border-color:rgba(255,255,255,.3); }
.lv-valgkort.aktiv:hover{ border-color:#ffe07a; }
.lv-valgkort.inne{ border-style:dashed; }
.lv-slot > :last-child{ margin-left:0; } .lv-slot{ min-width:0; }

/* ---- Spillmodus (lilla) ---- */
.sp-rot{--sp:#c3a6f2;display:flex;flex-direction:column;gap:14px}
.sp-rot .lv-seg button.on{background:var(--sp);color:#1a1226}
.sp-hud{border-color:color-mix(in srgb,var(--sp) 55%,transparent);box-shadow:0 0 28px -12px var(--sp)}
.sp-chip{padding:3px 10px;border-radius:99px;background:var(--sp);color:#1a1226;font:500 11px "JetBrains Mono",monospace}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.sp-kort{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px;border-radius:14px;border:1px solid color-mix(in srgb,var(--sp) 45%,transparent);background:transparent;color:inherit;cursor:pointer}
.sp-kort:hover,.sp-kort:active{background:color-mix(in srgb,var(--sp) 18%,transparent)}
.sp-bar{flex:1;height:6px;border-radius:9px;background:rgba(255,255,255,.1);overflow:hidden}.sp-bar i{display:block;height:100%;background:var(--sp)}
.sp-hjul{height:110px;margin:12px 0;border-radius:18px;border:1px dashed var(--sp);display:grid;place-items:center;text-align:center;padding:8px}
.sp-hjulnavn{font-weight:600;font-size:1.15rem;color:var(--sp)}.sp-hjul.snurr .sp-hjulnavn{animation:spBlink .15s steps(2) infinite}
@keyframes spBlink{50%{opacity:.2}}
.sp-ja{display:flex;gap:10px}.sp-ferdig{display:flex;flex-direction:column;gap:4px;padding:18px 0}
.lv-root .lv-b.sp-inn{border-color:#c3a6f2;color:#c3a6f2}

/* ---- Livsstil-gruppe: grå og låst utenfor Livsstil ---- */
.lv-livgruppe{display:flex;flex-direction:column;gap:18px;padding:14px;border-radius:20px;border:1px solid rgba(120,220,170,.35);transition:.3s}
.lv-livhode{display:flex;justify-content:space-between;gap:10px}
.lv-livgruppe.laast{filter:grayscale(1);opacity:.45;border-color:var(--lv-line,rgba(255,255,255,.15));pointer-events:none;user-select:none}
.lv-livgruppe.laast .lv-livhode{opacity:1}

/* ---- runde 2: disken over innholdet, ingen glød ---- */
.lv-disk{ z-index:900 !important; }
.lv-diskglod{ display:none !important; }

/* ---- Logg og mål ---- */
.lv-dagsmal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lv-dagsmal div{display:flex;flex-direction:column;gap:2px}.lv-dagsmal b{font-size:1.2rem}
.lv-lrad{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0}.lv-lrad>div:first-child{display:flex;flex-direction:column;min-width:0}
.lv-lbar{height:7px;border-radius:9px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:6px}.lv-lbar i{display:block;height:100%;background:var(--lv-mf,#8fc4d8);box-shadow:0 0 12px var(--lv-mf,#8fc4d8)}
.lv-glass{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.lv-glass span{width:26px;height:26px;border-radius:7px;border:1px solid rgba(255,255,255,.2)}.lv-glass span.ok{background:var(--lv-mf,#8fc4d8);box-shadow:0 0 10px -2px var(--lv-mf,#8fc4d8)}
.lv-loggåpen{display:flex;flex-direction:column;gap:6px;margin-top:14px}

/* ---- Ukeplan i skjelett-stil ---- */
.lv-ukenytt{overflow-x:auto;flex-wrap:nowrap}.lv-ukenytt button{white-space:nowrap}
.lv-hud{border-color:color-mix(in srgb,var(--lv-mf,#e2ab7c) 40%,transparent);box-shadow:0 0 26px -14px var(--lv-mf,#e2ab7c)}
.lv-dagb{display:flex;flex-direction:column;align-items:center;justify-content:center;width:46px;min-height:52px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;font:inherit;flex:none}
.lv-dagb span{font:500 .6rem "JetBrains Mono",monospace;letter-spacing:.08em;opacity:.7}.lv-dagb b{font-size:1.05rem}
.lv-dagb.nå{border-color:var(--lv-mf,#e2ab7c);box-shadow:0 0 14px -4px var(--lv-mf,#e2ab7c)}
.lv-ukerad{display:flex;gap:10px;align-items:flex-start;width:100%;padding:6px 0;background:none;border:0;color:inherit;font:inherit;text-align:left}
.lv-ukerad.liste{border-top:1px solid rgba(255,255,255,.1)}
.lv-brikker{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.lv-brikke{min-height:52px;padding:6px;border-radius:10px;border:1px solid;font-size:.72rem;line-height:1.15;overflow:hidden;overflow-wrap:anywhere}
.lv-brikke.tom{border:1px dashed rgba(255,255,255,.25)}
.lv-lister{flex:1;display:flex;flex-direction:column;gap:4px}.lv-lister div{display:flex;gap:10px}.lv-lister .lv-mono{width:58px}
.lv-ukedagrad{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}.lv-ukedagrad .pic{width:56px;height:56px;border-radius:12px;overflow:hidden;flex:none;background:rgba(255,255,255,.06)}.lv-ukedagrad .pic img{width:100%;height:100%;object-fit:cover}
.lv-ukeinn{display:flex;flex-direction:column;gap:14px}
.lv-anim{animation:lvUkeInn .35s cubic-bezier(.2,.8,.2,1)}@keyframes lvUkeInn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}

/* ---- Oppskrifter: egen blokk, to i bredden ---- */
.lv-oppblokk{max-height:calc(100vh - 360px);min-height:380px;overflow-y:auto;padding:12px;overscroll-behavior:contain}
.lv-oppblokk .lv-cards{grid-template-columns:1fr 1fr;gap:10px}
.lv-root .lv-oppblokk .lv-rc{aspect-ratio:1/1.12;border-radius:20px}
.lv-oppblokk .lv-rc h3{font-size:.9rem}.lv-oppblokk .lv-rc p{font-size:.7rem}
.lv-velg{position:absolute;top:8px;right:8px;z-index:3;width:26px;height:26px;border-radius:8px;border:1.5px solid rgba(255,255,255,.7);background:rgba(0,0,0,.35);display:grid;place-items:center;color:transparent}
.lv-velg svg{width:16px;height:16px}.lv-velg.on{background:var(--lv-mf,#e2ab7c);border-color:var(--lv-mf,#e2ab7c);color:#10181a}
.lv-oppned{display:flex;flex-direction:column;gap:14px}
.lv-leggrot{display:flex;flex-direction:column;gap:14px}.lv-leggrot textarea{width:100%}
.lv-forh{width:112px;height:140px;border-radius:14px;overflow:hidden;flex:none;background:rgba(255,255,255,.06);display:grid;place-items:center}.lv-forh img{width:100%;height:100%;object-fit:cover}

/* ---- Ny reise: land med kartbilde ---- */
.lv-landliste{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:260px;overflow-y:auto;padding:2px}
.lv-landkort{display:flex;flex-direction:column;gap:6px;padding:6px;border-radius:14px;border:1px solid rgba(255,255,255,.15);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.lv-landkort.on{border-color:var(--lv-mf,#b3d29b);box-shadow:0 0 16px -5px var(--lv-mf,#b3d29b)}
.lv-landbilde{width:100%;height:auto;border-radius:9px;display:block;aspect-ratio:3/2}
.lv-landkort b{font-size:.85rem}
.lv-dest{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}
.lv-dest .lv-dagb{width:auto;min-width:56px;padding:6px}

/* ---- Kalender: uke på tvers, farger ---- */
.lv-ukerader{display:flex;flex-direction:column;gap:18px}
.lv-ukeblokk{display:flex;flex-direction:column;gap:8px}
.lv-ukenr{padding:2px 0}
.lv-kolrad{display:flex;gap:10px;align-items:stretch;padding:6px;border-radius:16px;background:var(--lv-tile2);border:1px solid transparent}
.lv-kolrad.idag{border-color:var(--lv-ice,#8fc4d8);box-shadow:0 0 16px -8px var(--lv-ice,#8fc4d8)}
.lv-kolhend{flex:1;min-width:0;display:flex;gap:6px;align-items:flex-start;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:2px}
.lv-kolhend .lv-hend{flex:0 0 auto;max-width:200px;scroll-snap-align:start;background:color-mix(in srgb,var(--k) 26%,transparent);border-left-width:4px}
.lv-kolhend .lv-svak{align-self:center}
.lv-deltmed{display:block;margin-top:2px;opacity:.85}
.lv-hend{background:color-mix(in srgb,var(--k) 24%,transparent)}
.lv-mcelle .lv-hend,.lv-mcelle span{max-width:100%}
.lv-mcelle b{color:var(--lv-ink)}
.lv-katchip{background:color-mix(in srgb,var(--k) 22%,transparent);border-color:var(--k)!important}
.lv-dagrad[style*="--k"]{border-left:3px solid var(--k);padding-left:8px;background:color-mix(in srgb,var(--k) 10%,transparent);border-radius:10px}

/* ---- Budsjett: mynter ---- */
.lv-mynthode{position:relative;overflow:hidden}
.lv-mynter{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lv-mynt{position:absolute;top:-30px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#e8b93c 60%,#a9791a);border:1.5px solid #8a5f10;display:grid;place-items:center;animation:lvMyntFall 2s cubic-bezier(.4,.1,.7,1) forwards;opacity:0}
.lv-mynt i,.lv-snurrmynt i{font:700 .55rem "JetBrains Mono",monospace;font-style:normal;color:#7a5410}
@keyframes lvMyntFall{0%{transform:translateY(0) rotateY(0);opacity:1}85%{opacity:1}100%{transform:translateY(240px) rotateY(900deg);opacity:0}}
.lv-snurrmynt{display:inline-grid;place-items:center;width:.62em;height:.62em;margin-right:.3em;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#e8b93c 60%,#a9791a);border:2px solid #8a5f10;vertical-align:.05em;animation:lvMyntSnurr 3.2s linear infinite}
.lv-snurrmynt i{font-size:.22em}
@keyframes lvMyntSnurr{to{transform:rotateY(360deg)}}
.lv-mnd,.lv-dagvis{animation:lvUkeInn .35s cubic-bezier(.2,.8,.2,1)}
.lv-ukenav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}
.lv-brikke{font-size:.64rem;hyphens:auto;overflow-wrap:break-word;word-break:normal}
.lv-velg{top:46px!important}
.lv-kolhend .lv-hend{display:flex;flex-direction:column;align-items:flex-start;gap:1px;white-space:nowrap}
.lv-kolhend .lv-hend>span{display:flex;flex-direction:column;align-items:flex-start}
.lv-hend .lv-mono{background:none!important;padding:0!important;border:0!important}
.lv-kaltittel:empty{display:none}
.lv-root .sp-kort{border:1px solid color-mix(in srgb,#c3a6f2 55%,transparent)!important;background:color-mix(in srgb,#c3a6f2 8%,transparent)!important;border-radius:14px}
.lv-root .sp-hud{border:1px solid color-mix(in srgb,#c3a6f2 55%,transparent)}
.lv-deltmerke{position:absolute;left:10px;bottom:46px;z-index:2;padding:2px 8px;border-radius:99px;background:#c3a6f2;color:#1a1226;font:500 .6rem "JetBrains Mono",monospace}
.lv-vpic{width:46px;height:46px;border-radius:12px;overflow:hidden;flex:none;background:rgba(255,255,255,.06)}.lv-vpic svg,.lv-vpic img{width:100%;height:100%;object-fit:cover;display:block}
.lv-lrad>div{display:flex;flex-direction:column;min-width:0}.lv-lrad>div>.lv-mono{display:block}

/* ---- Vaner: lysende kjeder ---- */
.lv-soyler{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:8px 0 16px}
.lv-soyle{display:flex;flex-direction:column;align-items:center;gap:6px}
.lv-tube{position:relative;width:100%;max-width:34px;height:70px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);overflow:hidden;display:flex;align-items:flex-end}
.lv-tube i{display:block;width:100%;background:linear-gradient(0deg,var(--lv-mf,#b3d29b),color-mix(in srgb,var(--lv-mf,#b3d29b) 40%,#fff));box-shadow:0 0 16px var(--lv-mf,#b3d29b);transition:height .5s cubic-bezier(.2,.8,.2,1)}
.lv-soyle.idag .lv-tube{border-color:var(--lv-mf,#b3d29b);box-shadow:0 0 14px -4px var(--lv-mf,#b3d29b)}
.lv-kjede{padding:10px 0;border-top:1px solid rgba(255,255,255,.08)}
.lv-orbrad{display:grid;grid-template-columns:repeat(7,1fr);margin-top:10px}
.lv-root .lv-orb{position:relative;justify-self:center;width:30px;height:30px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);display:grid;place-items:center;cursor:pointer;transition:.25s}
.lv-orb i{width:10px;height:10px;border-radius:50%;background:transparent;transition:.25s}
.lv-root .lv-orb.on{border-color:var(--lv-mf,#b3d29b);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--lv-mf,#b3d29b) 55%,#fff),var(--lv-mf,#b3d29b) 70%);box-shadow:0 0 16px -2px var(--lv-mf,#b3d29b)}
.lv-orb.on i{background:#10181a;opacity:.55}
.lv-orb.idag:not(.on){border-style:dashed;border-color:var(--lv-mf,#b3d29b)}
.lv-orb.kobl::after{content:"";position:absolute;left:100%;top:50%;width:calc(100vw / 14);max-width:34px;height:3px;margin-top:-1.5px;background:linear-gradient(90deg,var(--lv-mf,#b3d29b),var(--lv-mf,#b3d29b));box-shadow:0 0 10px var(--lv-mf,#b3d29b);pointer-events:none;z-index:0}
.lv-root .lv-malvalg .lv-bytt{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);padding:12px;border-radius:16px;color:inherit}
.lv-root .lv-malvalg .lv-bytt.on{background:color-mix(in srgb,var(--lv-mf,#b3d29b) 16%,transparent);border-color:var(--lv-mf,#b3d29b);box-shadow:0 0 16px -6px var(--lv-mf,#b3d29b)}
.lv-leggrot .lv-tile{display:flex;flex-direction:column;gap:14px;padding:18px}
.lv-leggrot label{display:flex;flex-direction:column;gap:6px}
.lv-leggrot .lv-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.lv-leggrot .lv-row label{flex:1;min-width:110px}
.lv-leggrot .lv-row label input.lv-field{width:100%!important}
.lv-leggrot select.lv-field{width:100%!important;max-width:none}
.lv-leggrot .lv-seg{align-self:stretch}
.lv-leggrot .lv-row[style*="align-items:flex-start"]{align-items:flex-start}
.lv-leggrot{padding-bottom:90px}

/* ---- Hagekart (runde 3): sesongbilde, tåke og utvid-knapper ---- */
.lv-kartbilde{ position:absolute; left:0; top:0; width:1800px; height:1800px; max-width:none; user-select:none; -webkit-user-drag:none; }
.lv-taake{ position:absolute; left:0; top:0; pointer-events:none; max-width:none; }
.lv-tkile{ transition:opacity .4s; }
.lv-tkile.oppløses{ animation:lv-taakeBort 1.8s ease-out forwards; }
@keyframes lv-taakeBort{ from{ opacity:1; } to{ opacity:0; } }
.lv-utvid{ position:absolute; transform:translate(-50%,-50%); z-index:6; display:flex; flex-direction:column; align-items:center; gap:3px; padding:12px 18px; border-radius:22px; border:1px solid rgba(207,227,240,.5); background:rgba(14,26,40,.78); backdrop-filter:blur(8px); color:#e8f3fa; cursor:pointer; box-shadow:0 0 30px -6px rgba(140,200,240,.6); animation:lv-utvidPuls 3.2s ease-in-out infinite; }
.lv-utvid .lv-mono{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:#a9d2ec; }
.lv-utvid b{ font:600 1.05rem var(--lv-display); }
.lv-utvidpris{ display:inline-flex; align-items:center; gap:6px; margin-top:4px; padding:3px 11px; border-radius:99px; background:#ffe9b0; color:#2b2410; font:600 .74rem var(--lv-body); }
.lv-utvid.for-dyr .lv-utvidpris{ background:rgba(255,255,255,.16); color:#d6e4ee; }
.lv-utvid:hover{ border-color:#ffe9b0; }
@keyframes lv-utvidPuls{ 50%{ box-shadow:0 0 44px 0 rgba(180,225,250,.85); } }
.lv-lov{ position:absolute; top:-20px; width:12px; height:9px; border-radius:60% 0 60% 0; background:#d9873f; opacity:.9; pointer-events:none; z-index:6; animation:lv-lov 10s linear infinite; }
.lv-lov:nth-child(3n){ background:#c8642f; } .lv-lov:nth-child(3n+1){ background:#e2b24a; }
@keyframes lv-lov{ 0%{ transform:translate(0,0) rotate(0); } 50%{ transform:translate(60px,900px) rotate(180deg); } 100%{ transform:translate(-20px,1800px) rotate(380deg); } }
.lv-hele.on{ background:rgba(255,233,176,.25); }
@media (prefers-reduced-motion:reduce){ .lv-utvid, .lv-lov{ animation:none; } }

/* ---- Spillmodus (runde 3): turnering, tre på bordet med to stemmer, meal prep-spill ---- */
.sp-turn{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:18px 8px; text-align:center; }
.sp-turn b{ font:600 1.15rem var(--lv-display); }
.sp-pokal svg{ width:46px; height:46px; color:#d9b6ff; filter:drop-shadow(0 0 14px rgba(180,120,255,.7)); }
.sp-bordkort{ display:flex; flex-direction:column; gap:8px; cursor:default; }
.sp-stemmer{ display:flex; gap:8px; flex-wrap:wrap; }
.sp-spillrad{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.sp-spill, .sp-ide{ display:flex; flex-direction:column; gap:6px; text-align:left; padding:14px; border-radius:18px; border:1px solid rgba(190,140,255,.35); background:rgba(120,80,200,.14); color:var(--lv-ink); cursor:pointer; }
.sp-spill b, .sp-ide b{ font:600 .98rem var(--lv-display); }
.sp-ideer{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.sp-ide.on{ border-color:#d9b6ff; background:rgba(150,100,230,.3); }
.sp-ide .lv-muted{ font-size:.8rem; }
.sp-terning{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.sp-terning[hidden]{ display:none; }
.sp-rull{ padding:10px 16px; border-radius:14px; background:rgba(150,100,230,.3); border:1px solid #d9b6ff; font:600 1rem var(--lv-display); animation:sp-pop .45s cubic-bezier(.3,1.6,.5,1); }
@keyframes sp-pop{ from{ transform:translateY(-14px) scale(.7); opacity:0; } }
.lv-root .sp-prep{ display:flex; flex-direction:column; gap:12px; }
.lv-root .sp-spill, .lv-root .sp-ide{ height:auto; min-height:0; white-space:normal; align-items:flex-start; justify-content:flex-start; }
.lv-root .sp-spill .lv-mono, .lv-root .sp-ide .lv-mono, .sp-ide .lv-muted{ white-space:normal; line-height:1.35; }

/* ---- Ukeplan redigering: antall personer og søk (runde 3) ---- */
.ua-ark{ display:flex; flex-direction:column; gap:12px; max-height:82vh; overflow:auto; }
.ua-slot{ display:flex; flex-direction:column; gap:8px; padding:12px; border-radius:18px; background:rgba(255,255,255,.04); border:1px solid var(--lv-edge); }
.ua-ant{ display:inline-flex; align-items:center; gap:8px; }
.ua-ant b{ min-width:1.2em; text-align:center; font:600 1rem var(--lv-display); }
.ua-rett{ text-align:left; padding:11px 14px; border-radius:14px; border:1px solid var(--lv-edge); background:rgba(255,255,255,.05); color:var(--lv-ink); font:600 .95rem var(--lv-body); cursor:pointer; }
.ua-rett.tom{ color:var(--lv-muted,#8fa0a6); font-weight:400; border-style:dashed; }
.ua-sok{ display:flex; flex-direction:column; gap:8px; }
.ua-liste{ display:flex; flex-direction:column; gap:6px; max-height:230px; overflow:auto; }
.ua-treff{ display:flex; align-items:center; gap:10px; text-align:left; padding:6px; border-radius:12px; border:0; background:rgba(255,255,255,.05); color:var(--lv-ink); cursor:pointer; }
.ua-treff .pic{ width:44px; height:44px; border-radius:10px; overflow:hidden; flex:none; } .ua-treff .pic svg, .ua-treff .pic img{ width:100%; height:100%; object-fit:cover; }
.ua-treff span:not(.pic){ display:flex; flex-direction:column; }
.lv-ant{ font-style:normal; font:600 .7rem var(--lv-mono-f,monospace); padding:0 6px; margin-left:4px; border-radius:99px; background:rgba(255,255,255,.18); }
.lv-vektkort{ display:flex; flex-direction:column; gap:8px; }
.lv-vektall{ font:600 1.9rem var(--lv-display); } .lv-vektall small{ font-size:.9rem; opacity:.7; }
.lv-vektkort .ned{ color:#b3d29b; }

/* ---- Objekter i hagen: lyktestolpe, løfte og flytte, kveld ---- */
.lv-lyktimg{ display:block; height:150px; width:auto; max-width:none; pointer-events:none; filter:drop-shadow(0 10px 8px rgba(0,0,0,.35)); }
.lv-ting{ touch-action:none; -webkit-touch-callout:none; transition:transform .15s; }
.lv-ting.spegl > img, .lv-ting.spegl > svg{ transform:scaleX(-1); }
.lv-ting.hentet{ transform:translate(-50%,-100%) scale(1.15) translateY(-14px); z-index:9100!important; filter:drop-shadow(0 18px 10px rgba(0,0,0,.4)); transition:none; }
.lv-ting.hentet.ugyldig{ opacity:.55; filter:grayscale(1) drop-shadow(0 18px 10px rgba(0,0,0,.4)); }
.lv-lyktglod{ position:absolute; left:50%; top:10px; width:170px; height:170px; margin-left:-40px; border-radius:50%; background:radial-gradient(circle,rgba(255,214,120,.5),rgba(255,214,120,0) 68%); pointer-events:none; mix-blend-mode:screen; animation:lv-glod 3.4s ease-in-out infinite; }
.lv-hage.kveld .lv-kartbilde{ filter:brightness(.64) saturate(.9) hue-rotate(8deg); transition:filter .6s; }
.lv-vareik img{ height:58px; width:auto; }
@media (prefers-reduced-motion:reduce){ .lv-lyktglod{ animation:none; } }

/* trær og hus som bilder */
.lv-tre-img, .lv-husimg{ display:block; width:auto; max-width:none; pointer-events:none; filter:drop-shadow(0 8px 6px rgba(0,0,0,.3)); }
.lv-tre.dvale .lv-tre-img{ opacity:.55; filter:saturate(.35) drop-shadow(0 8px 6px rgba(0,0,0,.3)); }
.lv-tre.arkiv .lv-tre-img{ opacity:.75; filter:grayscale(.85) drop-shadow(0 8px 6px rgba(0,0,0,.3)); }
.lv-vareik .lv-husimg{ height:50px!important; }
.lv-hage.kveld .lv-husimg{ filter:drop-shadow(0 8px 6px rgba(0,0,0,.35)); }
.lv-butikkliste{ max-height:46vh; overflow:auto; }

/* stemning: vignett, ildfluer og lager som rutenett */
.lv-vignett{ position:absolute; inset:0; z-index:5; pointer-events:none; background:radial-gradient(ellipse at 50% 46%,rgba(0,0,0,0) 48%,rgba(8,20,12,.5) 100%); }
.lv-hage.kveld .lv-vignett{ background:radial-gradient(ellipse at 50% 46%,rgba(0,0,0,0) 36%,rgba(4,10,22,.68) 100%); }
.lv-ildflue{ position:absolute; width:7px; height:7px; border-radius:50%; background:#ffe58a; box-shadow:0 0 10px 4px rgba(255,220,110,.75); pointer-events:none; z-index:9000; animation:lv-ild 6s ease-in-out infinite; }
@keyframes lv-ild{ 0%,100%{ transform:translate(0,0); opacity:.15; } 30%{ transform:translate(22px,-30px); opacity:1; } 60%{ transform:translate(-18px,-12px); opacity:.35; } 80%{ transform:translate(10px,-44px); opacity:.9; } }
.lv-lagergrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.lv-slot{ aspect-ratio:1; display:grid; place-items:center; border-radius:12px; background:rgba(8,16,20,.55); border:1px solid var(--lv-line); padding:0; } .lv-slot.full{ cursor:pointer; background:rgba(40,60,66,.7); } .lv-slot.full img, .lv-slot.full svg{ max-width:88%; max-height:88%; height:auto; }
.lv-slot.full .lv-husimg, .lv-slot.full .lv-lyktimg{ height:54px!important; }
@media (prefers-reduced-motion:reduce){ .lv-ildflue{ animation:none; opacity:.7; } }

/* liten meny over valgt objekt */
.lv-meny{ position:absolute; display:flex; flex-direction:column; align-items:center; gap:6px; padding:8px 8px 10px; border-radius:22px; background:rgba(255,250,240,.94); color:#3a3328; box-shadow:0 10px 28px rgba(0,0,0,.35); transform-origin:50% 100%; animation:lv-poppe .18s ease-out; }
.lv-meny > b{ font:700 12px var(--lv-body); letter-spacing:.02em; }
.lv-meny > div{ display:flex; gap:6px; }
.lv-menyk{ display:flex; flex-direction:column; align-items:center; gap:2px; width:50px; padding:6px 0 4px; border:0; border-radius:16px; background:#f1e7d3; color:#3a3328; font:600 11px var(--lv-body); cursor:pointer; }
.lv-menyk svg{ width:24px; height:24px; } .lv-menyk:active{ transform:scale(.94); }
.lv-menyk.gull{ background:#fbe39a; } .lv-menyk.rod{ background:#f6d3cc; color:#8a3326; }
@keyframes lv-poppe{ from{ opacity:0; margin-top:8px; } }

/* ======================================================================
   Hagen, runde 4: søtere spillfølelse (tre og pergament), joystick,
   «bruk»-knapp, trefelt med gjerde, støv og glitter. Resten av appen er uendret.
   ====================================================================== */
.lv-hage{ --kk:#f2dcac; --kk2:#e6c58f; --kk-kant:#a8714b; --kk-mork:#5f402b; --kk-lip:#b98558; --kk-gronn:#abd36e; --kk-gronn-kant:#6c9a3a; --kk-gronn-lip:#5d862f;
  --hud-bunn:calc(98px + env(safe-area-inset-bottom)); --rund:ui-rounded,"SF Pro Rounded","Nunito","Varela Round",var(--lv-body),system-ui,sans-serif; }
@media (min-width:641px){ .lv-hage{ --hud-bunn:26px; } }

/* knapper */
.lv-hage .gk{ display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:8px 14px; min-height:44px; border-radius:13px; background:var(--kk); color:var(--kk-mork); font:800 .9rem/1 var(--rund); letter-spacing:.01em; border:3px solid var(--kk-kant);
  box-shadow:0 4px 0 var(--kk-lip), 0 8px 12px rgba(40,24,10,.28), inset 0 2px 0 rgba(255,255,255,.6); cursor:pointer; transition:transform .08s, box-shadow .08s, background .15s; -webkit-tap-highlight-color:transparent; }
.lv-hage .gk:hover{ background:#f7e6bd; }
.lv-hage .gk:active{ transform:translateY(3px); box-shadow:0 1px 0 var(--kk-lip), inset 0 2px 0 rgba(255,255,255,.4); }
.lv-hage .gk svg{ width:20px; height:20px; flex:none; }
.lv-hage .gk.rund{ width:46px; height:46px; min-height:0; padding:0; border-radius:50%; }
.lv-hage .gk.on{ background:var(--kk-gronn); border-color:var(--kk-gronn-kant); box-shadow:0 4px 0 var(--kk-gronn-lip), 0 8px 12px rgba(40,24,10,.28), inset 0 2px 0 rgba(255,255,255,.5); }
.lv-hage .gk .lv-poengpille{ background:#fff3c4; border:2px solid #d9b45a; color:#6b4a00; font:800 .78rem var(--rund); padding:2px 8px; }
.lv-root .lv-hage .lv-hagetilbake, .lv-root .lv-hage .lv-hagebutikk{ top:calc(var(--lv-dv) + 14px + env(safe-area-inset-top)); }

/* nivå-skilt */
.lv-hage .lv-niv{ position:absolute; z-index:25; left:12px; top:calc(var(--lv-dv) + 70px + env(safe-area-inset-top)); width:176px; padding:8px 11px 9px; border-radius:13px; background:var(--kk); color:var(--kk-mork); border:3px solid var(--kk-kant); box-shadow:0 4px 0 var(--kk-lip), 0 8px 12px rgba(40,24,10,.25), inset 0 2px 0 rgba(255,255,255,.6); display:flex; flex-direction:column; gap:5px; font-family:var(--rund); }
.lv-niv b{ font:800 .9rem var(--rund); } .lv-niv small{ font:700 .68rem var(--rund); color:#8c6a4c; }
.lv-nivbar{ display:block; height:13px; border-radius:7px; background:#d4b684; border:2px solid #b98a5c; overflow:hidden; }
.lv-nivbar i{ display:block; height:100%; border-radius:5px; background:repeating-linear-gradient(135deg,#b7de7c 0 7px,#9fcb61 7px 14px); box-shadow:inset 0 2px 0 rgba(255,255,255,.45); transition:width .6s cubic-bezier(.3,1.4,.5,1); }

/* joystick */
.lv-joy{ position:absolute; z-index:25; left:16px; bottom:var(--hud-bunn); width:124px; height:124px; border-radius:50%; touch-action:none; user-select:none; cursor:grab;
  background:radial-gradient(circle,rgba(242,220,172,.34) 0 52%,rgba(242,220,172,.5) 54% 100%); border:3px solid rgba(168,113,75,.95); box-shadow:0 4px 0 rgba(185,133,88,.95), 0 10px 16px rgba(40,24,10,.28), inset 0 0 0 5px rgba(255,255,255,.2); transition:opacity .25s; }
.lv-joy::before{ content:''; position:absolute; inset:14px; border-radius:50%; border:3px dashed rgba(168,113,75,.55); pointer-events:none; }
.lv-joy .p{ position:absolute; width:0; height:0; border:6px solid transparent; pointer-events:none; }
.lv-joy .p.n{ top:3px; left:50%; margin-left:-6px; border-bottom:8px solid #a8714b; border-top:0; } .lv-joy .p.s{ bottom:3px; left:50%; margin-left:-6px; border-top:8px solid #a8714b; border-bottom:0; }
.lv-joy .p.v{ left:3px; top:50%; margin-top:-6px; border-right:8px solid #a8714b; border-left:0; } .lv-joy .p.o{ right:3px; top:50%; margin-top:-6px; border-left:8px solid #a8714b; border-right:0; }
.lv-joyknapp{ position:absolute; left:50%; top:50%; width:56px; height:56px; margin:-28px 0 0 -28px; border-radius:50%; background:radial-gradient(circle at 38% 32%,#fff0c8,var(--kk) 55%,#e4c28a); border:3px solid var(--kk-kant); box-shadow:0 4px 0 var(--kk-lip), 0 6px 8px rgba(40,24,10,.3); pointer-events:none; transition:transform .18s cubic-bezier(.3,1.7,.5,1); }
.lv-joy.aktiv .lv-joyknapp{ transition:none; } .lv-joy.aktiv{ cursor:grabbing; background:radial-gradient(circle,rgba(242,220,172,.5) 0 52%,rgba(242,220,172,.65) 54% 100%); }
.lv-joyknapp i{ position:absolute; width:6px; height:6px; border-radius:50%; background:#c79a63; } .lv-joyknapp i:nth-child(1){ left:50%; top:9px; margin-left:-3px; } .lv-joyknapp i:nth-child(2){ left:50%; bottom:9px; margin-left:-3px; } .lv-joyknapp i:nth-child(3){ top:50%; left:9px; margin-top:-3px; } .lv-joyknapp i:nth-child(4){ top:50%; right:9px; margin-top:-3px; }
.lv-hage.tastatur .lv-joy{ opacity:.4; }

/* knapper nederst til høyre */
.lv-hudbunn{ position:absolute; z-index:25; right:14px; bottom:var(--hud-bunn); display:flex; flex-direction:column; align-items:flex-end; gap:14px; pointer-events:none; }
.lv-hudbunn > *{ pointer-events:none; } .lv-hudbunn button{ pointer-events:auto; }
.lv-smaa{ display:flex; flex-direction:column; align-items:flex-end; gap:9px; } .lv-smaa > *{ pointer-events:none; } .lv-smaa button{ pointer-events:auto; }
.lv-zoomp{ display:flex; flex-direction:column; gap:6px; padding:5px; border-radius:30px; background:rgba(242,220,172,.5); border:2px solid rgba(168,113,75,.6); }
.lv-zoomp .gk.rund{ width:40px; height:40px; box-shadow:0 3px 0 var(--kk-lip), inset 0 2px 0 rgba(255,255,255,.6); }
.lv-hage .gk.lv-aknapp{ position:relative; width:82px; height:82px; min-height:0; padding:0; border-radius:50%; flex-direction:column; gap:0; opacity:.78; filter:saturate(.6); }
.lv-aik svg{ width:34px; height:34px; }
.lv-alab{ position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) scale(.85); transform-origin:100% 50%; max-width:min(52vw,230px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:7px 12px; border-radius:11px; background:var(--kk); border:3px solid var(--kk-kant); box-shadow:0 3px 0 var(--kk-lip); font:800 .8rem var(--rund); color:var(--kk-mork); opacity:0; transition:opacity .15s, transform .2s cubic-bezier(.3,1.6,.5,1); pointer-events:none; }
.lv-hage .gk.lv-aknapp.klar{ opacity:1; filter:none; background:var(--kk-gronn); border-color:var(--kk-gronn-kant); box-shadow:0 4px 0 var(--kk-gronn-lip), 0 0 0 5px rgba(255,244,190,.45), 0 10px 16px rgba(40,24,10,.3), inset 0 2px 0 rgba(255,255,255,.55); color:#243a12; animation:lv-aknapp 1.3s ease-in-out infinite; }
.lv-aknapp.klar .lv-alab{ opacity:1; transform:translateY(-50%) scale(1); }
@keyframes lv-aknapp{ 50%{ transform:translateY(-3px); } }
.lv-hage .gk.lv-aknapp:active{ transform:translateY(3px); animation:none; }
.lv-hage .lv-hint{ position:absolute; z-index:24; left:50%; bottom:12px; transform:translateX(-50%); background:rgba(242,220,172,.82); color:#6b4630; border:2px solid rgba(168,113,75,.7); border-radius:99px; padding:4px 14px; font:700 .72rem var(--rund); letter-spacing:.02em; pointer-events:none; white-space:nowrap; }
@media (max-width:640px){ .lv-hage.panel-apen .lv-joy, .lv-hage.panel-apen .lv-hudbunn, .lv-hage.panel-apen .lv-niv{ opacity:0; pointer-events:none; } }
@media (min-width:900px){ .lv-joy{ width:136px; height:136px; left:22px; } .lv-hage .gk.lv-aknapp{ width:92px; height:92px; } .lv-hudbunn{ right:22px; } .lv-hage .lv-niv{ width:200px; left:16px; } }

/* mål i nærheten lyser og får en liten pil */
.lv-tre.nar::after, .lv-ting.nar::after{ content:''; position:absolute; left:50%; top:-24px; margin-left:-9px; border:9px solid transparent; border-top:11px solid #ffe49a; border-bottom:0; filter:drop-shadow(0 2px 0 #8a5a30); animation:lv-pil .8s ease-in-out infinite; pointer-events:none; }
@keyframes lv-pil{ 50%{ transform:translateY(5px); } }
.lv-tre.nar .lv-tre-img, .lv-ting.nar .lv-husimg, .lv-ting.nar .lv-lyktimg{ filter:drop-shadow(0 0 3px #fff4be) drop-shadow(0 0 13px rgba(255,230,140,.95)); }
.lv-tre .lv-tre-img{ transform-origin:50% 100%; }
.lv-tre.vrikk .lv-tre-img{ animation:lv-vrikk .55s ease-out; }
@keyframes lv-vrikk{ 0%{ transform:scale(1,1); } 25%{ transform:rotate(-3deg) scale(1.03,.96); } 55%{ transform:rotate(2.5deg) scale(.99,1.03); } 100%{ transform:none; } }

/* trefelt: sperre rundt der trærne kommer (gjerder senere) */
.lv-felt{ position:absolute; left:0; top:0; max-width:none; pointer-events:none; z-index:1; opacity:.6; transition:opacity .25s; }
.lv-felt .fl{ fill:rgba(255,244,196,.1); transition:fill .25s; }
.lv-felt .rep{ fill:none; stroke:rgba(255,246,214,.85); stroke-width:4; stroke-dasharray:18 11; stroke-linecap:round; }
.lv-felt .pel{ fill:none; stroke:#b58552; stroke-width:13; stroke-dasharray:0 96; stroke-linecap:round; filter:drop-shadow(0 3px 0 rgba(90,55,25,.5)); }
.lv-feltskilt{ position:absolute; z-index:2; transform:translate(-50%,-50%); padding:3px 11px 4px; border-radius:9px; background:#ecd09a; color:#6b4630; border:3px solid #9b6a43; box-shadow:0 3px 0 #b98558; font:800 12px var(--rund); letter-spacing:.03em; pointer-events:none; opacity:.85; }
.lv-hage.viser-felt .lv-felt{ opacity:1; } .lv-hage.viser-felt .lv-felt .fl{ fill:rgba(255,120,90,.2); } .lv-hage.viser-felt .lv-felt .rep{ stroke:#fff; animation:lv-marsj .9s linear infinite; } .lv-hage.viser-felt .lv-feltskilt{ opacity:1; background:#ffd9c9; }
@keyframes lv-marsj{ to{ stroke-dashoffset:-29; } }

/* støv, glitter og pop */
.lv-stov{ position:absolute; width:11px; height:9px; margin:-5px 0 0 -5px; border-radius:50%; background:rgba(255,250,236,.9); pointer-events:none; animation:lv-stov .6s ease-out forwards; }
@keyframes lv-stov{ from{ transform:scale(.4); opacity:.85; } to{ transform:translate(0,-12px) scale(1.7); opacity:0; } }
.lv-pop{ position:absolute; z-index:9600; width:0; height:0; pointer-events:none; }
.lv-pop b{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); white-space:nowrap; font:800 22px var(--rund); color:#fff8d8; text-shadow:0 2px 0 #7a4b2a, 0 0 10px rgba(255,220,120,.9); animation:lv-popB 1.7s ease-out forwards; }
@keyframes lv-popB{ 0%{ transform:translate(-50%,-30%) scale(.4); opacity:0; } 18%{ transform:translate(-50%,-80%) scale(1.15); opacity:1; } 70%{ opacity:1; } 100%{ transform:translate(-50%,-260%) scale(1); opacity:0; } }
.lv-pop i{ position:absolute; left:-5px; top:-5px; width:10px; height:10px; background:#ffe27a; clip-path:polygon(50% 0,64% 36%,100% 50%,64% 64%,50% 100%,36% 64%,0 50%,36% 36%); animation:lv-gnist 1.1s ease-out forwards; }
@keyframes lv-gnist{ from{ transform:rotate(var(--a)) translateY(-8px) scale(1.1); opacity:1; } to{ transform:rotate(var(--a)) translateY(-62px) scale(.2); opacity:0; } }
.lv-ting.lv-poppinn{ animation:lv-poppinn .65s cubic-bezier(.3,1.6,.5,1); }
@keyframes lv-poppinn{ 0%{ transform:translate(-50%,-100%) translateY(-46px) scale(.3); opacity:0; } 55%{ transform:translate(-50%,-100%) scale(1.1,.92); opacity:1; } 100%{ transform:translate(-50%,-100%); } }
.lv-vandrer:not(.gaar) .lv-vandrerkropp{ animation:lv-pust 3.2s ease-in-out infinite; }
@keyframes lv-pust{ 50%{ transform:scale(.985,1.03); } }
@media (prefers-reduced-motion:reduce){ .lv-stov, .lv-pop i, .lv-pop b, .lv-aknapp.klar, .lv-tre.nar::after, .lv-ting.nar::after, .lv-felt .rep, .lv-vandrer:not(.gaar) .lv-vandrerkropp, .lv-ting.lv-poppinn{ animation:none !important; } }

/* snø og løv faller gjennom hele det større kartet */
@keyframes lv-snoe{ to{ transform:translate(60px,calc(var(--H) + 30px)); } }
@keyframes lv-lov{ 0%{ transform:translate(0,0) rotate(0); } 50%{ transform:translate(90px,calc(var(--H) * .5)) rotate(180deg); } 100%{ transform:translate(-30px,calc(var(--H) + 30px)) rotate(380deg); } }

/* paneler (vane-tre, butikk): pergament i stedet for mørkt glass */
.lv-hage .lv-hagepanel{ --lv-ink:#5a3e2b; --lv-muted:#8c6a4c; --lv-tile2:#f9eed2; --lv-line:#dcbd8c; --lv-edge:#c99a6b; background:#f6e6c0; color:#5a3e2b; border:3px solid #a8714b; border-radius:20px; backdrop-filter:none;
  box-shadow:0 5px 0 #b98558, 0 18px 34px rgba(30,16,4,.42), inset 0 2px 0 rgba(255,255,255,.55); font-family:var(--rund); bottom:calc(var(--hud-bunn) + 12px); }
.lv-hage .lv-hagepanel.butikk{ top:calc(var(--lv-dv) + 70px); bottom:auto; max-height:calc(100% - var(--lv-dv) - 90px); overflow:auto; }
.lv-hage .lv-hagepanel b{ color:#5a3e2b; } .lv-hage .lv-hagepanel .lv-mono{ color:#8c6a4c; font-family:var(--rund); font-weight:700; letter-spacing:0; }
.lv-root .lv-hage .lv-hagepanel .lv-b{ background:#f9eed2; color:#5a3e2b; border:2px solid #c99a6b; border-radius:12px; box-shadow:0 3px 0 #b98558; font-family:var(--rund); font-weight:800; }
.lv-root .lv-hage .lv-hagepanel .lv-b::after{ display:none; }
.lv-root .lv-hage .lv-hagepanel .lv-b:active{ transform:translateY(2px); box-shadow:0 1px 0 #b98558; }
.lv-root .lv-hage .lv-hagepanel .lv-b.dark{ background:var(--kk-gronn); border-color:var(--kk-gronn-kant); color:#243a12; box-shadow:0 3px 0 var(--kk-gronn-lip); }
.lv-root .lv-hage .lv-hagepanel .lv-b.ghost{ background:transparent; box-shadow:none; }
.lv-root .lv-hage .lv-hagepanel .lv-farlig{ color:#b04a38 !important; }
.lv-hage .lv-hagepanel .lv-seg{ background:#ead4a3; border:2px solid #d1ac74; }
.lv-root .lv-hage .lv-hagepanel .lv-seg button{ color:#7a5a3e; font-family:var(--rund); font-weight:800; }
.lv-root .lv-hage .lv-hagepanel .lv-seg button.on{ background:var(--kk-gronn); color:#243a12; box-shadow:0 2px 0 var(--kk-gronn-lip); }
.lv-hage .lv-hagepanel .lv-vare{ background:#f9eed2; border:2px solid #dcbd8c; color:#5a3e2b; box-shadow:0 3px 0 #dcbd8c; font-family:var(--rund); }
.lv-hage .lv-hagepanel .lv-vare:active{ transform:translateY(2px); box-shadow:0 1px 0 #dcbd8c; }
.lv-hage .lv-hagepanel .lv-pris{ background:#ffe48a; border:2px solid #d9b45a; color:#6b4a00; font-family:var(--rund); font-weight:800; }
.lv-hage .lv-hagepanel .lv-slot{ background:#ead4a3; border:2px solid #d1ac74; } .lv-hage .lv-hagepanel .lv-slot.full{ background:#f9eed2; }
.lv-hage .lv-hagepanel .lv-muted{ color:#8c6a4c; }
.lv-hage .lv-meny{ background:#f6e6c0; border:3px solid #a8714b; box-shadow:0 4px 0 #b98558, 0 12px 26px rgba(30,16,4,.4); font-family:var(--rund); }
.lv-hage .lv-menyk{ background:#f9eed2; border:2px solid #dcbd8c; box-shadow:0 3px 0 #dcbd8c; font-family:var(--rund); font-weight:800; }
.lv-hage .lv-menyk:active{ transform:translateY(2px); box-shadow:0 1px 0 #dcbd8c; }
.lv-hage .lv-menyk.gull{ background:#ffe9a0; border-color:#e0bb62; box-shadow:0 3px 0 #e0bb62; } .lv-hage .lv-menyk.rod{ background:#f8d6cd; border-color:#e3a99a; box-shadow:0 3px 0 #e3a99a; }
.lv-hage .lv-trenavn{ font:800 12px var(--rund); background:rgba(242,220,172,.88); color:#5f402b; border:2px solid rgba(168,113,75,.8); text-shadow:none; padding:2px 9px; }
.lv-hage .lv-trehake{ background:var(--kk-gronn); border:2px solid #fff; color:#243a12; box-shadow:0 2px 0 var(--kk-gronn-lip); }
.lv-hage .lv-utvid{ border:3px solid #a8714b; background:rgba(242,220,172,.92); color:#5f402b; backdrop-filter:none; box-shadow:0 4px 0 #b98558, 0 0 34px -6px rgba(255,240,170,.9); font-family:var(--rund); }
.lv-hage .lv-utvid .lv-mono{ color:#8c6a4c; } .lv-hage .lv-utvid b{ font:800 1.05rem var(--rund); color:#5f402b; }
.lv-hage .lv-utvidpris{ background:var(--kk-gronn); border:2px solid var(--kk-gronn-kant); color:#243a12; font-family:var(--rund); font-weight:800; }
.lv-hage .lv-utvid.for-dyr .lv-utvidpris{ background:#e6d3ab; border-color:#c9ab76; color:#8c6a4c; }

@media (max-width:640px){ .lv-hage .lv-hint{ display:none; } }

/* ======================================================================
   PC-layout (runde 4): bredere skjermer får flere kolonner og kompakte topper.
   Mobil (under 900 px) er uendret.
   ====================================================================== */
@media (min-width:900px){
  /* Oppskrifter: 3–4 kort i bredden i stedet for 2 gigantiske */
  .lv-oppblokk .lv-cards{ grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px; }
  .lv-oppblokk .lv-rc{ aspect-ratio:4/4.6; }
  /* Ukeplan: tittel til venstre, uke-navigasjon til høyre, faner og notat på rad to */
  .lv-tile:has(> .lv-ukenav){ display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"tit nav" "seg note"; align-items:center; column-gap:24px; row-gap:14px; }
  .lv-tile:has(> .lv-ukenav) > div:first-child{ grid-area:tit; }
  .lv-tile:has(> .lv-ukenav) > .lv-ukenav{ grid-area:nav; justify-content:flex-end; gap:12px; margin:0; }
  .lv-tile:has(> .lv-ukenav) > .lv-ukenytt{ grid-area:seg; justify-self:start; }
  .lv-tile:has(> .lv-ukenav) > p.lv-muted{ grid-area:note; justify-self:end; text-align:right; max-width:520px; font-size:.85rem; }
  /* Vaner: hagen og dagens utfordring side om side */
  .lv-main:has(> .lv-hageinngang):has(> .lv-utf){ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:12px; align-items:stretch; }
  .lv-main:has(> .lv-hageinngang):has(> .lv-utf) > *{ grid-column:1 / -1; }
  .lv-main:has(> .lv-hageinngang):has(> .lv-utf) > .lv-hageinngang{ grid-column:1; grid-template-columns:minmax(180px,42%) 1fr auto; min-height:170px; }
  .lv-main:has(> .lv-hageinngang):has(> .lv-utf) > .lv-hageinngang .lv-hagemini{ min-height:170px; }
  .lv-main:has(> .lv-hageinngang):has(> .lv-utf) > .lv-utf{ grid-column:2; display:flex; flex-direction:column; justify-content:center; }
  /* Trening og logg: vektkort og dagens økt får mer luft, to-kolonners rutenett fyller bredden */
  .lv-duo{ gap:12px; }
}
@media (min-width:1500px){
  .lv-oppblokk .lv-cards{ grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); }
}

/* ===== Runde 5: levende verden, ryddig HUD, kjerne bloons, tomter med gjerde ===== */
/* mynt (kjerne bloons): sju bilder av en mynt som snurrer */
.lv-bloon{ --ms:26px; display:inline-block; flex:none; width:var(--ms); height:var(--ms); background:var(--mynt) 0 0/calc(var(--ms)*7) var(--ms) no-repeat; image-rendering:pixelated; animation:lv-bloonsnurr .9s steps(7) infinite; filter:drop-shadow(0 2px 0 rgba(120,70,10,.35)); vertical-align:middle; }
.lv-bloon.s{ --ms:16px; } .lv-bloon.stille{ animation:none; background-position:calc(var(--ms)*-3) 0; }
@keyframes lv-bloonsnurr{ to{ background-position:calc(var(--ms)*-7) 0; } }
/* høyre topp: butikk, og pengene i en egen rad under */
.lv-topphoyre{ position:absolute; z-index:25; right:12px; top:calc(var(--lv-dv) + 14px + env(safe-area-inset-top)); display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.lv-root .lv-hage .lv-topphoyre .lv-hagebutikk{ position:static; }
.lv-hagebutikk{ position:relative; }
.lv-ant{ display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:99px; background:#e8553d; color:#fff; border:2px solid #fff4d6; font:800 .74rem var(--rund); box-shadow:0 2px 0 rgba(120,30,15,.4); box-sizing:border-box; }
.lv-hage .gk.lv-hagebutikk.last{ opacity:.78; filter:saturate(.45) brightness(.97); }
.lv-hagebutikk.last svg{ opacity:.85; }
.lv-bloonrad{ display:flex; align-items:center; gap:7px; padding:5px 13px 5px 8px; border-radius:99px; background:var(--kk); color:var(--kk-mork); border:3px solid var(--kk-kant); box-shadow:0 3px 0 var(--kk-lip), 0 6px 10px rgba(40,24,10,.22), inset 0 2px 0 rgba(255,255,255,.6); font-family:var(--rund); }
.lv-bloonrad b{ font:800 1rem var(--rund); font-variant-numeric:tabular-nums; } .lv-bloonrad small{ font:700 .68rem var(--rund); color:#8c6a4c; }
.lv-bloonrad.lite{ padding:2px 10px 2px 6px; box-shadow:none; border-width:2px; } .lv-bloonrad.lite b{ font-size:.85rem; }
.lv-pris{ display:inline-flex; align-items:center; gap:5px; }
/* nivå og vær bor i oversikten (når du zoomer ut) */
.lv-oversikt{ display:none; position:absolute; z-index:25; left:12px; top:calc(var(--lv-dv) + 70px + env(safe-area-inset-top)); width:min(300px,calc(100vw - 24px)); flex-direction:column; gap:10px; }
.lv-hage.hele .lv-oversikt{ display:flex; animation:lv-inn .35s ease-out; }
@keyframes lv-inn{ from{ opacity:0; transform:translateY(8px); } }
.lv-ovkort{ padding:10px 12px 11px; border-radius:14px; background:var(--kk); color:var(--kk-mork); border:3px solid var(--kk-kant); box-shadow:0 4px 0 var(--kk-lip), 0 8px 12px rgba(40,24,10,.25), inset 0 2px 0 rgba(255,255,255,.6); display:flex; flex-direction:column; gap:6px; font-family:var(--rund); }
.lv-ovkort b{ font:800 .92rem var(--rund); } .lv-ovkort small{ font:700 .7rem var(--rund); color:#8c6a4c; }
.lv-ovkort .lv-spread{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.lv-nivbar{ display:block; height:10px; border-radius:99px; background:#e4c28a; border:2px solid var(--kk-kant); overflow:hidden; box-sizing:border-box; } .lv-nivbar i{ display:block; height:100%; background:var(--kk-gronn); border-radius:99px; }
.lv-ovrad{ display:flex; flex-direction:column; gap:3px; } .lv-ovrad > span{ font:800 .68rem var(--rund); letter-spacing:.05em; text-transform:uppercase; color:#8c6a4c; } .lv-ovrad > div{ display:flex; flex-wrap:wrap; gap:5px; }
.lv-hage .gk.sm{ min-height:0; padding:4px 10px; font:800 .72rem var(--rund); border-radius:99px; box-shadow:0 2px 0 var(--kk-lip), inset 0 2px 0 rgba(255,255,255,.55); }
.lv-hage.hele .lv-joy, .lv-hage.hele .lv-hudbunn, .lv-hage.hele .lv-wasd, .lv-hage.hele .lv-zoomhint{ opacity:0; pointer-events:none; }
.lv-hage.hele .lv-tre .lv-trenavn{ opacity:1; }
.lv-niv, .lv-smaa{ display:none !important; }
.lv-hage .lv-hagepanel.butikk{ top:calc(var(--lv-dv) + 122px + env(safe-area-inset-top)); }
/* WASD og E over joystick og knapp (kun PC) */
.lv-wasd{ display:none; position:absolute; z-index:25; left:22px; bottom:calc(var(--hud-bunn) + 148px); width:136px; flex-direction:column; align-items:center; gap:4px; pointer-events:none; }
.lv-wasd span{ display:flex; gap:4px; }
.lv-wasd kbd, .lv-ekey{ display:inline-grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--kk); color:var(--kk-mork); border:3px solid var(--kk-kant); box-shadow:0 3px 0 var(--kk-lip), inset 0 2px 0 rgba(255,255,255,.6); font:800 .82rem var(--rund); box-sizing:border-box; transition:transform .08s, background .12s; }
.lv-wasd kbd.on{ transform:translateY(3px); background:var(--kk-gronn); color:#fff; border-color:var(--kk-gronn-kant); box-shadow:0 0 0 var(--kk-lip); }
.lv-ekey{ display:none; position:absolute; right:-6px; top:-8px; width:28px; height:28px; font-size:.74rem; }
@media (hover:hover) and (pointer:fine){ .lv-wasd{ display:flex; } .lv-ekey{ display:inline-grid; } .lv-hage.tastatur .lv-wasd{ opacity:1; } }
.lv-zoomhint{ position:absolute; z-index:24; left:50%; bottom:calc(var(--hud-bunn) + 150px); transform:translateX(-50%); max-width:min(46vw,300px); text-align:center; padding:5px 13px; border-radius:14px; background:rgba(242,220,172,.88); color:#6b4630; border:2px solid rgba(168,113,75,.7); font:700 .72rem var(--rund); pointer-events:none; animation:lv-hintut 9s forwards; transition:opacity .3s; }
@keyframes lv-hintut{ 0%,75%{ opacity:1; } 100%{ opacity:0; } }
/* tomter: gjerde rundt hvert tre */
.lv-gj{ position:absolute; display:block; pointer-events:none; }
.lv-gj.post{ width:12px; height:34px; margin:-34px 0 0 -6px; border-radius:4px 4px 2px 2px; background:linear-gradient(90deg,#c4915c 0 40%,#a8714b 40% 100%); border:2px solid #7d4f2f; box-sizing:border-box; box-shadow:0 3px 0 rgba(60,35,15,.35); }
.lv-gj.post::before{ content:''; position:absolute; left:-2px; right:-2px; top:-4px; height:7px; border-radius:4px 4px 0 0; background:#d9a870; border:2px solid #7d4f2f; box-sizing:border-box; }
.lv-gj.rail{ height:8px; border-radius:3px; background:linear-gradient(#d3a06a,#b57e4f); border:2px solid #7d4f2f; box-sizing:border-box; box-shadow:0 3px 0 rgba(60,35,15,.3); transform:translateY(6px); }
.lv-gj.rail.v{ width:8px; height:auto; transform:none; margin-left:-4px; background:linear-gradient(90deg,#d3a06a,#b57e4f); }
.lv-gj.ledig{ opacity:.6; filter:saturate(.75) brightness(1.1); }
.lv-gj.ledig.rail, .lv-gj.ledig.post{ border-style:dashed; }
.lv-tomtskilt{ position:absolute; z-index:2; transform:translate(-50%,-50%); padding:3px 11px 4px; border-radius:9px; background:#ecd09a; color:#6b4630; border:3px solid #9b6a43; box-shadow:0 3px 0 #b98558; font:800 12px var(--rund); letter-spacing:.03em; pointer-events:none; opacity:.9; white-space:nowrap; }
.lv-hage.viser-felt .lv-gj{ filter:drop-shadow(0 0 5px rgba(255,110,80,.95)) brightness(1.1); } .lv-hage.viser-felt .lv-gj.ledig{ opacity:1; }
/* døgn: mørket glir med klokka (--mork 0..1), været demper lyset (--sky) */
.lv-hage .lv-kartbilde{ filter:brightness(calc(1 - var(--mork,0)*.38 - var(--sky,0)*.09)) saturate(calc(1 - var(--mork,0)*.12 - var(--sky,0)*.2)) hue-rotate(calc(var(--mork,0)*9deg)); transition:filter 2s; }
.lv-hage .lv-tre-img, .lv-hage .lv-husimg{ filter:brightness(calc(1 - var(--mork,0)*.22 - var(--sky,0)*.05)); }
.lv-hage.kveld .lv-husimg{ filter:brightness(calc(1 - var(--mork,0)*.1)) drop-shadow(0 8px 6px rgba(0,0,0,.35)); }
.lv-hage .lv-kartbilde ~ .lv-gj{ }
.lv-vignett{ background:radial-gradient(ellipse at 50% 46%,rgba(0,0,0,0) 48%,rgba(8,20,12,.5) 100%); }
.lv-hage.kveld .lv-vignett{ background:radial-gradient(ellipse at 50% 46%,rgba(0,0,0,0) 48%,rgba(8,20,12,.5) 100%); }
.lv-vignett::after{ content:''; position:absolute; inset:0; opacity:var(--mork,0); background:radial-gradient(ellipse at 50% 46%,rgba(8,16,60,.14) 30%,rgba(4,10,30,.74) 100%); transition:opacity 2s; }
/* vær over hele skjermen */
.lv-vaer{ position:absolute; inset:0; z-index:6; pointer-events:none; overflow:hidden; }
.lv-regn i{ position:absolute; top:-12vh; width:2px; height:64px; border-radius:2px; background:linear-gradient(rgba(200,225,250,0),rgba(200,225,250,.85)); transform:rotate(11deg); animation:lv-regnfall .8s linear infinite; }
@keyframes lv-regnfall{ to{ transform:translate(-26vh,118vh) rotate(11deg); } }
.lv-regn::before{ content:''; position:absolute; inset:0; background:rgba(40,60,90,.14); }
.lv-skyskygge i{ position:absolute; width:70vmax; height:34vmax; border-radius:50%; background:radial-gradient(ellipse,rgba(25,35,60,.4),rgba(25,35,60,0) 70%); filter:blur(14px); animation:lv-driv 70s linear infinite; }
.lv-skyskygge i:nth-child(1){ top:-8%; left:-80vmax; } .lv-skyskygge i:nth-child(2){ top:38%; left:-80vmax; animation-delay:-28s; animation-duration:90s; } .lv-skyskygge i:nth-child(3){ top:72%; left:-80vmax; animation-delay:-50s; animation-duration:80s; }
@keyframes lv-driv{ to{ transform:translateX(calc(100vw + 90vmax)); } }
.lv-taakelag{ position:absolute; inset:0; background:rgba(226,232,234,.34); backdrop-filter:blur(1.5px); }
.lv-taakelag i{ position:absolute; width:80vmax; height:30vmax; border-radius:50%; background:radial-gradient(ellipse,rgba(255,255,255,.55),rgba(255,255,255,0) 70%); filter:blur(18px); animation:lv-driv 120s linear infinite; }
.lv-taakelag i:nth-child(1){ top:5%; left:-90vmax; } .lv-taakelag i:nth-child(2){ top:40%; left:-90vmax; animation-delay:-60s; } .lv-taakelag i:nth-child(3){ top:70%; left:-90vmax; animation-delay:-95s; }
.lv-solstreif{ position:absolute; inset:0; opacity:calc(.9 - var(--mork,0)*1.2); background:linear-gradient(115deg,rgba(255,236,170,.0) 20%,rgba(255,236,170,.22) 36%,rgba(255,236,170,0) 52%,rgba(255,236,170,.14) 64%,rgba(255,236,170,0) 78%); mix-blend-mode:soft-light; animation:lv-solpust 9s ease-in-out infinite alternate; }
@keyframes lv-solpust{ to{ transform:translateX(5%); opacity:calc(.6 - var(--mork,0)); } }
/* laster hagen før den vises */
.lv-lastskjerm{ position:absolute; inset:0; z-index:40; display:grid; place-items:center; background:radial-gradient(circle at 50% 42%,#f6e6bd,#e0bd80); font-family:var(--rund); color:#6b4630; text-align:center; transition:opacity .5s; }
.lv-lastskjerm > div{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.lv-lastskjerm .lv-bloon{ --ms:44px; } .lv-lastskjerm b{ font:800 1.1rem var(--rund); } .lv-lastskjerm small{ font:700 .76rem var(--rund); color:#8c6a4c; }
.lv-lastskjerm.bort{ opacity:0; pointer-events:none; }
.lv-hage.laster .lv-skyer{ opacity:0; }
@media (prefers-reduced-motion:reduce){ .lv-bloon, .lv-regn i, .lv-skyskygge i, .lv-taakelag i, .lv-solstreif{ animation:none !important; } }
.lv-hage .lv-tre .lv-trenavn{ transform:translate(-50%,40px); }

/* runde 5b */
.lv-wasd{ display:none !important; }
.lv-joy .lt{ display:none; position:absolute; font:800 .8rem var(--rund); color:#7a4f2d; pointer-events:none; transition:transform .08s, color .1s; }
.lv-joy .lt.n{ top:6px; left:50%; transform:translateX(-50%); } .lv-joy .lt.s{ bottom:6px; left:50%; transform:translateX(-50%); }
.lv-joy .lt.v{ left:9px; top:50%; transform:translateY(-50%); } .lv-joy .lt.o{ right:9px; top:50%; transform:translateY(-50%); }
.lv-joy .lt.on{ color:#fff; text-shadow:0 0 6px #5a8a3a, 0 0 2px #3f6b28; }
@media (hover:hover) and (pointer:fine){ .lv-joy .lt{ display:block; } .lv-joy .p{ display:none; } }
.lv-bloonrad{ padding:3px 11px 3px 6px; gap:6px; border-width:2px; box-shadow:0 2px 0 var(--kk-lip), inset 0 2px 0 rgba(255,255,255,.6); }
.lv-bloonrad .lv-bloon{ --ms:20px; } .lv-bloonrad b{ font-size:.86rem; } .lv-bloonrad small{ font-size:.62rem; }
.lv-hudbunn .lv-zoomp{ flex-direction:row; border-radius:99px; } .lv-hudbunn .lv-zoomp .gk.rund{ width:36px; height:36px; } .lv-zoomp svg{ width:18px; height:18px; }
.lv-hagepanel.butikk{ top:calc(var(--lv-dv) + 108px + env(safe-area-inset-top)); }
.lv-lastskjerm{ background:radial-gradient(circle at 50% 42%,#ffffff,#e9f0f2); color:#58707a; }
.lv-lastskjerm small{ color:#7d939c; }
.lv-hage.laster .lv-skyer{ opacity:1; }
@media (max-width:640px){ .lv-hage.hele .lv-ovkort > small:not(.lv-spread small){ } .lv-hage.hele .lv-oversikt{ gap:6px; } .lv-ovkort{ padding:8px 10px 9px; gap:4px; } .lv-ovkort:nth-child(2) > small{ display:none; } }

/* runde 5c: hage med gjerde, broer, gjerdebiter */
.lv-gjs{ position:absolute; display:block; width:191px; height:127px; margin:-87px 0 0 -41px; max-width:none; transform-origin:41px 87px; transform:rotate(13.5deg); pointer-events:none; user-select:none; }
.lv-gjs.sp{ transform:rotate(-13.5deg) scaleX(-1); }
.lv-torii{ position:absolute; display:block; width:190px; max-width:none; margin:-126px 0 0 -94px; pointer-events:none; user-select:none; }
.lv-hagefelt{ position:absolute; left:0; top:0; max-width:none; pointer-events:none; z-index:1; opacity:0; transition:opacity .25s; }
.lv-hagefelt polygon{ fill:rgba(255,244,196,.12); stroke:rgba(255,246,214,.9); stroke-width:4; stroke-dasharray:18 11; stroke-linecap:round; }
.lv-hage.viser-felt .lv-hagefelt{ opacity:1; } .lv-hage.viser-felt .lv-hagefelt polygon{ fill:rgba(255,120,90,.2); stroke:#fff; animation:lv-marsj .9s linear infinite; }
.lv-hage.viser-felt .lv-gjs, .lv-hage.viser-felt .lv-torii{ filter:drop-shadow(0 0 5px rgba(255,110,80,.95)) brightness(1.08); }
.lv-broimg, .lv-gjdekor{ display:block; max-width:none; pointer-events:none; user-select:none; }
.lv-ting .lv-broimg, .lv-ting .lv-gjdekor{ filter:drop-shadow(0 4px 3px rgba(0,0,0,.28)); }
.lv-vareik img{ width:auto !important; height:100%; max-width:62px; max-height:48px; object-fit:contain; }
.lv-hage .lv-tre .lv-trenavn{ transform:translate(-50%,2px); }
.lv-hage.debug-bro .lv-brodbg{ display:block; }
/* butikkpanelet stopper over navigasjonen på mobil */
@media (max-width:640px){ .lv-hagepanel.butikk{ bottom:calc(112px + env(safe-area-inset-bottom)); max-height:none; overflow-y:auto; overscroll-behavior:contain; } .lv-hagepanel.butikk .lv-butikkliste{ padding-bottom:6px; } }

/* runde 5d: tegnede skyer som trekker fra hverandre */
.lv-skyer{ z-index:30; }
.lv-skyer i{ width:90vmax; height:65vmax; left:calc(var(--x)*1%); top:calc(var(--y)*1%); margin:-32vmax 0 0 -45vmax; border-radius:0; background:var(--img) center/contain no-repeat; filter:none; opacity:1;
  transition:transform 2.8s cubic-bezier(.45,0,.2,1) var(--d,0s), opacity 2s ease-in calc(var(--d,0s) + .5s); will-change:transform; }
.lv-hage.apen .lv-skyer i{ transform:translate(calc(var(--dx)*1vmax),calc(var(--dy)*.9vmax)) scale(1.25); opacity:0; }
.lv-lastskjerm{ z-index:29; background:linear-gradient(#9fd0ec,#d9ecf7 60%,#f2f8fc); transition:opacity .9s .15s; }
.lv-lastinfo{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:41; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; font-family:var(--rund); color:#4c6a7e; transition:opacity .4s; padding:14px 22px; border-radius:20px; background:rgba(255,255,255,.55); backdrop-filter:blur(3px); }
.lv-lastinfo .lv-bloon{ --ms:40px; } .lv-lastinfo b{ font:800 1.05rem var(--rund); } .lv-lastinfo small{ font:700 .74rem var(--rund); color:#6f8aa0; }
.lv-lastinfo.bort{ opacity:0; pointer-events:none; }
.lv-hage.laster .lv-skyer{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .lv-skyer i{ transition:opacity .6s !important; } }

/* ---- runde 6: kinesiske vegger, butikk med faner, nye ting, karaktervalg og venner ---- */
.lv-vegg{ position:absolute; display:block; max-width:none; pointer-events:none; user-select:none; transition:opacity .3s; filter:brightness(calc(1 - var(--mork,0)*.2 - var(--sky,0)*.05)) drop-shadow(0 6px 5px rgba(0,0,0,.28)); }
.lv-hage.inni .lv-vegg.fram{ opacity:.28; }
.lv-hage.viser-felt .lv-vegg{ filter:drop-shadow(0 0 5px rgba(255,110,80,.95)) brightness(1.08); }
.lv-obimg{ display:block; max-width:none; pointer-events:none; filter:brightness(calc(1 - var(--mork,0)*.2 - var(--sky,0)*.05)) drop-shadow(0 6px 5px rgba(0,0,0,.26)); }
.lv-obimg[data-lys="1"]{ filter:drop-shadow(0 6px 5px rgba(0,0,0,.26)); }
.lv-ting.nar .lv-obimg{ filter:drop-shadow(0 0 3px #fff4be) drop-shadow(0 0 13px rgba(255,230,140,.95)); }
.lv-obglod{ position:absolute; left:50%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,214,120,.55),rgba(255,214,120,0) 66%); pointer-events:none; mix-blend-mode:screen; animation:lv-glod2 3.4s ease-in-out infinite; }
.lv-obglod.flamme{ animation-duration:.9s; background:radial-gradient(circle,rgba(255,170,70,.65),rgba(255,140,50,0) 66%); }
@keyframes lv-glod2{ 50%{ opacity:.55; } }
.lv-vareik .lv-obimg{ width:auto!important; height:100%!important; max-width:62px; max-height:48px; object-fit:contain; filter:none; }
.lv-slot.full .lv-obimg{ width:auto!important; height:auto!important; max-width:90%; max-height:54px; filter:none; }
/* butikken: faner som kan rulle sidelengs, og et innhold som aldri havner under nav-baren */
.lv-seg.rull{ display:flex; width:100%; overflow-x:auto; scrollbar-width:none; } .lv-seg.rull::-webkit-scrollbar{ display:none; } .lv-seg.rull button{ flex:none; }
.lv-subrad{ display:flex; gap:6px; overflow-x:auto; margin-top:8px; padding-bottom:2px; scrollbar-width:none; } .lv-subrad::-webkit-scrollbar{ display:none; }
.lv-subrad button{ flex:none; padding:5px 12px; border-radius:99px; border:2px solid #d1ac74; background:#f9eed2; color:#7a5a3e; font:800 .78rem var(--rund); white-space:nowrap; }
.lv-subrad button.on{ background:var(--kk-gronn); border-color:var(--kk-gronn-kant); color:#243a12; }
/* karaktervalg */
.lv-karknapp{ width:46px; height:46px; padding:0; border-radius:50%; background:#f9eed2; border:3px solid #a8714b; box-shadow:0 3px 0 #b98558, 0 6px 10px rgba(40,24,10,.22); display:grid; place-items:center; overflow:hidden; cursor:pointer; }
.lv-karknapp img{ height:38px; width:auto; max-width:none; margin-top:6px; pointer-events:none; }
.lv-karknapp:active{ transform:translateY(2px); box-shadow:0 1px 0 #b98558; }
.lv-kargrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px; margin:12px 0; }
.lv-karkort{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 4px 8px; border-radius:16px; background:#f9eed2; border:2px solid #dcbd8c; box-shadow:0 3px 0 #dcbd8c; color:#5a3e2b; cursor:pointer; font-family:var(--rund); }
.lv-karkort img{ height:64px; width:auto; max-width:none; }
.lv-karkort b{ font:800 .8rem var(--rund); } .lv-karkort small{ font:700 .68rem var(--rund); color:#8c6a4c; }
.lv-karkort.valgt{ background:var(--kk-gronn); border-color:var(--kk-gronn-kant); box-shadow:0 3px 0 var(--kk-gronn-lip); } .lv-karkort.valgt small{ color:#3d5a24; }
.lv-karkort:active{ transform:translateY(2px); }
.lv-hage .lv-hagepanel.kar{ top:calc(var(--lv-dv) + 122px + env(safe-area-inset-top)); bottom:auto; right:12px; left:auto; transform:none; }
.lv-vandrerkropp img{ height:var(--kh,62px); }
.lv-venn .lv-vandrerskygge{ opacity:.8; }
/* panelene ender alltid over nav-baren: fast bunn, og listen inni ruller */
.lv-root .lv-hage .lv-hagepanel.butikk, .lv-root .lv-hage .lv-hagepanel.kar{ display:flex; flex-direction:column; overflow:hidden; top:auto; bottom:calc(92px + env(safe-area-inset-bottom)); max-height:calc(100% - var(--lv-dv) - 190px - env(safe-area-inset-top)); }
.lv-root .lv-hage .lv-hagepanel.butikk[hidden], .lv-root .lv-hage .lv-hagepanel.kar[hidden]{ display:none; }
.lv-root .lv-hage .lv-hagepanel.butikk{ left:12px; right:12px; width:auto; transform:none; }
.lv-root .lv-hage .lv-hagepanel.butikk > *, .lv-root .lv-hage .lv-hagepanel.kar > *{ flex:none; }
.lv-root .lv-hage .lv-hagepanel.butikk .lv-butikkliste{ flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; padding-bottom:4px; }
.lv-root .lv-hage .lv-hagepanel.kar{ left:12px; right:12px; width:auto; transform:none; overflow-y:auto; }
@media (min-width:641px){
  .lv-root .lv-hage .lv-hagepanel.butikk, .lv-root .lv-hage .lv-hagepanel.kar{ left:auto; right:16px; width:min(440px,calc(100vw - 32px)); top:calc(var(--lv-dv) + 122px + env(safe-area-inset-top)); bottom:auto; max-height:calc(100% - var(--lv-dv) - 150px); }
}
@media (max-width:640px){ .lv-hagepanel.butikk .lv-butikkfot{ display:none; } }
