/* Hjernet – online-delen (login, profil, lektier) */
.acct-in { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; }
html[data-theme="dark"] .acct-in { background: #1F6FD6; }
.login-box { max-width: 560px; }
.login-form { display: flex; flex-direction: column; gap: 6px; margin-top: 14px; }
.login-form label { font-weight: 700; margin-top: 8px; }
.login-form input[type=text], .login-form input[type=email], .login-form input[type=password] { font-size: 1.1rem; padding: 12px 14px; }
.login-form .btn { align-self: flex-start; margin-top: 14px; }
.role-pick { border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; gap: 6px; }
.role-pick legend { font-weight: 700; padding: 0 6px; }
.role-pick label { font-weight: 600; margin: 0; display: flex; gap: 8px; align-items: baseline; }
.profile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 16px; }
.profile-grid h2 { margin-top: 0; font-size: 1.2rem; }
ul.plain { list-style: none; padding: 0; margin: 6px 0; display: flex; flex-direction: column; gap: 6px; }
.announce { background: var(--blue-soft); border: 1px solid var(--blue-line); color: var(--ink); border-radius: 12px; padding: 12px 16px; font-weight: 700; margin-bottom: 16px; }
.homework { margin-bottom: 20px; }
.homework h2 { margin-top: 0; }
.hw-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 0; border-top: 1px solid var(--line); }
.hw-list li:first-child { border-top: 0; }
.hw-list small { display: block; font-size: .9rem; }

/* ---------- Opstart og besøgende ---------- */
body.booting #main, body.booting #nav, body.booting .foot { visibility: hidden; }
body.booting::after { content: "Henter Hjernet …"; position: fixed; inset: 0; display: grid; place-items: center; font: 700 1.2rem var(--font); color: var(--navy); }
body.guest #nav, body.guest .top .stats > :not(#acctBtn):not(#themeBtn), body.guest .foot a[href="#backup"], body.guest .foot a[href="#guide"] { display: none !important; }
.acct-guest { width: auto !important; padding: 0 16px !important; border-radius: 999px !important; background: var(--blue) !important; color: #fff !important; border-color: var(--blue) !important; }
html[data-theme="dark"] .acct-guest { background: #1F6FD6 !important; border-color: #1F6FD6 !important; }
.acct-txt { font-weight: 700; white-space: nowrap; }

/* ---------- Forsiden for besøgende ---------- */
.landing { display: flex; flex-direction: column; gap: 24px; }
.land-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 12px 0; }
.land-hero h1 { font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.1; margin: 4px 0 14px; }
.land-cta { margin-top: 18px; gap: 10px; }
.land-art { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.land-art span { display: grid; place-items: center; aspect-ratio: 1; background: var(--blue-soft); border: 1px solid var(--blue-line); border-radius: 24px; font-size: 3.2rem; }
.land-art .ic { width: 3.4rem; height: 3.4rem; color: var(--blue); }
.land-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 16px; }
.land-cards h2, .land-how h2 { margin-top: 0; }
@media (max-width: 760px) { .land-hero { grid-template-columns: 1fr; } .land-art { display: none; } }
.prose h2 { font-size: 1.2rem; margin: 22px 0 6px; } .prose h2:first-child { margin-top: 0; } .prose p, .prose li { max-width: 72ch; }

/* ---------- Billeder ved spørgsmål ---------- */
.qimg { margin: 10px 0 14px; }
.qimg img { display: block; max-width: 100%; max-height: 300px; width: auto; height: auto; border-radius: 12px; border: 1px solid var(--line); background: var(--soft); }
.qimg figcaption { font-size: .78rem; margin-top: 4px; color: var(--ink); opacity: .85; }
.qthumb { width: 56px; height: 42px; object-fit: cover; border-radius: 6px; flex: none; border: 1px solid var(--line); }
.explain { background: var(--blue-soft); border: 1px solid var(--blue-line); border-radius: 12px; padding: 10px 14px; margin: 10px 0; }

/* ---------- Kort ---------- */
.hjmap { width: 100%; aspect-ratio: 4 / 3.3; max-height: 70vh; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); position: relative; }
.dk-wrap.has-map > svg { display: none; }
.hjm-pin { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 800 1rem var(--font); background: #1F6FD6; color: #fff; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); cursor: pointer; padding: 0; }
.hjm-pin.right { background: #097D5A; } .hjm-pin.wrong { background: #B42E2E; } .hjm-pin.dim { opacity: .55; }
.hjm-pin.guess { background: #B42E2E; width: 22px; height: 22px; } div.hjm-pin { cursor: default; }
.hjm-pin:focus-visible { outline: 3px solid #F2C14E; outline-offset: 2px; }
.hjm-cross { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -17px 0 0 -17px; pointer-events: none; z-index: 2;
  background: linear-gradient(#B42E2E, #B42E2E) center / 3px 100% no-repeat, linear-gradient(#B42E2E, #B42E2E) center / 100% 3px no-repeat; filter: drop-shadow(0 0 2px #fff); }
.hjm-guess { margin-top: 10px; }

/* ---------- Resultatskærme og fakta ---------- */
.res-extra { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 4px 0 10px; }
.stars { display: flex; gap: 6px; font-size: 2.4rem; line-height: 1; }
.stars span { color: var(--line); } .stars span.on { color: #D99A00; }
html[data-theme="dark"] .stars span.on { color: #F2C14E; }
.res-trend { font-weight: 700; margin: 0; }
.res-spark { width: 220px; max-width: 100%; height: auto; color: var(--blue); } .res-spark circle { fill: var(--blue); }
.res-tip { max-width: 60ch; margin: 4px 0 0; background: var(--blue-soft); border: 2px solid var(--blue-line); border-radius: 10px; padding: 8px 12px; text-align: left; }
.facts { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.fact { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 12px; align-items: start; background: var(--card); border: 2px solid var(--line); border-radius: 12px; padding: 10px; }
.fact .qimg { margin: 0; } .fact .qimg img { max-height: 160px; } .fact p { margin: 4px 0 0; }
.fact:not(:has(.qimg)) { grid-template-columns: 1fr; }
@media (max-width: 600px) { .fact { grid-template-columns: 1fr; } }
.tl-item .qthumb { margin-right: 8px; }
/* Forsiden for besøgende: ingen brødkrummer, mindre illustration */
body.guest .crumbs { display: none !important; }
.land-art { max-width: 300px; justify-self: end; gap: 12px; }
.land-art span { border-width: 2px; border-color: var(--blue-line); border-style: solid; }
.land-hero { padding: 4px 0; }

/* =====================================================
   Den røde tråd: Lær · Spil · Mig
   ===================================================== */
.learn-today { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; border-color: var(--blue) !important; background: var(--blue-soft); }
.learn-today h2 { margin: 0 0 2px; } .learn-today p { margin: 0; }
.learn-today.done { border-color: var(--mint-dark) !important; background: var(--mint-soft); }
.learn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 10px; }
.learn-card { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left; font: inherit; color: var(--ink); background: var(--card); border: 2px solid var(--line); border-radius: 14px; padding: 14px; cursor: pointer; }
.learn-card:hover, .learn-card:focus-visible { border-color: var(--blue); background: var(--blue-soft); }
.learn-card b { font-size: 1.1rem; color: var(--navy); }
.lc-e { font-size: 1.8rem; line-height: 1; } .lc-e .ic { width: 1.8rem; height: 1.8rem; color: var(--blue); }
.lc-ex { font-size: .92rem; }
.lc-tech { margin-top: auto; font-size: .8rem; font-weight: 700; border: 2px solid var(--blue-line); background: var(--blue-soft); color: var(--navy); border-radius: 999px; padding: 2px 10px; }
.mine-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr)); gap: 10px; }
.mine-grid.big { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.mine { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: var(--ink); background: var(--card); border: 2px solid var(--line); border-radius: 12px; padding: 12px; }
.mine:hover, .mine:focus-visible { border-color: var(--blue); }
.mine > span { font-size: 1.4rem; } .mine > span .ic { width: 1.5rem; height: 1.5rem; color: var(--blue); }
.mine b { color: var(--navy); } .mine small { font-size: .88rem; }
.why summary { cursor: pointer; font-weight: 700; color: var(--navy); } .why ul { margin: 8px 0 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: 6px; }
.flow-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 10px; }
.flow-head .lc-e { font-size: 2.4rem; } .flow-head .lc-e .ic { width: 2.6rem; height: 2.6rem; }
.flow-head h1 { margin: 0 0 4px !important; }
.tech-line { margin: 0; max-width: 70ch; background: var(--blue-soft); border: 2px solid var(--blue-line); border-radius: 10px; padding: 8px 12px; }
.flow-form { display: flex; flex-direction: column; gap: 10px; }
.flow-form label { display: flex; flex-direction: column; gap: 4px; font-weight: 700; }
.flow-form input, .flow-form textarea { font-size: 1.05rem; padding: 10px 12px; border: 2px solid var(--line); border-radius: 10px; background: var(--card); color: var(--ink); }
.flow-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 8px; padding: 10px; border: 2px solid var(--line); border-radius: 12px; }
.fig-prev { align-self: end; padding-bottom: 8px; }
.flow-done { padding: 20px 0; } .flow-done .lead { max-width: 56ch; margin-left: auto !important; margin-right: auto !important; }
.mig-head { display: flex; gap: 14px; align-items: center; } .mig-head h1 { margin: 0 !important; } .mig-head p { margin: 2px 0 0; }
.mig-av { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #fff; font: 800 1.6rem var(--font); flex: none; }
html[data-theme="dark"] .mig-av { background: #1F6FD6; }
.tool-intro { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border: 2px solid var(--blue-line); background: var(--blue-soft); border-radius: 12px; padding: 8px 12px; margin: 0 0 12px; }
.tool-intro p { margin: 0; flex: 1 1 18rem; } .tool-intro > span { font-size: 1.4rem; } .tool-intro > span .ic { color: var(--blue); }
.next-step { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border: 2px solid var(--blue) !important; border-radius: 12px; padding: 10px 14px; margin-top: 16px; background: var(--card); }
.next-step b { color: var(--navy); } .next-step span { flex: 1 1 14rem; }
