@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
/* Neurosymbolisk AI: signal, symbol och spårbar härledning. */
.ns-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}.ns-steps button{padding:12px 9px;background:#f6f8f8;border:1px solid #dfe5e9;border-radius:7px;color:#334b5c;font-size:11px;text-align:left;line-height:1.5}.ns-steps small{display:block;color:#117967;margin-bottom:4px}.ns-steps button.active{border-color:#117967;background:#edf7f2;box-shadow:inset 0 -3px #117967}.ns-neural,.ns-symbolic{border:2px solid transparent;border-radius:10px;padding:16px}.ns-neural{background:#112330;color:#e6eff3}.ns-caption{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.4px;line-height:1.6}.ns-caption>span{font-weight:400;letter-spacing:0}.ns-neural .ns-caption>span,.ns-neural .hint{color:#c2d3df}#ns-network{width:100%;display:block;margin-top:10px}#ns-network text{fill:#e6eff3;font:13px 'DM Sans',sans-serif}#ns-network .ns-value{fill:#d4f391;font-weight:700}#ns-network .ns-graph-note{fill:#c2d3df;font-size:11px}#ns-object{width:100%;display:block;background:#112330;border-radius:8px;margin-top:18px}.ns-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.ns-scores>div{padding:10px;border:1px solid #496270;border-radius:6px;font-size:11px}.ns-scores strong{float:right}.ns-scores meter{display:block;width:100%;height:12px;margin-top:6px;accent-color:#c9ed97}.ns-scores .ns-winner{border-color:#c9ed97;color:#d4f391}.ns-bridge{display:flex;align-items:center;gap:16px;background:#f0edf7;padding:16px;margin:14px 0;border:2px solid transparent;border-radius:8px}.ns-bridge>span{font-size:28px;color:#6f4e91}.ns-bridge strong{font-size:12px}.ns-bridge p{font-size:12px;margin:5px 0 0;line-height:1.6}.ns-symbolic{background:#f6f8f7}.ns-highlight{border-color:#117967}.ns-neural.ns-highlight{border-color:#83ba7c}.ns-facts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.ns-facts>span{background:#e6f2ed;border:1px solid #b4d6c9;border-radius:5px;padding:6px 10px;color:#245e4e;font-size:12px}.ns-rules{display:grid;gap:8px}.ns-rule{display:grid;grid-template-columns:48px 1fr;gap:5px 10px;border:1px solid #dfe5e9;border-radius:7px;padding:10px 12px;background:#fff;font-size:12px;line-height:1.7}.ns-rule>strong{color:#627181}.ns-rule small{grid-column:2;font-size:10px;color:#627181}.ns-rule.ns-fired{border-color:#9bc5af;background:#edf7f0}.ns-fired>strong,.ns-met{color:#14654e}.ns-missing{text-decoration:underline dotted;text-underline-offset:3px}.ns-check{display:flex;align-items:center;gap:10px;line-height:1.6}.ns-check input{width:18px;height:18px;accent-color:#117967;flex-shrink:0}.ns-decision{padding:20px;background:#112330;color:#e6eff3;border-radius:9px;margin-top:18px}.ns-decision>span{display:block;font-size:9px;letter-spacing:1.5px;color:#c2d3df}.ns-decision>strong{display:block;font-size:22px;color:#d4f391;margin-top:8px;text-transform:capitalize}.ns-decision p{font-size:12px;line-height:1.7;margin:8px 0 0}.ns-trace{font-size:12px;line-height:1.9;padding-left:22px}.ns-theory{margin:24px 0 36px}#ns-calculation{white-space:pre-wrap}#neurosymbolic summary{cursor:pointer;color:#117967;font-size:12px}#neurosymbolic .theory-grid a{color:#117967}
@media(max-width:900px){.ns-steps{grid-template-columns:repeat(2,1fr)}.ns-caption{flex-direction:column;gap:2px}.ns-neural,.ns-symbolic{padding:10px}.ns-rule{padding:9px;grid-template-columns:40px 1fr}}@media(max-width:650px){#neurosymbolic .input-panel>.hint{text-align:left}.ns-scores{gap:5px}.ns-scores>div{padding:8px 6px}.ns-rule{font-size:11px}}
:root{--bg:#f5f6f8;--ink:#152536;--muted:#627181;--line:#dfe5e9;--green:#117967;--lime:#d4f391;--dark:#112330}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,select,input{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #d29122;outline-offset:4px}header{height:86px;padding:0 5%;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px;background:#fff}.brand{text-decoration:none;color:var(--ink);font-size:25px;font-weight:800;letter-spacing:-1px}.brand>span:not(.brand-icon){color:var(--green)}.brand-icon{background:var(--ink);color:var(--lime);border-radius:10px;padding:3px 9px;margin-right:8px}.header-note{font-size:10px;letter-spacing:1.7px;color:var(--muted)}.version{margin-left:auto;font-size:10px;letter-spacing:1px}main{max-width:1440px;margin:auto;padding:0 5%}.hero{padding:58px 0 38px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--green)}.eyebrow>span,.live-dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:7px}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(38px,5vw,64px);letter-spacing:-3px;line-height:1.12;margin:17px 0}h1 em{font-style:normal;color:var(--green)}.hero p{font-size:16px;color:var(--muted);line-height:1.8}.tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);overflow:auto}.tabs button{white-space:nowrap;border:0;background:none;color:var(--muted);padding:17px 24px;border-bottom:3px solid transparent;font-weight:700}.tabs button.active{color:var(--green);border-color:var(--green)}.tabs button span{font-size:11px;font-weight:400;margin-left:7px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:36px 0 24px}h2{font-size:28px;letter-spacing:-1px;margin:8px 0 10px}.section-heading p{color:var(--muted);margin:0;line-height:1.6}.text-link{color:var(--green);font-weight:600;white-space:nowrap;text-decoration:none}.lab{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 38px #15253606}.lab-top{padding:19px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:11px;letter-spacing:.7px}.muted{color:var(--muted);font-weight:400}.tag{background:#edf4ef;color:#336650;border:1px solid #dce8de;padding:6px 10px;border-radius:5px;font-size:10px;font-weight:500;white-space:nowrap}.workspace{display:grid;grid-template-columns:285px 1fr}.input-panel{padding:25px;border-right:1px solid var(--line);background:#fbfcfc}.step-label{color:var(--green);font-size:11px;font-weight:700;margin-bottom:20px}.step-label span{color:var(--ink);margin-left:10px}.canvas-wrap{background:var(--dark);border-radius:10px;padding:14px 14px 9px;text-align:center}.canvas-wrap canvas{width:100%;display:block;touch-action:none;cursor:crosshair;image-rendering:pixelated}.canvas-wrap>span{font-size:9px;color:#a7bcc9;letter-spacing:1px}.sample-row{display:flex;gap:6px;margin-top:12px}.sample-row button{border:1px solid var(--line);border-radius:6px;background:#fff;min-width:29px;height:34px;font-weight:600}.sample-row button.selected{border-color:var(--green);color:var(--green);background:#edf7f2}.sample-row #clear{font-size:10px;margin-left:auto}.hint{font-size:11px;line-height:1.65;color:var(--muted)}label{display:block;font-size:11px;font-weight:600;margin:20px 0 9px}select{width:100%;padding:11px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.kernel-info{display:flex;gap:12px;margin-top:20px;align-items:center}.kernel{display:grid;grid-template-columns:repeat(3,24px);gap:3px}.kernel span{font:11px monospace;background:#e9efed;padding:6px 0;text-align:center;border-radius:3px}.kernel-info p{font-size:11px;line-height:1.6;color:var(--muted)}.results{padding:25px 28px;min-width:0}.flow{display:flex;align-items:center;gap:12px}.stage{background:none;border:1px solid var(--line);border-radius:9px;padding:12px;flex:1;min-width:0;color:var(--ink);text-align:left}.stage.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.stage-number{font-size:8px;letter-spacing:.8px;display:block;margin-bottom:12px;color:var(--muted)}.stage canvas{width:100%;background:var(--dark);border-radius:5px;display:block;image-rendering:pixelated}.stage strong{display:block;font-size:11px;margin:12px 0 5px}.stage>span:last-child{font-size:10px;color:var(--muted)}.arrow{color:#8caaa1}.legend{display:flex;gap:14px;align-items:center;margin:16px 0;font-size:9px;color:var(--muted);flex-wrap:wrap}.legend span{display:flex;gap:5px;align-items:center}.legend span:last-child{margin-left:auto}.legend i{width:7px;height:7px;border-radius:2px}.negative{background:#bb83d2}.zero{background:var(--dark)}.positive{background:#bce793}.explanation{display:flex;gap:14px;background:#f0f6f2;border-radius:8px;padding:17px;margin:20px 0}.explanation-icon{font-size:24px;color:var(--green)}h3{font-size:15px;margin:0 0 8px}.explanation p{margin:0;font-size:12px;line-height:1.7;color:#486155}.inspector{border-top:1px solid var(--line);padding-top:19px}.inspector-heading{display:flex;justify-content:space-between;align-items:center}.inspector h3{margin:7px 0}.inspector button{border:1px solid var(--line);border-radius:6px;background:white;padding:8px 12px;font-size:11px}.inspector label{margin-top:12px;color:var(--muted)}output{float:right}input[type=range]{width:100%;accent-color:var(--green)}.calculation{background:var(--dark);color:#d4f391;padding:13px 16px;border-radius:6px;font-family:monospace;font-size:12px;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.calculation small{display:block;color:#bfd0d8;font-size:10px}.lab-footer{padding:15px 25px;display:flex;justify-content:space-between;gap:10px;background:#fafbfc;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}#theory{padding:5px 0 42px}.theory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.theory-grid article{background:#fff;border:1px solid var(--line);padding:24px;border-radius:10px}.article-number{font-size:11px;color:var(--green);display:block;margin-bottom:20px}.theory-grid p{color:var(--muted);font-size:12px;line-height:1.85}.theory-grid summary{font-size:11px;color:var(--green);cursor:pointer;font-weight:600}footer{padding:25px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:24px;color:var(--muted);font-size:10px}footer .brand{font-size:18px}footer>span:last-child{margin-left:auto}#placeholder{text-align:center;padding:90px 20px 120px}#placeholder p{color:var(--muted);line-height:1.8}.empty-symbol{font-size:55px;color:var(--green);margin-bottom:25px}[hidden]{display:none!important}@media(min-width:1250px){.workspace{grid-template-columns:310px 1fr}.results{padding:25px 35px}.flow{gap:17px}}@media(max-width:900px){.workspace{grid-template-columns:230px 1fr}.input-panel,.results{padding:18px}.flow{gap:6px}.stage{padding:8px}.stage-number{font-size:7px}.arrow{font-size:11px}.header-note{display:none}.sample-row{gap:3px}.sample-row button{min-width:25px}.section-heading{align-items:start}.theory-grid{gap:10px}.theory-grid article{padding:18px}}@media(max-width:650px){header{height:68px}.hero{padding:35px 0 22px}h1{letter-spacing:-2px}.hero p{font-size:14px}.tabs button{padding:14px 17px}.tabs button span{display:none}.section-heading{flex-direction:column;gap:8px}h2{font-size:25px}.workspace{grid-template-columns:1fr}.input-panel{border-right:0;border-bottom:1px solid var(--line)}.canvas-wrap{max-width:240px;margin:auto}.sample-row{max-width:240px;margin:12px auto}.input-panel>.hint{text-align:center}.kernel-info{margin-top:10px}.results{padding:20px 14px}.stage strong{font-size:9px}.stage-number{font-size:6px;letter-spacing:0}.legend span:last-child{margin-left:0}.lab-top{padding:15px}.lab-top .muted{display:none}.lab-footer{flex-direction:column}.theory-grid{grid-template-columns:1fr}.version{font-size:9px}.section-heading>.muted{font-size:12px}footer{gap:12px}}

.vae-flow{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:18px;align-items:center}.vae-flow figure{margin:0;min-width:0}.vae-flow figcaption{font-size:10px;color:var(--muted);letter-spacing:.6px;margin-bottom:12px}.vae-flow canvas{width:100%;display:block;border-radius:9px}.vae-flow figure p{font-size:11px;color:var(--muted);line-height:1.6;min-height:36px}.vae-action{display:block;width:100%;padding:12px;margin:10px 0;border:1px solid var(--green);background:#edf7f2;color:var(--green);border-radius:6px}.vae-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.vae-metrics>div{background:#f0f6f2;border-radius:8px;padding:14px}.vae-metrics span{display:block;font-size:10px;color:#486155}.vae-metrics strong{display:block;font-size:23px;margin-top:8px}.vae-theory{margin:24px 0 42px}@media(max-width:650px){.vae-flow{grid-template-columns:1fr 1fr;gap:14px}.vae-space{grid-column:1/-1;grid-row:2;max-width:320px;width:100%;justify-self:center}.vae-metrics{grid-template-columns:1fr}.vae-metrics>div{display:flex;align-items:center;justify-content:space-between}.vae-metrics strong{margin:0}}

/* GAN: samma arbetsyta, med en gemensam axel för data och modell. */
.gan-actions{display:grid;gap:10px;margin-top:24px}.gan-actions button{min-height:44px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);padding:10px}.gan-actions button:first-child{background:var(--green);color:white;border-color:var(--green)}.gan-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:11px}.gan-legend span:first-child{color:#117967}.gan-legend span:nth-child(2){color:#86499f}.gan-legend span:last-child{color:#85560a}#gan-chart{display:block;width:100%;margin-top:22px;overflow:visible}#gan-chart text{font:12px 'DM Sans',sans-serif;fill:var(--muted)}.gan-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gan-metrics>div{border:1px solid var(--line);border-radius:8px;padding:12px}.gan-metrics span{display:block;font-size:10px;color:var(--muted)}.gan-metrics strong{display:block;font-size:23px;margin-top:8px}.gan-theory{margin-bottom:40px}@media(max-width:650px){.gan-metrics{gap:6px}.gan-metrics>div{padding:9px}.gan-metrics strong{font-size:20px}#gan-chart{min-height:190px}}

.eval-controls{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:4px 25px 18px;border-bottom:1px solid var(--line);background:#fbfcfc}.eval-reset{border:1px solid var(--line);background:white;border-radius:6px;padding:9px 14px;color:var(--ink)}.eval-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:30px;padding:25px}.eval-examples{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.eval-mail{border:1px solid #bfd0cc;border-radius:6px;padding:8px 3px;min-height:68px;color:var(--ink)}.eval-mail span,.eval-mail strong,.eval-mail small{display:block}.eval-mail span{font-size:10px}.eval-mail strong{font-size:16px;margin:3px 0}.eval-mail small{font-size:9px}.tp{background:#dff0d2}.tn{background:#e7f1ef}.fp{background:#fff0d4}.fn{background:#f2e1f4}.eval-mail[data-dim]{opacity:.35}.eval-matrix{display:grid;grid-template-columns:50px 1fr 1fr;gap:8px;align-items:stretch}.eval-matrix>span{align-self:center;text-align:center;font-size:11px}.eval-matrix button{border:1px solid #bbc9c8;border-radius:9px;padding:18px 5px;color:var(--ink);font-size:11px;min-height:110px}.eval-matrix strong{display:block;font-size:32px;margin-bottom:8px}.eval-matrix button[aria-pressed=true]{outline:3px solid var(--green);outline-offset:1px}.eval-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0 25px 25px}.eval-metrics article{border:1px solid var(--line);border-radius:9px;padding:18px}.eval-metrics article>strong{font-size:26px;color:var(--green);display:block}.eval-metrics p{font-size:12px;line-height:1.6;color:var(--muted)}.eval-metrics small{font-size:11px}#evaluation{padding-bottom:35px}#eval-detail,#eval-summary{font-size:12px;line-height:1.7;min-height:80px}@media(max-width:900px){.eval-layout{grid-template-columns:1fr}.eval-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.eval-controls{grid-template-columns:1fr;gap:0;padding:4px 16px 16px}.eval-layout{padding:18px 12px}.eval-metrics{padding:0 12px 18px;gap:8px}.eval-metrics article{padding:12px}.eval-metrics article>strong{font-size:22px}.eval-mail small{font-size:8px}.eval-examples{gap:4px}}

/* Sekvenslabbet */
.lstm-button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:9px 12px;font-size:12px}.lstm-button:hover{border-color:var(--green)}.lstm-button:disabled{opacity:.4;cursor:default}.lstm-tokens{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.lstm-tokens button{border:1px solid var(--line);border-radius:8px;padding:12px 5px;background:#fff;color:var(--ink);font-size:11px}.lstm-tokens small{display:block;color:var(--muted);font-size:8px;letter-spacing:1px;margin-bottom:8px}.lstm-tokens .selected{background:#edf7f2;border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.lstm-controls{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.lstm-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 16px}.lstm-metrics>div{background:#f0f6f2;border-radius:8px;padding:14px}.lstm-metrics span{display:block;color:var(--muted);font-size:10px}.lstm-metrics strong{display:block;font-size:25px;font-weight:500;color:var(--green);margin-top:8px;font-variant-numeric:tabular-nums}#lstm-step-title{margin-top:26px}#lstm-chart{display:block;width:100%;height:auto;margin:8px 0}#lstm-chart text{font-size:11px;fill:var(--muted)}.lstm-chart-key{display:flex;gap:20px;font-size:11px;color:var(--green)}.lstm-chart-key span+span{color:#8357a6}.lstm-table-wrap{overflow-x:auto}.lstm-table-wrap table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}.lstm-table-wrap th,.lstm-table-wrap td{text-align:right;padding:10px 7px;border-bottom:1px solid var(--line);white-space:nowrap}.lstm-table-wrap th:first-child{text-align:left}.lstm-table-wrap caption{text-align:left;color:var(--muted);padding:12px 0}.lstm-table-wrap .current{background:#edf7f2}#lstm summary{cursor:pointer;color:var(--green);font-size:12px}#lstm-theory{padding-bottom:30px}.lstm-quiz h3{margin-top:10px}@media(max-width:900px){.lstm-tokens{grid-template-columns:repeat(3,1fr)}.lstm-metrics>div{padding:10px}.lstm-metrics strong{font-size:22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* Filmkontroller för CNN */
.cnn-cinema{padding:20px 25px;background:#132b35;color:#e3eee9;border-bottom:1px solid #27434c}.cnn-transport{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cnn-transport button{border:1px solid #50686d;background:#203c45;color:#edf5ef;border-radius:7px;padding:10px 14px;font-size:12px}.cnn-transport #play{background:#d4f391;color:#18362a;border-color:#d4f391;font-weight:700;min-width:145px}.cnn-transport label{margin:0 0 0 auto;color:#c1d4d4}.cnn-transport select{width:auto;background:#203c45;color:#edf5ef;border-color:#50686d;padding:9px;font-size:12px}.cnn-timeline{display:flex;justify-content:space-between;gap:12px;margin:18px 0 8px;font-size:11px;color:#d2e5db}.cnn-cinema progress{width:100%;height:5px;accent-color:#d4f391;display:block}.cnn-cinema p{color:#bbd0d0;font-size:11px;line-height:1.7;margin:12px 0 0}@media(max-width:650px){.cnn-cinema{padding:18px 15px}.cnn-transport label{margin-left:0}.cnn-timeline{flex-direction:column;gap:5px}}
.cnn-transport [data-play]{background:#d4f391;color:#18362a;border-color:#d4f391;font-weight:700;min-width:145px}
.dnn-network{background:#112330;border-radius:12px;padding:10px;overflow:auto}.dnn-network svg{width:100%;min-width:490px;display:block}#dnn-equation{white-space:pre-line;margin-top:20px}#dnn .theory-grid{margin-top:24px;margin-bottom:35px}

/* Attention: samma ord och skala i alla tre lager. */
.att-words{display:flex;flex-wrap:wrap;gap:8px}.att-words button{padding:12px 15px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-weight:600}.att-words button[aria-pressed="true"]{background:var(--dark);border-color:var(--dark);color:var(--lime)}.att-layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.att-layer{background:var(--dark);border-radius:12px;padding:14px 10px}.att-layer h3{color:#d4f391;font-size:13px;margin:0 8px 8px}.att-layer svg{display:block;width:100%;font-size:12px}.att-theory{margin-top:26px}#att-calculation{overflow-wrap:anywhere}#att-causal{width:auto;accent-color:var(--green)}@media(max-width:1100px){.att-layers{grid-template-columns:1fr}.att-layer svg{max-width:360px;margin:auto}}

/* Träning: riktning och gradienter syns även utan färg. */
.training-phases{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.training-phases span{font-size:11px;padding:12px 7px;border:1px solid var(--line);border-radius:6px}.training-phases .active{background:#e6f2de;border-color:#187968;font-weight:700}#training-network{display:block;width:100%;background:#112330;border-radius:12px}#training-network text{fill:#edf5ef;font-size:13px}#training-equation{white-space:pre-line;overflow-wrap:anywhere;min-height:130px;margin:16px 0;font-variant-numeric:tabular-nums}#training-chart{width:100%;display:block}#training-chart text{fill:#486155;font-size:12px}#training-status{font-size:13px;line-height:1.6}#training button:disabled{opacity:.5;cursor:default}@media(max-width:650px){.training-phases{grid-template-columns:repeat(2,1fr)}#training-network{min-height:160px}#training .gan-metrics{grid-template-columns:1fr}#training .gan-metrics>div{display:flex;align-items:center;justify-content:space-between}#training .gan-metrics strong{margin:0}}

/* Embeddings: samma koordinater används i kartan och beräkningen. */
#emb-space{display:block;width:100%;background:#112330;border-radius:12px;touch-action:manipulation}#emb-space text{font-size:13px;fill:#c7d9df}#emb-space .emb-point text{font-weight:600;paint-order:stroke;stroke:#112330;stroke-width:4px}.emb-point{cursor:pointer}.emb-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;margin-bottom:14px}.emb-neighbors{display:grid;gap:10px;margin:20px 0}.emb-neighbors>div{display:grid;grid-template-columns:1fr auto;gap:6px 14px;font-size:13px}.emb-neighbors small{color:var(--muted)}.emb-neighbors meter{grid-column:1/-1;width:100%;height:8px;accent-color:var(--green)}#emb-calculation{white-space:pre-line;overflow-wrap:anywhere}.emb-theory{margin-top:26px;margin-bottom:35px}#embeddings summary{cursor:pointer;font-size:13px;color:var(--green)}#embeddings button:focus-visible,#embeddings select:focus-visible,#embeddings input:focus-visible{outline:3px solid #187968;outline-offset:3px}@media(max-width:650px){#embeddings .results{padding:16px 10px}#emb-space text{font-size:15px}}

#generalization svg{width:100%;display:block;font-size:13px;fill:var(--ink)}.gen-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;margin-bottom:15px}.gen-legend span:nth-child(2){color:#a85812}.gen-legend span:nth-child(1),.gen-legend span:nth-child(3){color:#117967}.gen-theory{margin:24px 0}.gen-method{margin:24px 0;line-height:1.8}#gen-calculation{white-space:pre-line}#generalization .results{min-width:0}#generalization input[type=checkbox]{width:auto}#generalization .input-panel label{display:block;margin-top:20px}

/* Reinforcement Learning */
.rl-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-width:520px;margin:18px auto;padding:12px;background:#112330;border-radius:16px}
.rl-cell{min-width:0;min-height:58px;aspect-ratio:1;border:2px solid transparent;border-radius:8px;background:#e3ece8;color:#203740;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font:inherit;padding:2px}
.rl-cell span{font-size:14px;min-height:20px}.rl-cell strong{font-size:20px;letter-spacing:-2px}.rl-cell.wall{background:#314751;color:#a8bac0;opacity:1}.rl-cell.hazard{background:#ffe0b9;color:#733e0d}.rl-cell.goal{background:#d2f293;color:#304717}.rl-cell.agent{background:#a6ded8;border-color:#117967}.rl-cell.inspected{outline:3px solid #f7bd5b;outline-offset:1px}.rl-cell:focus-visible{outline:3px solid #fff;outline-offset:2px}
.rl-legend{display:flex;flex-wrap:wrap;gap:15px;font-size:13px}.rl-values{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rl-values div{background:#e9f1ed;border-radius:8px;text-align:center;padding:12px;color:#203740}.rl-values span,.rl-values strong{display:block}.rl-values span{font-size:22px}#rl-chart{display:block;width:100%;margin-top:16px}#rl-chart text{font-size:12px;fill:#526773}#rl .calculation{overflow-wrap:anywhere}#rl .results{min-width:0}
@media(max-width:600px){.rl-grid{gap:5px;padding:8px}.rl-cell{min-height:44px}.rl-cell strong{font-size:15px}.rl-values div{padding:8px 2px}}

/* Gemensamt metadata-kontrakt: byggtid för de lokala exemplen. */
.hero .build-status{font-size:11px;line-height:1.6;margin-top:12px;color:#647785}
