.hej-exam {
  --a1:#197b66; --deep:#075d55; --mint:#74c7aa; --pale:#eef7f2; --ink:#193342;
  --muted:#536970; --line:#d8e4df; --coral:#c62d4e;
  max-width:1200px; width:100%; min-width:0; margin:24px auto 40px; padding:0 clamp(12px,2vw,28px);
  background:#fff; color:var(--ink); font:16px/1.55 "Manrope","Segoe UI",Arial,sans-serif;
}
.hej-exam *, .hej-exam *::before, .hej-exam *::after { box-sizing:border-box; }
.hej-exam [hidden] { display:none !important; }
.hej-exam :is(h1,h2,h3,h4,p,fieldset) { margin:0; }
.hej-exam h1,.hej-exam h2,.hej-exam h3,.hej-exam h4 { color:var(--ink); font-family:inherit; font-weight:730; }
.hej-exam :is(button,input,textarea) { font:inherit; letter-spacing:normal; text-transform:none; }
.hej-exam button { cursor:pointer; }
.hej-exam button:disabled { cursor:default; opacity:.65; }
.hej-exam :is(button,a,input,textarea,summary):focus-visible { outline:3px solid var(--a1); outline-offset:3px; }
.hej-exam button,.hej-exam a { touch-action:manipulation; }
.hej-exam a { color:var(--deep); }
.hej-exam .gx-primary,.hej-exam .gx-secondary,.hej-exam .gx-text-btn,.hej-exam .gx-option { display:inline-flex; align-items:center; justify-content:center; gap:.55em; min-height:38px; border-radius:8px; padding:8px 14px; border:1px solid var(--line); background:white; color:var(--deep); font-size:14px; font-weight:700; box-shadow:none; text-decoration:none; }
.hej-exam .gx-primary { color:#fff; background:var(--a1); border-color:var(--a1); }
.hej-exam .gx-primary:hover { background:var(--deep); color:#fff; }
.hej-exam .gx-secondary:hover,.hej-exam .gx-option:hover { background:var(--pale); color:var(--deep); }
.hej-exam .gx-text-btn { background:transparent; border:0; padding:2px 0; min-height:28px; }
.hej-exam .gx-text-btn:hover { text-decoration:underline; }
.hej-exam .gx-icon { width:24px; height:24px; flex:none; }
.hej-exam .gx-hero { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:12px 0 24px; border-bottom:1px solid var(--line); }
.hej-exam .gx-context,.hej-exam .gx-level { display:flex; align-items:center; gap:12px; }
.hej-exam .gx-area { color:var(--coral); font-size:13px; font-weight:750; }
.hej-exam .gx-level { display:inline-flex; gap:5px; padding:2px 9px; color:var(--a1); font-size:13px; font-weight:750; border:1px solid var(--line); border-radius:20px; }
.hej-exam .gx-level svg { width:16px; height:16px; }
.hej-exam .gx-hero h1 { color:var(--deep); font-size:clamp(29px,3.2vw,43px); letter-spacing:-.045em; line-height:1.16; margin:9px 0 4px; }
.hej-exam .gx-hero h1 span { color:var(--mint); }
.hej-exam .gx-hero-main>p { font-size:16px; color:var(--muted); }
.hej-exam .gx-launch { display:grid; gap:6px; justify-items:end; }
.hej-exam .gx-launch .gx-primary { padding:10px 18px; min-height:44px; }
.hej-exam .gx-session { font-size:12px; color:var(--muted); text-align:right; }
.hej-exam .gx-intro-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(265px,1fr); gap:clamp(18px,3vw,40px); align-items:start; margin:24px 0; }
.hej-exam .gx-section-title { display:flex; align-items:baseline; gap:12px; padding-bottom:9px; border-bottom:2px solid var(--a1); }
.hej-exam .gx-section-title h2,.hej-exam .gx-rule-card h2 { font-size:22px; line-height:1.3; letter-spacing:-.025em; }
.hej-exam .gx-section-title>span,.hej-exam .gx-type,.hej-exam .gx-agenda-facts>span { color:var(--muted); font-size:13px; }
.hej-exam .gx-agenda-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:13px; padding:16px 0; border-bottom:1px solid var(--line); }
.hej-exam .gx-module-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--pale); color:var(--a1); }
.hej-exam .gx-agenda-copy h3 { font-size:18px; color:var(--deep); }
.hej-exam .gx-agenda-copy p { font-size:14px; font-weight:620; margin-bottom:4px; }
.hej-exam .gx-agenda-facts { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; align-self:center; }
.hej-exam .gx-agenda-facts strong { font-size:15px; color:var(--deep); white-space:nowrap; }
.hej-exam .gx-rule-card { border:1px solid var(--line); border-radius:12px; padding:18px 21px; background:#fff; }
.hej-exam [data-rule-text] h3,.hej-exam .gx-rule-copy h3 { font-size:14px; color:var(--deep); margin:13px 0 3px; }
.hej-exam [data-rule-text] p,.hej-exam .gx-rule-copy p { color:var(--muted); font-size:14px; line-height:1.5; }
.hej-exam .gx-details { margin-top:13px; border-top:1px solid var(--line); padding-top:10px; }
.hej-exam summary { cursor:pointer; color:var(--deep); font-weight:650; font-size:14px; }
.hej-exam .gx-details[open] p { margin-top:8px; }
.hej-exam .gx-breadcrumb { color:var(--muted); font-size:13px; margin:0 0 12px; }
.hej-exam .gx-attempt-head,.hej-exam .gx-work-head,.hej-exam .gx-foot,.hej-exam .gx-nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.hej-exam .gx-attempt-head h2 { color:var(--deep); font-size:clamp(22px,2.5vw,32px); }
.hej-exam .gx-toolbar { display:flex; align-items:center; gap:16px; justify-content:space-between; flex-wrap:wrap; padding:12px 0; margin:8px 0 18px; border-block:1px solid var(--line); }
.hej-exam .gx-nav { justify-content:flex-start; gap:5px; }
.hej-exam .gx-nav .gx-option { gap:7px; font-size:13px; }
.hej-exam .gx-option[aria-current],.hej-exam .gx-option[aria-pressed=true] { background:var(--a1); color:#fff; border-color:var(--a1); }
.hej-exam .gx-nav svg { width:17px; height:17px; }
.hej-exam .gx-instruments,.hej-exam .gx-time,.hej-exam .gx-progress { display:flex; align-items:center; gap:9px; }
.hej-exam .gx-instruments { gap:18px; }
.hej-exam .gx-clock { width:48px; height:48px; color:var(--a1); }
.hej-exam .gx-clock-hand { transform-origin:30px 30px; }
.hej-exam .gx-time-copy { display:grid; line-height:1.15; }
.hej-exam .gx-time-copy .gx-text-btn { justify-content:flex-start; min-height:22px; font-size:12px; }
.hej-exam .gx-time-copy strong { font-variant-numeric:tabular-nums; font-size:22px; color:var(--ink); }
.hej-exam .gx-time-copy small,.hej-exam .gx-progress small { color:var(--muted); font-size:11px; }
.hej-exam .gx-orb { --fill:0%; display:grid; place-items:center; width:39px; height:39px; border-radius:50%; border:2px solid var(--mint); color:var(--deep); background:linear-gradient(to top,#74c7aa var(--fill),#f5fbf7 var(--fill)); box-shadow:inset -4px -4px 6px #075d5512; font-weight:800; }
.hej-exam .gx-orb.is-done { --fill:100%; background:radial-gradient(at 36% 25%,#c9f4d3,#62b899 58%,#197b66); color:#fff; }
.hej-exam .gx-orb.just-finished { animation:gx-glow 1.2s ease-out 2; }
@keyframes gx-glow { 55% { box-shadow:0 0 18px 5px #74c7aaaa; } }
@media(prefers-reduced-motion:reduce) { .hej-exam .gx-orb.just-finished { animation:none; } }
.hej-exam .gx-work-head { margin-bottom:12px; }
.hej-exam .gx-work-head h2 { color:var(--deep); font-size:26px; }
.hej-exam .gx-work-head p,.hej-exam .gx-muted { color:var(--muted); font-size:14px; }
.hej-exam .gx-groups { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 15px; }
.hej-exam .gx-groups button { min-height:34px; padding:5px 10px; font-size:13px; }
.hej-exam .gx-work-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:18px; align-items:start; }
.hej-exam .gx-panel { border:1px solid var(--line); border-radius:10px; background:#fff; padding:16px; min-width:0; }
.hej-exam .gx-panel>h3 { font-size:17px; color:var(--deep); margin-bottom:10px; }
.hej-exam .gx-doc { border:1px solid #d7ded8; border-radius:5px; overflow:hidden; background:#fff; margin:10px 0; }
.hej-exam .gx-doc:last-child { margin-bottom:0; }
.hej-exam .gx-doc small { display:block; font-size:12px; color:var(--deep); font-weight:700; background:#eef4f0; padding:6px 12px; border-bottom:1px solid var(--line); }
.hej-exam .gx-doc h4 { font-size:17px; padding:10px 12px 0; }
.hej-exam .gx-doc p { white-space:pre-line; font:16px/1.65 Georgia,serif; padding:8px 12px 13px; }
.hej-exam .gx-doc.sign { border-color:#b7c7bc; border-left:4px solid var(--a1); }
.hej-exam .gx-doc.ad { background:#fffdf8; }
.hej-exam .gx-q { border:0; border-top:1px solid var(--line); padding:12px 0 10px; min-width:0; }
.hej-exam .gx-q h4 { font-size:15px; margin-bottom:7px; line-height:1.45; }
.hej-exam .gx-q-number { width:24px; height:24px; display:inline-grid; place-items:center; background:var(--a1); color:#fff; border-radius:50%; font:700 12px/1 system-ui; margin-right:5px; }
.hej-exam .gx-answer { display:flex; align-items:baseline; gap:8px; margin:2px 0; font-size:15px; }
.hej-exam input[type=radio] { accent-color:var(--a1); flex-shrink:0; margin:0; }
.hej-exam .gx-flag { border:0; background:transparent; color:var(--muted); padding:2px 0; box-shadow:none; font-size:12px; font-weight:600; }
.hej-exam .gx-flag[aria-pressed=true] { color:#85600d; }
.hej-exam .gx-audio-list { display:grid; gap:10px; }
.hej-exam .gx-audio-row { padding:9px 0; border-top:1px solid var(--line); }
.hej-exam .gx-audio-row strong { display:block; color:var(--deep); font-size:14px; }
.hej-exam .gx-audio-row small { display:block; font-size:12px; color:var(--muted); }
.hej-exam .gx-audio-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:4px 0; }
.hej-exam .gx-form-field { display:grid; gap:3px; margin:9px 0; }
.hej-exam .gx-form-field label { font-size:14px; font-weight:650; }
.hej-exam .gx-form-field input,.hej-exam textarea { padding:9px 11px; width:100%; color:var(--ink); border:1px solid #a8bfba; border-radius:6px; background:#fff; }
.hej-exam textarea { min-height:175px; resize:vertical; }
.hej-exam .gx-panel ul { padding-left:20px; margin:9px 0; }
.hej-exam .gx-feedback { margin-top:5px; border-left:3px solid var(--mint); padding:3px 8px; font-size:13px; }
.hej-exam .gx-feedback.missed { border-color:#df9b7b; }
.hej-exam .gx-foot { border-top:1px solid var(--line); margin:18px 0 0; padding:12px 0; }
.hej-exam .gx-foot-actions { display:flex; gap:8px; flex-wrap:wrap; }
.hej-exam .gx-overlay { position:fixed; inset:0; z-index:100010; display:grid; place-items:center; padding:16px; background:#173a3866; }
.hej-exam .gx-dialog { max-width:550px; width:100%; max-height:90vh; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; box-shadow:0 20px 70px #152d3924; }
.hej-exam .gx-dialog h2 { color:var(--deep); font-size:23px; margin-bottom:8px; }
.hej-exam .gx-dialog p,.hej-exam .gx-dialog li { font-size:14px; }
.hej-exam .gx-dialog [data-dialog-actions] { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; flex-wrap:wrap; }
.hej-exam .gx-result { border:1px solid var(--line); border-radius:12px; padding:17px; margin:12px 0 18px; }
.hej-exam .gx-result h2 { font-size:23px; color:var(--deep); margin-bottom:6px; }
.hej-exam .gx-result-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:12px 0; }
.hej-exam .gx-result-list div { border-left:2px solid var(--mint); padding:2px 9px; font-size:13px; }
.hej-exam .gx-result-list b { display:block; }
.hej-exam .hej-pt { max-width:none; width:100%; margin:0; padding:0; }
.hej-exam .gx-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:900px) { .hej-exam .gx-intro-grid { grid-template-columns:minmax(0,1.45fr) minmax(234px,1fr); gap:16px; } .hej-exam .gx-toolbar { align-items:center; } }
@media(max-width:700px) {
  .hej-exam .gx-intro-grid,.hej-exam .gx-work-grid { grid-template-columns:minmax(0,1fr); }
  .hej-exam .gx-hero { flex-wrap:wrap; gap:12px; }
  .hej-exam .gx-launch { justify-items:start; } .hej-exam .gx-session { text-align:left; }
  .hej-exam .gx-agenda-row { gap:9px; } .hej-exam .gx-module-icon { width:32px; height:32px; } .hej-exam .gx-module-icon svg { width:20px; }
  .hej-exam .gx-nav { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hej-exam .gx-nav .gx-option { padding:6px 2px; gap:3px; font-size:12px; white-space:nowrap; }
  .hej-exam .gx-nav svg { width:14px; } .hej-exam .gx-instruments { width:100%; justify-content:space-between; }
  .hej-exam .gx-result-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:400px) { .hej-exam .gx-agenda-row { grid-template-columns:minmax(0,1fr) auto; } .hej-exam .gx-module-icon { display:none; } .hej-exam .gx-nav svg { display:none; } }
.hej-model-entry { max-width:1160px; margin:16px auto; }
.hej-model-entry a { display:inline-flex; gap:12px; align-items:center; padding:9px 15px; color:#075d55; border:1px solid #a5cbbc; border-radius:8px; font-weight:700; text-decoration:none; background:#fff; }
.hej-model-entry a:hover,.hej-model-entry a:focus-visible { background:#eef7f2; }
body.hej-goethe-a1-model .hej-exam-orbit:not(:has(nav)) { display:none; }
.hej-exam { scroll-margin-top:90px; }
.hej-exam .gx-picture-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.hej-exam .gx-picture-answer { display:grid; justify-items:center; align-content:start; gap:5px; border:1px solid var(--line); border-radius:6px; padding:6px 3px; text-align:center; line-height:1.3; cursor:pointer; }
.hej-exam .gx-picture-answer:has(input:checked) { border-color:var(--a1); background:var(--pale); }
.hej-exam .gx-picture-answer span { display:block; color:var(--ink); font-size:13px; }
.hej-exam .gx-picture-answer b { color:var(--deep); }
.hej-exam .gx-choice-image { width:48px; height:38px; color:var(--deep); }
.hej-exam .gx-section-title { flex-wrap:wrap; row-gap:3px; }
