:root{--ink:#153728;--forest:#115a38;--forest2:#0b4a2e;--paper:#f5f8f3;--white:#fff;--line:#dae5dc;--muted:#637166;--soft:#eaf4ec;--warn:#fff6e2;--warnink:#825c1c;--red:#a4453d;--shadow:0 16px 45px rgba(29,65,43,.09)}
html{font-size:100%}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f6f8f3,#edf5ee 55%,#f7faf6);color:var(--ink);font:0.875rem Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.shell{width:min(1180px,calc(100% - 48px));margin:auto}.demo-strip{padding:12px 18px;background:#113e2e;color:#e6f1e8;text-align:center;font-weight:700;letter-spacing:.02em;font-size:0.75rem;display:flex;align-items:center;justify-content:center;gap:10px}.demo-badge{display:inline-block;padding:3px 9px;border-radius:6px;background:#f4c542;color:#3a2e05;font-weight:900;letter-spacing:.08em;font-size:0.7188rem}.header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:var(--forest);color:white;font:500 1.5625rem Georgia,serif}.brand b,.brand small{display:block}.brand b{font-size:1.125rem}.brand small{margin-top:1px;color:#5f6d63;font-size:0.7188rem;font-weight:750}.header nav{display:flex;gap:5px}.tab{border:0;background:transparent;color:#617067;border-radius:8px;padding:10px 13px;font-weight:760;font-size:0.75rem}.tab.active,.tab:hover{background:#eaf3eb;color:var(--forest)}.main{padding-bottom:70px}.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center;padding:70px 0 50px}.eyebrow,.mini{margin:0;color:var(--forest);font-size:0.7188rem;font-weight:900;letter-spacing:.12em}.hero h1,.heading-row h2,.review-hero h1,.decision h2{font:500 clamp(2.6875rem,5.3vw,4.625rem)/.95 Georgia,serif;letter-spacing:-.055em;margin:13px 0 18px}.hero h1 em{color:#5b7768;font-style:normal}.lead{max-width:710px;color:#5f6d63;font-size:1rem;line-height:1.65}.chips{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}.chips span{color:#315944;font-size:0.75rem;font-weight:740}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:13px 18px;text-decoration:none;font-weight:830;font-size:0.8125rem}.primary{border:1px solid var(--forest);background:var(--forest);color:white;box-shadow:0 7px 16px rgba(14,83,50,.18)}.primary:hover{background:var(--forest2)}.secondary{border:1px solid #cfdcd2;background:white;color:#355345}.full{width:100%}.center{text-align:center}.hero-card,.table-card,.detail-card,.form-card,.result-card,.doc,.api-box,.verify-card,.decision,.insights article{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.hero-card{padding:26px}.hero-score{margin:18px 0;padding:18px;border-radius:13px;background:var(--soft)}.hero-score span,.hero-score strong{display:block}.hero-score span,.hero-row span{color:#607167;font-size:0.7188rem;font-weight:850;letter-spacing:.06em}.hero-score b{display:block;margin:5px 0;font:500 3.25rem Georgia,serif;letter-spacing:-.06em}.hero-score b small{font:800 0.9375rem Inter,system-ui,sans-serif;letter-spacing:-.02em}.hero-score strong{font-size:0.8125rem}.hero-row{display:flex;justify-content:space-between;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.hero-row b{font-size:0.75rem}.hint{margin:16px 0 0;color:var(--muted);font-size:0.6875rem;line-height:1.5}.integration-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-radius:12px;margin-bottom:22px;font-size:0.75rem}.integration-banner div{display:grid;gap:3px}.integration-banner span{font-size:0.6875rem}.integration-banner.ready{background:#e9f6eb;border:1px solid #bde1c5;color:#1d5e37}.integration-banner.missing{background:#fff7e7;border:1px solid #efd8ae;color:#7a5b23}.good{color:#1d7a42;font-weight:800}.bad{color:#8a6318;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metrics article{padding:17px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.75)}.metrics span,.metrics small{display:block;color:var(--muted);font-size:0.7188rem}.metrics span{font-weight:800}.metrics b{display:block;margin:4px 0;font:500 2.25rem Georgia,serif;letter-spacing:-.05em}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:55px 0 17px}.heading-row h2{font-size:2.4375rem;margin:7px 0}.heading-row p:not(.eyebrow){max-width:680px;margin:0;color:var(--muted);font-size:0.75rem;line-height:1.55}.inbox-layout{display:grid;grid-template-columns:1.38fr .62fr;gap:16px}.table-card{padding:0;overflow:hidden}.table-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line)}.table-top b,.table-top small{display:block}.table-top small{margin-top:2px;color:var(--muted);font-size:0.7188rem}.table-top select{padding:8px;border:1px solid var(--line);border-radius:8px;background:white;font-size:0.6875rem;color:#4d5d52}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%}th,td{padding:14px 16px;border-bottom:1px solid #e4ece5;text-align:left;vertical-align:middle}th{color:#5f6d63;font-size:0.6875rem;letter-spacing:.06em}td{font-size:0.6875rem}td b,td small{display:block}td small{margin-top:3px;color:var(--muted);font-size:0.7188rem}.selected{background:#f1f7f2}.status{display:inline-block;padding:5px 7px;border-radius:999px;font-size:0.6875rem;font-weight:800}.status.done{background:#e5f4e7;color:#1d7a42}.status.pending{background:#eef2ef;color:#4f5c53}.status.warn{background:#fff2db;color:#7d5716}.small-btn{padding:7px 9px;border:1px solid #cbdacd;background:white;color:#315541;border-radius:7px;font-size:0.7188rem;font-weight:800}.empty-row{text-align:center;color:var(--muted);padding:35px}.detail-card{min-height:295px;padding:20px}.empty{display:grid;place-items:center;min-height:220px;text-align:center;color:var(--muted);font-size:0.75rem;line-height:1.55}.detail-card h3{margin:5px 0;font-size:1.25rem}.detail-muted{margin:0 0 12px;color:var(--muted);font-size:0.6875rem}.detail-score{margin:16px 0;padding:13px;border-radius:11px;background:var(--soft)}.detail-score span,.detail-score strong{display:block}.detail-score span{font-size:0.6875rem;color:#547060;font-weight:900;letter-spacing:.08em}.detail-score b{display:block;margin:4px 0;font:500 2.25rem Georgia,serif}.detail-score b small{font:800 0.75rem Inter,system-ui,sans-serif}.detail-score strong{font-size:0.6875rem}.detail-headline{font-weight:820;font-size:0.8125rem;line-height:1.4}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.detail-grid div{padding:10px;border:1px solid var(--line);border-radius:9px}.detail-grid span,.detail-grid b{display:block}.detail-grid span{font-size:0.6875rem;color:var(--muted)}.detail-grid b{margin-top:3px;font-size:0.6875rem}.waiting,.failure{margin:15px 0;padding:13px;border-radius:10px;font-size:0.6875rem;line-height:1.45}.waiting{background:#f1f5f1;color:#55635a}.failure{background:#fff0ef;color:#90433b}.create-layout{display:grid;grid-template-columns:.65fr 1fr;gap:18px}.form-card,.result-card{padding:23px}.form-card label{display:block;margin:15px 0 0;font-weight:800;font-size:0.6875rem}.form-card input,.verify-card input,.verify-card textarea{width:100%;margin-top:7px;padding:12px;border:1px solid #cbdccf;border-radius:9px;background:#fff;color:var(--ink);outline:none}.form-card input:focus,.verify-card input:focus,.verify-card textarea:focus{border-color:#4f9a6a;box-shadow:0 0 0 3px #dff1e3}.form-card small{display:block;margin-top:5px;color:var(--muted);font-weight:500;font-size:0.7188rem;line-height:1.45}.optional{color:#5f6d63;font-weight:600}.form-card button{margin-top:20px}.result-card{display:grid;place-items:center;min-height:390px}.result-card .empty{max-width:290px}.empty-mark{display:grid;place-items:center;width:43px;height:43px;margin:0 auto 10px;border-radius:50%;background:#e8f5ea;color:var(--forest);font-size:1.5625rem}.result-card h3{font-size:1.4375rem;margin:8px 0}.result-card>p{color:var(--muted);font-size:0.75rem;line-height:1.55}.link-box{margin:15px 0;padding:12px;border-radius:9px;background:#eff5f0;color:#3d5748;font:0.6875rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.actions{display:flex;gap:8px;flex-wrap:wrap}.api-box p:not(.eyebrow){color:var(--muted);line-height:1.6;font-size:0.75rem}.toast{position:fixed;right:20px;bottom:20px;max-width:330px;padding:13px 15px;border-radius:10px;background:#123a29;color:#fff;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;box-shadow:var(--shadow);font-size:0.75rem}.toast.show{opacity:1;transform:none}.hidden{display:none!important}
/* Verify */.verify-head{width:min(930px,calc(100% - 48px));margin:auto;height:100px;display:flex;align-items:center;justify-content:space-between}.secure{color:#5f6d63;font-size:0.6875rem;font-weight:750}.verify-shell{width:min(930px,calc(100% - 48px));margin:55px auto}.progress{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 24px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:#fff}.progress div{display:flex;align-items:center;gap:8px;color:#5f6d63;font-size:0.6875rem;font-weight:800}.progress span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf1ee;color:#77857a}.progress .active{color:var(--forest)}.progress .active span{background:var(--forest);color:#fff}.verify-card{border-radius:0 0 18px 18px;min-height:480px;padding:56px 105px}.verify-copy h1,.complete h1{font:500 3rem/1 Georgia,serif;letter-spacing:-.05em;margin:12px 0}.verify-copy>p{max-width:620px;color:var(--muted);font-size:0.875rem;line-height:1.55}.verify-card label{display:block;margin-top:25px;font-size:0.6875rem;font-weight:850}.info-note{display:grid;gap:4px;margin-top:16px;padding:14px;border-radius:11px;background:#eef6ef;color:#57665d;font-size:0.6875rem;line-height:1.45}.info-note b{color:#3b5847}.form-error{min-height:15px;margin:12px 0 0;color:var(--red);font-size:0.6875rem;font-weight:700}.verify-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:27px}.steps{margin:21px 0;padding:16px 16px 16px 34px;border:1px solid var(--line);border-radius:11px;background:#fbfdfb;color:#526157;font-size:0.75rem;line-height:1.75}.steps b{color:#1b5135}.complete{text-align:center}.check{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 18px;border-radius:50%;background:var(--forest);color:white;font-size:1.875rem}.complete>p{max-width:600px;margin:15px auto;color:var(--muted);font-size:0.8125rem;line-height:1.55}.complete-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}.complete-grid div{padding:11px;border:1px solid var(--line);border-radius:9px;text-align:left}.complete-grid span,.complete-grid b{display:block}.complete-grid span{color:var(--muted);font-size:0.6875rem;font-weight:800}.complete-grid b{margin-top:5px;font-size:0.6875rem}.verify-error,.review-error{display:grid;place-items:center;align-content:center;min-height:390px;text-align:center}.verify-error h1,.review-error h1{font:500 2.75rem Georgia,serif}.verify-error p,.review-error p{max-width:550px;color:var(--muted);line-height:1.55}
/* Review */.review-main{padding:25px 0 70px}.back{color:#466653;text-decoration:none;font-size:0.75rem;font-weight:800}.review-hero>div>p:not(.eyebrow){max-width:760px;margin:0;color:var(--muted);font-size:0.875rem;line-height:1.6}.review-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:16px;color:#5c6a61;font-size:0.6875rem}.outcome{width:280px;padding:18px;border-radius:14px}.outcome.green{background:#e9f6eb}.outcome.amber{background:var(--warn)}.outcome-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#d8ecdd;color:#216741;font-size:1.125rem}.outcome.amber .outcome-icon{background:#ffebba;color:#7d5716}.outcome b,.outcome small{display:block}.outcome b{margin-top:10px;font-size:0.875rem}.outcome small{margin-top:4px;color:#59665d;font-size:0.6875rem;line-height:1.45}.decision{display:grid;grid-template-columns:1.35fr .65fr;gap:25px;margin-top:24px;padding:27px}.decision.green{background:#eaf8ed;border-color:#d0e8d4}.decision.amber{background:#fff9ec;border-color:#efdcb5}.decision h2{font-size:2.0625rem;margin:6px 0}.decision p:not(.eyebrow){max-width:720px;color:#59685f;font-size:0.8125rem;line-height:1.55}.insights{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.insights article{padding:20px}.insights h3{margin:6px 0 0;font-size:1.25rem}.positive-list,.warning-list,.limitations{display:grid;gap:10px;margin:17px 0 0;padding:0;list-style:none;color:#516158;font-size:0.75rem;line-height:1.45}.positive-list li,.warning-list li{display:flex;gap:8px}.positive-list li:before{content:'✓';font-weight:900;color:#19733e}.warning-list li:before{content:'!';font-weight:900;color:#a06c1a}.deep{margin-top:48px}.deep>h2{font:500 2.375rem Georgia,serif;margin:8px 0 16px}details{margin-top:9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.82)}summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 19px;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary b,summary small{display:block}summary b{font-size:0.875rem}summary small{margin-top:3px;color:var(--muted);font-size:0.6875rem}.details-body{padding:16px 19px 20px;border-top:1px solid var(--line)}.metric-detail{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.metric-detail div{padding:12px;border:1px solid var(--line);border-radius:9px}.metric-detail span,.metric-detail b{display:block}.metric-detail span{color:var(--muted);font-size:0.6875rem}.metric-detail b{margin-top:4px;font-size:0.75rem}.history{margin-top:15px;overflow:auto;border:1px solid var(--line);border-radius:10px}.history table{min-width:650px}.muted-copy{margin:15px 0 0;color:var(--muted);font-size:0.6875rem;line-height:1.5}.limitations{padding-left:19px;list-style:disc}
@media(max-width:900px){.hero,.inbox-layout,.create-layout,.api-box,.decision,.insights{grid-template-columns:1fr}.hero{gap:30px;padding-top:35px}.metrics,.review-metrics{grid-template-columns:repeat(2,1fr)}.header{height:78px}.outcome{width:auto}.verify-card{padding:40px}.metric-detail{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.shell,.verify-head,.verify-shell{width:min(100% - 28px,1180px)}.header nav{gap:0}.tab{padding:8px 6px;font-size:0.7188rem}.hero h1{font-size:3rem}.metrics,.review-metrics,.complete-grid,.metric-detail{grid-template-columns:1fr}.heading-row{align-items:start;flex-direction:column;margin-top:40px}.verify-head{height:75px}.secure{display:none}.progress{grid-template-columns:1fr;gap:8px}.verify-card{padding:30px 22px;min-height:440px}.verify-copy h1,.complete h1{font-size:2.375rem}.verify-actions{flex-direction:column}.verify-actions button{width:100%}.decision h2{font-size:1.875rem}.decision{padding:20px}}

/* Bankens callback */.callback-shell{width:min(720px,calc(100% - 48px));margin:120px auto}.callback-card{padding:55px;text-align:center;background:rgba(255,255,255,.84);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.callback-card h1{font:500 2.75rem/1 Georgia,serif;letter-spacing:-.05em;margin:12px 0}.callback-card p:not(.eyebrow){max-width:520px;margin:0 auto;color:var(--muted);font-size:0.875rem;line-height:1.6}.spinner{width:36px;height:36px;margin:0 auto 20px;border:4px solid #dcebe0;border-top-color:var(--forest);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.callback-code{width:100%;min-height:90px;margin-top:18px;padding:12px;border:1px solid var(--line);border-radius:10px;font:0.75rem ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}@media(max-width:560px){.callback-shell{margin:75px auto}.callback-card{padding:35px 22px}.callback-card h1{font-size:2.25rem}}

/* === Review v1.2: tvåkolumnslayout === */
.review-top{padding:35px 0 22px;border-bottom:1px solid var(--line)}
.review-top h1{font:500 clamp(2.5rem,5vw,3.875rem)/.96 Georgia,serif;letter-spacing:-.05em;margin:10px 0 14px}
.review-headline{max-width:820px;margin:0;color:#54635a;font-size:0.9375rem;line-height:1.6}
.review-split{display:grid;grid-template-columns:1.55fr .9fr;gap:26px;align-items:start;margin-top:26px}
.review-left .left-title{font:500 1.875rem Georgia,serif;letter-spacing:-.03em;margin:8px 0 18px}

/* Stora, lättavlästa nyckeltalskort */
.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.kpi{padding:22px 22px 20px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.85);box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#d7e2da}
.kpi.good:before{background:#3f9c63}
.kpi.bad:before{background:#dba23a}
.kpi-label{display:block;color:#56685d;font-size:0.6875rem;font-weight:850;letter-spacing:.04em}
.kpi-value{display:block;margin:10px 0 7px;font:500 clamp(1.875rem,3.4vw,2.625rem)/1 Georgia,serif;letter-spacing:-.04em;color:var(--ink)}
.kpi-value .per{font:800 0.875rem Inter,system-ui,sans-serif;letter-spacing:-.01em;color:#5f6d63;margin-left:5px}
.kpi.good .kpi-value{color:#1f6b40}
.kpi.bad .kpi-value{color:#9a6a1c}
.kpi-sub{display:block;color:var(--muted);font-size:0.6875rem;line-height:1.45}

/* Höger kolumn: score + utfall + kreditpuls. Ligger fast i flödet (rör sig inte
   separat vid skroll), så att kreditpuls-rutan under den gula rutan står stilla. */
.score-rail{display:grid;gap:14px;align-self:start}
.score-block{padding:26px;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);text-align:left}
.score-block.green{background:#eaf8ed;border-color:#cfe7d4}
.score-block.amber{background:#fff9ec;border-color:#efdcb5}
.score-eyebrow{display:block;color:#4d6657;font-size:0.7188rem;font-weight:900;letter-spacing:.1em}
.score-big{display:block;margin:8px 0 4px;font:500 4.875rem/.9 Georgia,serif;letter-spacing:-.07em;color:var(--ink)}
.score-big small{font:800 1.25rem Inter,system-ui,sans-serif;color:#5f6d63}
.score-label{display:block;font-size:0.9375rem;font-weight:850;color:#2c3f34}
.score-ratio{display:inline-block;margin-top:10px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.7);font-size:0.6875rem;font-weight:800;color:#3d5748}
.score-meaning{margin:14px 0 0;color:#566459;font-size:0.7188rem;line-height:1.55}
.outcome-block{padding:20px;border-radius:16px;border:1px solid var(--line)}
.outcome-block.green{background:#e9f6eb;border-color:#cfe7d4}
.outcome-block.amber{background:var(--warn);border-color:#efdcb5}
.outcome-block .outcome-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#d8ecdd;color:#216741;font-size:1.1875rem;font-weight:800}
.outcome-block.amber .outcome-icon{background:#ffebba;color:#7d5716}
.outcome-block b{display:block;margin:12px 0 6px;font-size:0.9375rem;color:#2c3f34}
.outcome-block p{margin:0;color:#586559;font-size:0.75rem;line-height:1.5}

/* Stresstest-tabellens rader och taggar */
.history table tr.risk td{background:#fff6ee}
.history table tr.ok td{background:#f3faf4}
.tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:0.7188rem;font-weight:850}
.tag.ok{background:#e0f1e4;color:#1d7a42}
.tag.risk{background:#fde8cf;color:#7d5716}

/* Rättighetsblock */
.details-body.rights h4{margin:16px 0 5px;font-size:0.75rem;color:#2c3f34}
.details-body.rights h4:first-child{margin-top:0}
.rights-disclaimer{margin:16px 0 0;padding:11px 13px;border-radius:10px;background:#f4f7f4;color:#5d6a60;font-size:0.6875rem;line-height:1.5;font-style:italic}

@media(max-width:980px){
  .review-split{grid-template-columns:1fr}
  .score-rail{position:static;order:-1}
}
@media(max-width:620px){
  .kpi-grid{grid-template-columns:1fr}
  .review-top h1{font-size:2.375rem}
  .score-big{font-size:4rem}
}

/* === Review: fasta rutor med expandera-ikon som öppnar en modal === */

/* Score-panelen kvar sticky, i linje med första KPI-kortet. */
@media(min-width:981px){
  .score-rail{overflow:visible;margin-top:78px}
}
@media(max-width:980px){
  .score-rail{margin-top:0}
}

/* Kort med detaljinfo behöver plats för ikonen uppe till höger. */
.kpi.has-pop,
.score-block.has-pop,
.outcome-block.has-pop,
.insights article.has-pop{position:relative}

/* Själva expandera-ikonen. Diskret men tydlig, uppe i högra hörnet. */
.detail-toggle{position:absolute;top:14px;right:14px;z-index:6;
  display:grid;place-items:center;width:30px;height:30px;
  border:1px solid #cfdcd2;border-radius:9px;background:rgba(255,255,255,.9);
  color:#3a5545;cursor:pointer;padding:0;
  transition:background .15s ease,border-color .15s ease,transform .15s ease}
.detail-toggle:hover{background:#eef5ef;border-color:#a9c7b3;transform:translateY(-1px)}
.detail-toggle:focus-visible{outline:2px solid #4f9a6a;outline-offset:2px}
.detail-toggle svg{width:15px;height:15px;display:block}
/* På gröna/gula rutor: låt ikonen smälta in mot deras bakgrund. */
.score-block .detail-toggle,.outcome-block .detail-toggle{background:rgba(255,255,255,.75)}

/* Detaljdatan renderas dold i kortet och läses av modalen vid klick. */
.detail-data{display:none}
.kpi-pop-note{margin:10px 0 0;color:#54635a;font-size:0.8438rem;line-height:1.6}
.kpi-pop-rows{margin-top:16px;display:grid;gap:10px}
.kpi-pop-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  padding-bottom:10px;border-bottom:1px solid #eef3ee}
.kpi-pop-row:last-child{border-bottom:0;padding-bottom:0}
.kpi-pop-row span{color:#647268;font-size:0.8125rem}
.kpi-pop-row b{color:var(--ink);font-size:0.9375rem;font-weight:800;white-space:nowrap}
.rail-pop-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:11px}
.rail-pop-list li{position:relative;padding-left:22px;color:#516158;font-size:0.8438rem;line-height:1.5}
.rail-pop-list li.ok:before{content:'\2713';position:absolute;left:0;color:#19733e;font-weight:900}
.rail-pop-list li.risk:before{content:'!';position:absolute;left:0;color:#a06c1a;font-weight:900}

/* Ett stort tal överst i modalen som visar rutans huvudvärde. */
.detail-hero{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding:16px 18px;margin:0 0 4px;border-radius:14px;background:#eef6f0;border:1px solid #d3e7d8}
.detail-hero b{font:500 2.5rem/1 Georgia,serif;letter-spacing:-.04em;color:var(--ink)}
.detail-hero span{color:#54635a;font-size:0.8125rem;font-weight:750}

/* === Rättighetsknapp + fullskärmsmodal på verify-sidan === */
.rights-link{display:inline-flex;align-items:center;gap:8px;margin:16px 0 0;
  padding:11px 15px;border:1px solid #cfdcd2;border-radius:10px;background:#fff;
  color:#2c5240;font-weight:800;font-size:0.7813rem}
.rights-link:hover{background:#f0f6f1;border-color:#a9c7b3}

.rights-overlay{position:fixed;inset:0;z-index:1000;display:none;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(17,40,28,.55);backdrop-filter:blur(2px)}
.rights-overlay.show{display:flex}
body.rights-open{overflow:hidden}

.rights-modal{width:min(920px,96vw);max-height:min(88vh,940px);
  display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;
  box-shadow:0 40px 100px rgba(12,40,26,.4);animation:rightsIn .18s ease}
/* Detaljmodalen (review) sizas efter innehållet – smalare och lägre. */
#detailOverlay .rights-modal{width:min(680px,94vw)}
@keyframes rightsIn{from{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}
.rights-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:22px 26px;border-bottom:1px solid var(--line);background:#f7faf6}
.rights-modal-head h2{margin:5px 0 0;font:500 1.5625rem Georgia,serif;letter-spacing:-.02em;color:var(--ink)}
.rights-close{display:grid;place-items:center;width:38px;height:38px;flex:none;
  border:1px solid #cfdcd2;border-radius:10px;background:#fff;color:#3a5545;font-size:0.9375rem;font-weight:800}
.rights-close:hover{background:#eef4ef;border-color:#a9c7b3}
.rights-modal-body{padding:24px 30px 34px;overflow-y:auto;color:#3f4f45;font-size:0.875rem;line-height:1.6}
.rights-modal-body .rights-lead{font-size:0.9375rem;color:#33463b;background:#eef6f0;
  border:1px solid #d3e7d8;border-radius:12px;padding:15px 17px;margin:0 0 20px}
.rights-modal-body h3{margin:22px 0 7px;font-size:0.9375rem;color:#1f5a38}
.rights-modal-body p{margin:7px 0}
.rights-list{margin:9px 0 0;padding-left:20px;display:grid;gap:7px}
.rights-list li{line-height:1.5}
.rights-loading{color:var(--muted)}
.rights-modal-body .rights-disclaimer{margin-top:24px;padding:13px 15px;border-radius:10px;
  background:#f4f7f4;color:#5d6a60;font-size:0.75rem;font-style:italic;line-height:1.55}

@media(max-width:560px){
  .rights-overlay{padding:0}
  .rights-modal{width:100vw;height:100vh;border-radius:0}
  .rights-modal-body{padding:20px 20px 30px}
}

/* === Inbox: kompakt detaljruta + visa-fler-knapp === */
/* Detaljrutan ska inte sträckas ut lika hög som tabellen – håll den kompakt uppe. */
.inbox-layout{align-items:start}
.detail-card{min-height:0}
.detail-info h3{margin:5px 0;font-size:1.25rem}
.detail-info .detail-muted{margin:0 0 14px}
.detail-info .detail-grid{grid-template-columns:1fr 1fr}
.detail-info button{margin-top:6px}

/* "Visa alla" / "Visa färre" under tabellen. */
.show-more{width:100%;padding:13px;border:0;border-top:1px solid var(--line);
  background:#f4f8f4;color:#2c5240;font-weight:800;font-size:0.75rem}
.show-more:hover{background:#eaf3eb}

/* === Hero-exempel: färg efter score, matchar analyssidan === */
.hero-score.green{background:#eaf8ed;border:1px solid #cfe7d4}
.hero-score.amber{background:#fff9ec;border:1px solid #efdcb5}
.hero-score.amber strong{color:#8a6414}

/* === Bantad vy (analysunderlag raderat efter 14 dagar) === */
.minimised-banner{display:flex;gap:14px;align-items:flex-start;margin:22px 0 8px;
  padding:16px 18px;border:1px solid #e2d9c3;border-radius:14px;background:#fbf7ec}
.minimised-banner .mb-icon{font-size:1.375rem;line-height:1}
.minimised-banner b{display:block;color:#6f5a1e;font-size:0.875rem;margin-bottom:3px}
.minimised-banner p{margin:0;color:#7a6a4d;font-size:0.7813rem;line-height:1.55}
.decision-card{margin-top:14px;border:1px solid var(--line);border-radius:14px;
  background:rgba(255,255,255,.85);overflow:hidden}
.decision-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  padding:14px 18px;border-bottom:1px solid #eef3ee}
.decision-row:last-child{border-bottom:0}
.decision-row span{color:#647268;font-size:0.7813rem}
.decision-row b{color:var(--ink);font-size:0.875rem;font-weight:800;text-align:right}

/* === Profilmeny i headern === */
.header{position:relative}
.profile-area{position:relative;display:flex;align-items:center;gap:10px}
.login-link{color:#2c5240;font-weight:800;font-size:0.8125rem;text-decoration:none;padding:9px 15px;border:1px solid #cfdcd2;border-radius:10px}
.login-link:hover{background:#eef5ef}
.profile-btn{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:30px;background:#fff;cursor:pointer}
.profile-btn:hover{border-color:#a9c7b3;background:#f6faf6}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1f5a38;color:#fff;font-size:0.75rem;font-weight:800}
.profile-meta{display:flex;flex-direction:column;line-height:1.2;text-align:left}
.profile-meta b{font-size:0.7813rem;color:var(--ink)}
.profile-meta small{font-size:0.75rem;color:var(--muted)}
.profile-menu{position:absolute;top:calc(100% + 8px);right:0;width:240px;z-index:300;
  background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(20,55,36,.18);overflow:hidden}
.pm-head{padding:15px 16px 12px}
.pm-head b{display:block;font-size:0.875rem;color:var(--ink)}
.pm-head small{display:block;color:var(--muted);font-size:0.7188rem;margin-top:2px}
.pm-company{padding:10px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#4d6657;font-size:0.7188rem;font-weight:700;background:#f7faf6}
.pm-item{width:100%;text-align:left;padding:13px 16px;border:0;background:#fff;color:#a23b3b;font-weight:800;font-size:0.8125rem;cursor:pointer}
.pm-item:hover{background:#fbf1f1}

/* === Auth-sidor (login/join) === */
.auth-shell{max-width:460px;margin:0 auto;padding:50px 20px 70px}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 50px rgba(20,55,36,.08)}
.auth-tabs{display:flex;gap:6px;margin-bottom:22px;background:#f0f5f0;border-radius:12px;padding:4px}
.auth-tab{flex:1;padding:10px;border:0;border-radius:9px;background:transparent;color:#54655b;font-weight:800;font-size:0.7813rem;cursor:pointer}
.auth-tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 6px rgba(20,55,36,.08)}
.auth-pane h1{font-size:1.6875rem;margin:0 0 4px}
.auth-sub{color:var(--muted);font-size:0.8125rem;margin:0 0 20px;line-height:1.5}
.auth-pane label{display:block;margin-bottom:14px;font-size:0.7813rem;font-weight:800;color:#3c4c42}
.auth-pane input{width:100%;margin-top:6px;padding:12px 13px;border:1px solid #cfdcd2;border-radius:10px;font-size:0.875rem;font-weight:500;box-sizing:border-box}
.auth-pane input:focus{outline:2px solid #4f9a6a;outline-offset:1px;border-color:transparent}
.primary.full{width:100%;justify-content:center}
.auth-hint{margin-top:16px;padding:11px 13px;border-radius:10px;background:#f4f8f4;color:#55645b;font-size:0.7188rem;line-height:1.5}

/* === Företags- och adminvy === */
.company-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.stat-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.85)}
.stat-card h3{margin:6px 0 2px;font-size:1.125rem}
.stat-card .big{display:block;font:500 2.125rem/1 Georgia,serif;color:var(--ink);margin:6px 0 2px}
.stat-card small{color:var(--muted);font-size:0.6875rem}
.invite-box{display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:18px 20px;margin-bottom:16px;border:1px solid #cfe0d4;border-radius:14px;background:#f2f8f3}
.invite-box b{font-size:0.875rem}
.invite-box p{margin:3px 0 0;font-size:0.75rem}
.table-card{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;margin-top:8px}
.table-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}
.table-card table{width:100%;border-collapse:collapse}
.table-card th{text-align:left;padding:11px 18px;font-size:0.7188rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.table-card td{padding:13px 18px;border-bottom:1px solid #eef3ee;font-size:0.8125rem;vertical-align:top}
.table-card tr:last-child td{border-bottom:0}
.table-card td b{display:block;color:var(--ink)}
.table-card td small{display:block;color:var(--muted);font-size:0.6875rem;margin-top:2px}
@media(max-width:820px){.company-grid{grid-template-columns:1fr 1fr}.invite-box{flex-direction:column;align-items:flex-start}}

/* === Review-åtgärder (beslutsmotivering, övervakning) === */
.review-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.review-actions .secondary{font-size:0.8125rem}
.mon-scenarios{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.chip{padding:7px 13px;border:1px solid #bcd3c3;border-radius:20px;background:#fff;color:#2c5240;font-weight:700;font-size:0.75rem;cursor:pointer}
.chip:hover{background:#eaf5ec}
.chip:disabled{opacity:.5;cursor:wait}
.mon-status{display:flex;flex-direction:column;padding:12px 15px;border-radius:12px;margin-bottom:14px}
.mon-status b{font-size:0.9375rem}.mon-status small{font-size:0.6875rem;opacity:.8}
.mon-status.bad{background:#fbecec;border:1px solid #e6c3c3;color:#8a2f2f}
.mon-status.warn{background:#fbf6e9;border:1px solid #e6d8b3;color:#7a5c1e}
.mon-status.good{background:#eaf7ee;border:1px solid #c6e4cf;color:#276b41}
.mon-status.neutral{background:#eef2ef;border:1px solid #d5ded7;color:#48584e}
.mon-deltas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.mon-deltas>div{padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fff}
.mon-deltas span{display:block;font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.mon-deltas b{font-size:0.875rem}
.mon-deltas .up{color:#276b41}.mon-deltas .down{color:#b3402f}
.mon-flags{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.mon-flags li{padding:10px 13px;border-radius:10px;font-size:0.8125rem;border-left:3px solid}
.mon-flags li.bad{background:#fbecec;border-color:#c0392b}
.mon-flags li.warn{background:#fbf6e9;border-color:#c99a1e}
.mon-flags li.neutral{background:#eef2ef;border-color:#9aa}
.mon-actions{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:0.8125rem;color:#3a4a40}
@media(max-width:820px){.mon-deltas{grid-template-columns:1fr 1fr}}

/* Återanvändbar modal */
.rs-modal-overlay{position:fixed;inset:0;background:rgba(20,40,28,.55);display:grid;place-items:center;z-index:1000;padding:20px}
.rs-modal-overlay[hidden]{display:none}
.rs-modal{background:#fff;border-radius:18px;width:min(680px,96vw);max-height:88vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.rs-modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.rs-modal-head b{font-size:1.0625rem}
.rs-modal-close{border:1px solid var(--line);background:#fff;border-radius:9px;width:34px;height:34px;cursor:pointer;font-size:0.9375rem}
.rs-modal-body{padding:22px 24px}
.rs-modal-body h4{margin:18px 0 8px;font-size:0.8125rem;color:#2c5240;text-transform:uppercase;letter-spacing:.05em}
.notice-hero{padding:16px 18px;border-radius:13px;background:#eef2ef;margin-bottom:8px}
.notice-hero.good{background:#eaf7ee;border:1px solid #c6e4cf}
.notice-hero.warn{background:#fbf6e9;border:1px solid #e6d8b3}
.notice-hero b{font-size:1rem;display:block;margin-bottom:4px}
.notice-hero p{margin:0;font-size:0.8125rem;color:#3a4a40}
.notice-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:0.8438rem}
.notice-list.good li{color:#276b41}.notice-list.warn li{color:#7a5c1e}
.notice-disclaimer{margin-top:18px;padding:12px 14px;background:#f4f6f4;border-radius:10px;font-size:0.7188rem;color:#5a6a60;line-height:1.5}

/* === Bevakningsöversikt === */
.mon-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:0.6875rem;font-weight:800}
.mon-badge.bad{background:#fbecec;color:#8a2f2f}
.mon-badge.warn{background:#fbf6e9;color:#7a5c1e}
.mon-badge.good{background:#eaf7ee;color:#276b41}
.mon-badge.neutral{background:#eef2ef;color:#48584e}
.mini-link{color:#2c5240;font-weight:700;font-size:0.7813rem;text-decoration:none}
.mini-link:hover{text-decoration:underline}

/* === Kompakt Kreditpuls-kort (i höger rail) + stor modal === */
.mon-card-slot{margin:0}
.mon-card{width:100%;box-sizing:border-box;cursor:pointer;position:relative}
.mon-card:hover{border-color:#a9c7b3}
.mon-card-status{font-size:1.375rem}
.mon-card-status.bad{color:#8a2f2f}
.mon-card-status.warn{color:#7a5c1e}
.mon-card-status.good{color:#276b41}
.mon-card-status.neutral{color:var(--ink)}
/* Den stora övervakningsmodalen: bredare och högre för att rymma all detalj */
.rights-modal.mon-modal{width:min(860px,96vw);max-height:90vh}

/* === Beslutsmotivering: åtgärder i modal === */
.notice-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.notice-actions .secondary{font-size:0.7813rem}
.notice-actions-hint{margin:0 0 16px;font-size:0.7188rem;color:var(--muted)}
.notice-flash{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);
  background:#173d28;color:#fff;padding:12px 20px;border-radius:12px;font-size:0.8125rem;font-weight:600;
  box-shadow:0 12px 40px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:.25s;z-index:2000;max-width:90vw;text-align:center}
.notice-flash.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* === Fristående beslutsmotiverings-sida (utskrift/PDF) === */
.notice-page{background:#eef2ee}
.notice-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 30px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.notice-toolbar-actions{display:flex;gap:9px;flex-wrap:wrap}
.notice-sheet{max-width:800px;margin:30px auto 60px;background:#fff;padding:48px 56px;
  border-radius:6px;box-shadow:0 10px 40px rgba(20,55,36,.10)}
.notice-sheet-head{display:flex;gap:16px;align-items:flex-start;border-bottom:2px solid #173d28;padding-bottom:20px;margin-bottom:24px}
.notice-sheet-head .brand-mark{width:44px;height:44px;font-size:1.375rem}
.notice-sheet-head h1{margin:2px 0 4px;font-size:1.75rem}
.notice-ref{color:var(--muted);font-size:0.75rem;margin:0}
.notice-sheet h3{font-size:0.8125rem;text-transform:uppercase;letter-spacing:.05em;color:#2c5240;margin:22px 0 9px}
.notice-para{font-size:0.8438rem;line-height:1.6;color:#3a4a40;margin:0}
.notice-page .notice-hero{padding:18px 20px;border-radius:12px;background:#eef2ef;margin-bottom:6px}
.notice-page .notice-hero.good{background:#eaf7ee;border:1px solid #c6e4cf}
.notice-page .notice-hero.warn{background:#fbf6e9;border:1px solid #e6d8b3}
.notice-page .notice-hero b{font-size:1.0625rem;display:block;margin-bottom:4px}
.notice-page .notice-hero p{margin:0;font-size:0.8438rem;color:#3a4a40}

@media print {
  .no-print{display:none !important}
  .notice-page{background:#fff}
  .notice-sheet{box-shadow:none;margin:0;max-width:100%;padding:0 10px}
  @page{margin:18mm}
}

/* === Admin: affärsöversikt === */
.admin-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}
.admin-kpis .stat-card.accent{background:#eaf7ee;border-color:#c6e4cf}
.admin-kpis .stat-card .big{font-size:1.625rem}
.admin-table td small{display:block;color:var(--muted);font-size:0.6875rem;margin-top:2px}
.admin-table .margin-pos{color:#276b41}
.admin-foot{margin-top:14px;font-size:0.75rem}
@media(max-width:1100px){.admin-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.admin-kpis{grid-template-columns:1fr 1fr}}

/* Priseditor */
.price-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line)}
.price-svc b{display:block;font-size:0.875rem}
.price-svc small{color:var(--muted);font-size:0.7188rem}
.price-row label{display:flex;align-items:center;gap:6px;font-size:0.6875rem;font-weight:800;color:#54655b;text-transform:uppercase}
.price-row input{width:82px;padding:9px 10px;border:1px solid #cfdcd2;border-radius:9px;font-size:0.875rem;font-weight:600;text-align:right}
.price-row input:focus{outline:2px solid #4f9a6a;outline-offset:1px;border-color:transparent}
.price-row label span{font-weight:600;color:var(--muted);text-transform:none;font-size:0.75rem}
.price-preview{display:flex;gap:14px;margin:18px 0 6px;padding:14px 16px;background:#f5f9f5;border-radius:12px}
.price-preview>div{flex:1}
.price-preview span{display:block;font-size:0.6875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.price-preview b{font-size:1.0625rem}
.price-preview .pp-margin b{color:#276b41}

/* Dölj marknadsförings-vyn helt för admin (extra säkerhet) */
body.is-admin #overview,body.is-admin #create{display:none !important}

/* === Avatarer och användarstatistik === */
.avatar-img{background-size:cover;background-position:center;color:transparent}
.pm-head{display:flex;align-items:center;gap:12px}
.pm-head .avatar{width:40px;height:40px;flex:none}
.user-cell{display:flex;align-items:center;gap:10px}
.user-cell .avatar{width:34px;height:34px;flex:none;font-size:0.75rem}
/* Användarrader i admin-modal */
.user-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.user-row:last-child{border-bottom:0}
.user-row .avatar{width:40px;height:40px;flex:none}
.user-meta{flex:1;min-width:0}
.user-meta b{display:block;font-size:0.875rem}
.user-meta small{color:var(--muted);font-size:0.7188rem}
.user-stats{display:flex;gap:18px}
.user-stats>div{text-align:right}
.user-stats span{display:block;font-size:0.7188rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.user-stats b{font-size:0.9375rem}

/* === Demobank-steg i verifieringen === */
.demo-bank-box{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #cfe0d4;border-radius:14px;background:#f6faf6;margin:6px 0 4px}
.demo-bank-logo{width:46px;height:46px;border-radius:12px;background:#eaf3ec;display:grid;place-items:center;font-size:1.5rem;flex:none}
.demo-bank-box b{display:block;font-size:0.9375rem}
.demo-bank-box span{font-size:0.75rem;color:var(--muted)}

/* === Landningssida (utloggad) === */
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.eyebrow.center,h2.center{text-align:center}
.land-section{padding:56px 0;border-top:1px solid var(--line)}
.land-section h2{font-size:1.875rem;margin:6px 0 0}
.land-section h2.center{margin-bottom:36px}
.land-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.land-steps article{padding:26px;border:1px solid var(--line);border-radius:16px;background:#fff}
.land-num{width:38px;height:38px;border-radius:11px;background:#173d28;color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.0625rem;margin-bottom:14px}
.land-steps b{display:block;font-size:1rem;margin-bottom:7px}
.land-steps p{margin:0;font-size:0.8438rem;color:#4a5a50;line-height:1.6}
.land-example-card{padding:30px;border:1px solid #cfe0d4;border-radius:18px;background:#f6faf6}
.land-example-card h3{margin:6px 0 10px;font-size:1.3125rem}
.land-example-card p{font-size:0.8438rem;color:#4a5a50;line-height:1.6;margin:0 0 20px}
.land-cta{text-align:center;padding:60px 0 20px}
.land-cta h2{font-size:1.75rem;margin:0 0 8px}
.land-cta p{color:var(--muted);margin:0 0 22px}
.primary.full{display:block;text-align:center;width:100%;box-sizing:border-box}
@media(max-width:820px){.land-steps{grid-template-columns:1fr}}

/* === Exempelanalys-väljare === */
.example-modal{max-width:820px;width:calc(100% - 40px)}
.example-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.example-choice{display:block;padding:20px;border-radius:14px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.example-choice:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.example-choice .ex-score{display:block;font:500 2.5rem Georgia,serif;letter-spacing:-.05em;line-height:1}
.example-choice .ex-score small{font:800 0.875rem Inter,system-ui,sans-serif}
.example-choice b{display:block;margin:10px 0 5px;font-size:0.9375rem}
.example-choice small{display:block;color:var(--muted);font-size:0.75rem;line-height:1.45;min-height:52px}
.ex-tag{display:inline-block;margin-top:12px;padding:4px 10px;border-radius:999px;font-size:0.7188rem;font-weight:800}
.example-choice.green{border-color:#c6e4cf}.example-choice.green .ex-score{color:#1d7a42}.example-choice.green .ex-tag{background:#e5f4e7;color:#1d7a42}
.example-choice.amber{border-color:#ecd9ac}.example-choice.amber .ex-score{color:#7d5716}.example-choice.amber .ex-tag{background:#fff2db;color:#7d5716}
.example-choice.red{border-color:#e6c3bf}.example-choice.red .ex-score{color:#a4453d}.example-choice.red .ex-tag{background:#f7e3e1;color:#a4453d}
@media(max-width:720px){.example-grid{grid-template-columns:1fr}.example-choice small{min-height:0}}

/* === Rött utfall (svag kapacitet, låg score) === */
.score-block.red{background:#fdeeed;border-color:#eecbc7}
.outcome-block.red{background:#fdeeed;border-color:#eecbc7}
.outcome-block.red .outcome-icon{background:#f6d4d0;color:#a4453d}
.decision.red{background:#fdeeed;border-color:#eecbc7}
.outcome.red{background:#fdeeed}
.outcome.red .outcome-icon{background:#f6d4d0;color:#a4453d}

/* Anslutna banker i kundflödet. Listan finns för att kunden ska kunna se att
   den bank hen just anslutit faktiskt kom med innan hen väljer att lägga till
   fler eller slutföra. */
.bank-list { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 8px; }
.bank-list li { display: flex; align-items: center; gap: 10px; padding: 12px 14px;
  border: 1px solid var(--line, #dfe5df); border-radius: 10px; background: #fff; font-weight: 600; }
.check-sm { display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%; background: #e7f2e9; color: #2f6b3d; font-size: 0.75rem; }

/* Kryssruta i ansökningsformuläret: etikett och ruta på samma rad, med
   texten läsbar bredvid i stället för under. */
.checkbox-row { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.checkbox-row input[type="checkbox"] { width: 18px; height: 18px; margin: 0; flex: none; }

/* ============================================================================
   RiskSignal – Knappinteraktioner (tilläggslager)
   ----------------------------------------------------------------------------
   Endast rörelse på knappar vid hover/klick. Inget glastema, inga bakgrunds-
   eller scroll-animationer – sajten ser i övrigt ut precis som originalet.
   Länkas in EFTER /styles.css. Vill du ångra: ta bort <link>-raden.
   Bygger på befintlig token --forest.
   ============================================================================ */

/* Mjuk övergång på de klickbara elementen */
.primary,.secondary,.tab,.login-link,.rights-link,.show-more,.small-btn,.auth-tab{
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

/* Expanderar lite vid hover – trycks in vid klick */
.primary:hover{
  transform:scale(1.04) translateY(-2px);
  box-shadow:0 14px 30px rgba(14,83,50,.32);
}
.secondary:hover,.login-link:hover,.rights-link:hover{
  transform:scale(1.04) translateY(-2px);
  box-shadow:0 12px 26px rgba(20,60,40,.16);
}
.tab:hover{ transform:scale(1.06); }
.show-more:hover,.small-btn:hover{ transform:scale(1.03); }

.primary:active,.secondary:active,.tab:active,
.login-link:active,.rights-link:active,.show-more:active,.small-btn:active{
  transform:scale(.98);
  transition-duration:.06s;
}

/* Tydligt tangentbordsfokus */
.primary:focus-visible,.secondary:focus-visible,.tab:focus-visible,
.login-link:focus-visible,.rights-link:focus-visible,.show-more:focus-visible{
  outline:2px solid var(--forest);
  outline-offset:2px;
}

/* Dämpa rörelsen för den som bett om mindre rörelse */
@media (prefers-reduced-motion: reduce){
  .primary:hover,.secondary:hover,.login-link:hover,.rights-link:hover{ transform:scale(1.01); }
  .tab:hover,.show-more:hover,.small-btn:hover{ transform:none; }
}

/* ============================================================================
   RiskSignal – tillägg steg 1
   ----------------------------------------------------------------------------
   Beslutsloggning, listkontroller (sök/sortering/paginering) och en
   utskriftsvy för PDF. Länkas EFTER /styles.css. Rör inga befintliga regler.
   ============================================================================ */

/* Attributet hidden måste vinna över display-regler nedan. Utan detta blev
   t.ex. notisräknaren (display:grid) och pagineringen (display:flex) synliga
   trots att koden dolde dem. */
[hidden]{ display:none !important; }

/* Röd ton på startsidans exempelruta när poängen är låg – samma färgspråk
   som analyssidan. Grön och gul finns redan i styles.css. */
.hero-score.red{ background:#fdeeed; border:1px solid #eecbc7; }
.hero-score.red strong{ color:#a4453d; }

/* ---------------------------------------------------------------------------
   1. Beslut: liten knapp i högerspalten + kompakt sammanfattning
--------------------------------------------------------------------------- */

/* Knappen sitter ovanför RiskSignal Score, i linje med portföljrutan. */
.decision-trigger{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 12px;
  width:100%; text-align:left; margin:0 0 12px;
  padding:11px 14px; border:1px dashed #c3d3c7; border-radius:12px;
  background:#fbfdfb; cursor:pointer;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s ease, border-color .18s ease;
}
.decision-trigger:hover{ transform:translateY(-1px); border-color:var(--forest); box-shadow:0 8px 18px rgba(20,60,40,.10); }
.decision-trigger:focus-visible{ outline:2px solid var(--forest); outline-offset:2px; }
.dt-label{
  grid-column:1; font-size:0.6875rem; font-weight:850; letter-spacing:.08em; color:var(--muted);
}
.dt-value{ grid-column:1; font-size:0.875rem; font-weight:800; color:var(--ink); }
.dt-value em{
  font-style:normal; font-size:0.7188rem; font-weight:850; color:var(--red);
  padding:1px 6px; border-radius:999px; background:#fdeceb; margin-left:5px;
}
.dt-action{
  grid-column:2; grid-row:1 / span 2; align-self:center;
  font-size:0.7188rem; font-weight:850; color:var(--forest); white-space:nowrap;
}
/* När ett beslut finns blir knappen ifylld och färgad efter utfall. */
.decision-trigger.set{ border-style:solid; background:#fff; }
.decision-trigger.set.good{ border-color:#cfe7d4; background:#f4faf6; }
.decision-trigger.set.warn{ border-color:#efdcb5; background:#fffaf0; }
.decision-trigger.set.bad{  border-color:#eecbc7; background:#fdf4f3; }

/* Sammanfattningen ligger strax ovanför fördjupningen. */
.decision-summary{
  display:flex; align-items:flex-start; gap:14px;
  margin:26px 0 4px; padding:14px 16px;
  background:#fff; border:1px solid var(--line); border-radius:13px;
}
.decision-summary.good{ border-color:#cfe7d4; }
.decision-summary.warn{ border-color:#efdcb5; }
.decision-summary.bad{  border-color:#eecbc7; }
.ds-mark{
  flex:0 0 auto; width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  font-size:0.875rem; font-weight:900; background:#eef2ef; color:var(--muted); margin-top:2px;
}
.decision-summary.good .ds-mark{ background:#e7f4ec; color:#1f6b41; }
.decision-summary.warn .ds-mark{ background:#fbeecd; color:var(--warnink); }
.decision-summary.bad .ds-mark{  background:#fdeceb; color:var(--red); }
.ds-body{ flex:1 1 auto; min-width:0; }
.ds-top{ display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; }
.ds-top b{ font-size:0.9688rem; }
.ds-eyebrow{
  margin-left:auto; font-size:0.6875rem; font-weight:850; letter-spacing:.08em; color:var(--muted);
}
.ds-flag{
  padding:2px 8px; border-radius:999px; font-size:0.7188rem; font-weight:850;
  background:#fdeceb; color:var(--red); border:1px solid #f2cdc9;
}
.ds-meta{ margin:5px 0 0; font-size:0.7188rem; font-weight:650; color:var(--muted); }
.ds-text{ margin:7px 0 0; font-size:0.7813rem; line-height:1.55; }
.ds-text span{
  display:inline-block; min-width:112px; font-size:0.6875rem; font-weight:850;
  letter-spacing:.05em; text-transform:uppercase; color:var(--muted); vertical-align:top;
}

/* Portföljrutan sitter nu direkt under rubriken i vänsterspalten. */
.portfolio-card{ margin:0 0 14px; }

/* Introtext i beslutsformuläret */
.decision-intro{ margin-bottom:6px; }
.decision-intro p{ margin:0 0 10px; font-size:0.8125rem; line-height:1.6; color:#3a4a40; }
.decision-recommendation{
  padding:10px 13px; border-radius:10px; background:var(--soft); border:1px solid var(--line);
}
.decision-recommendation span{
  display:block; font-size:0.7188rem; font-weight:850; letter-spacing:.06em; color:var(--muted);
}
.decision-recommendation b{ display:block; margin-top:3px; font-size:0.875rem; }

/* ---------------------------------------------------------------------------
   2. Beslutsformulär (i modalen)
--------------------------------------------------------------------------- */
.decision-form{ display:flex; flex-direction:column; gap:14px; margin-top:16px; }
.decision-form label{ display:flex; flex-direction:column; gap:6px; font-size:0.75rem; font-weight:800; color:#3a4a40; }
/* display:flex ovan skulle annars slå ut HTML-attributet hidden, så fält som
   ska döljas (villkor, avvikelseskäl) blev alltid synliga. */
.decision-form label[hidden], .decision-deviation[hidden]{ display:none !important; }
/* Fält som blockerar sparandet markeras tydligt vid felaktig ifyllnad. */
.decision-form .invalid textarea,
.decision-form textarea.invalid,
.decision-deviation textarea.invalid{ border-color:var(--red); background:#fffafa; }
.field-count{ font-size:0.75rem; font-weight:700; color:var(--muted); margin-top:-2px; }
.field-count.short{ color:var(--red); }
.decision-form label small{ display:block; margin:-2px 0 2px; font-weight:600; font-size:0.7188rem; line-height:1.45; color:var(--muted); }
.decision-form select,
.decision-form input,
.decision-form textarea{
  width:100%; padding:10px 12px; border:1px solid #cfdcd2; border-radius:10px;
  font:inherit; font-size:0.875rem; font-weight:500; color:var(--ink); background:#fff;
}
.decision-form textarea{ resize:vertical; line-height:1.5; }
.decision-form select:focus,
.decision-form input:focus,
.decision-form textarea:focus{ outline:2px solid var(--forest); outline-offset:1px; border-color:var(--forest); }

.decision-deviation{
  padding:14px 16px; border-radius:12px; background:var(--warn);
  border:1px solid #ecd9ac; display:flex; flex-direction:column; gap:10px;
}
.decision-deviation p{ margin:0; font-size:0.8125rem; line-height:1.55; color:var(--warnink); }
.decision-deviation textarea{
  width:100%; padding:10px 12px; border:1px solid #e0cb9c; border-radius:10px;
  font:inherit; font-size:0.875rem; resize:vertical;
}
.decision-error{
  margin:0; padding:10px 12px; border-radius:10px;
  background:#fdeceb; border:1px solid #f2cdc9; color:var(--red);
  font-size:0.8125rem; font-weight:700;
}
.decision-form-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:4px; }

/* ---------------------------------------------------------------------------
   3. Listkontroller: sök, sortering, paginering
--------------------------------------------------------------------------- */
/* Samma indrag som .table-top (18px) så fälten inte ligger dikt an mot kortets
   kant. Ingen egen överkantslinje – .table-top har redan en underkantslinje. */
.list-controls{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:14px 18px 15px;
  border-bottom:1px solid var(--line);
}
.list-search{
  flex:1 1 200px; min-width:170px; max-width:330px; padding:8px 11px;
  border:1px solid #cfdcd2; border-radius:9px; font:inherit; font-size:0.7813rem; background:#fff;
}
.list-search:focus{ outline:2px solid var(--forest); outline-offset:1px; border-color:var(--forest); }
.list-controls select{
  padding:8px 10px; border:1px solid #cfdcd2; border-radius:9px;
  font:inherit; font-size:0.75rem; font-weight:700; background:#fff; color:#3a4a40;
}
.list-controls select:first-of-type{ margin-left:auto; }

/* Luft mellan sista textraden och knappen längst ned i detaljpanelen –
   texten satt tidigare nästan direkt an mot "Öppna analys". */
.detail-card .primary.full,
.detail-card .secondary.full{ margin-top:16px; }
.detail-card .detail-decision{ margin-bottom:0; }
.detail-card .detail-grid{ margin-bottom:14px; }

.pager{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:14px 18px; border-top:1px solid var(--line); flex-wrap:wrap;
}
.pager-info{ font-size:0.75rem; color:var(--muted); font-weight:700; }
.pager-buttons{ display:flex; align-items:center; gap:8px; }
.pager-buttons button{
  padding:7px 13px; border:1px solid #cfdcd2; border-radius:9px;
  background:#fff; font-size:0.75rem; font-weight:800; color:#355345;
}
.pager-buttons button:disabled{ opacity:.4; cursor:default; }
.pager-page{ font-size:0.75rem; font-weight:800; color:#3a4a40; min-width:78px; text-align:center; }

/* Beslutsmarkering i sessionslistan */
.decision-pill{
  display:inline-block; margin-top:4px; padding:2px 8px; border-radius:999px;
  font-size:0.7188rem; font-weight:850; letter-spacing:.02em; white-space:nowrap;
}
.decision-pill.good{ background:#e7f4ec; color:#1f6b41; }
.decision-pill.warn{ background:var(--warn); color:var(--warnink); }
.decision-pill.bad{ background:#fdeceb; color:var(--red); }
.decision-pill.none{ background:#eef2ef; color:var(--muted); }
.decision-pill .dev{ font-weight:900; }


/* ---------------------------------------------------------------------------
   5. Notiser (Kreditpuls)
--------------------------------------------------------------------------- */
.notif-wrap{ position:relative; }
.notif-btn{
  position:relative; display:grid; place-items:center; width:40px; height:40px;
  border:1px solid #cfdcd2; border-radius:11px; background:#fff; color:#3a5545;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s ease;
}
.notif-btn svg{ width:19px; height:19px; }
.notif-btn:hover{ transform:scale(1.05); box-shadow:0 8px 18px rgba(20,60,40,.14); }
.notif-btn:focus-visible{ outline:2px solid var(--forest); outline-offset:2px; }
.notif-badge{
  position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 5px;
  display:grid; place-items:center; border-radius:999px;
  background:var(--red); color:#fff; font-size:0.7188rem; font-weight:900; border:2px solid #fff;
}
.notif-panel{
  position:absolute; right:0; top:calc(100% + 8px); z-index:300;
  width:min(360px, calc(100vw - 32px));
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 22px 50px rgba(20,60,40,.18); overflow:hidden;
}
.notif-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:13px 15px; border-bottom:1px solid var(--line); background:#fbfdfb;
}
.notif-head b{ font-size:0.875rem; }
.notif-readall{
  border:0; background:transparent; color:var(--forest);
  font-size:0.7188rem; font-weight:800; padding:2px 4px; border-radius:6px;
}
.notif-readall:hover{ background:var(--soft); }
.notif-list{ max-height:min(60vh, 420px); overflow-y:auto; }
.notif-item{
  display:block; width:100%; text-align:left; border:0; background:#fff;
  padding:12px 15px 12px 18px; border-bottom:1px solid #eef3ef;
  border-left:3px solid transparent; cursor:pointer;
}
.notif-item:hover{ background:#f7faf7; }
.notif-item.unread{ background:#f4faf6; }
.notif-item.unread .notif-item-title::after{
  content:""; display:inline-block; width:7px; height:7px; margin-left:7px;
  border-radius:50%; background:var(--forest); vertical-align:middle;
}
.notif-item.sev-high{ border-left-color:var(--red); }
.notif-item.sev-medium{ border-left-color:#c79a2e; }
.notif-item-title{ display:block; font-size:0.8125rem; font-weight:800; color:var(--ink); }
.notif-item-body{ display:block; margin-top:3px; font-size:0.75rem; line-height:1.5; color:#4a5a50; }
.notif-item-time{ display:block; margin-top:5px; font-size:0.75rem; font-weight:700; color:var(--muted); }
.notif-empty{ margin:0; padding:22px 16px; text-align:center; font-size:0.7813rem; color:var(--muted); }

/* ---------------------------------------------------------------------------
   6. Portföljkontext på analyssidan
--------------------------------------------------------------------------- */
.portfolio-card{
  display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
  padding:13px 16px;
  background:#fff; border:1px solid var(--line); border-left:3px solid #9bb9a5;
  border-radius:13px;
}
.portfolio-card.good{ border-left-color:#2c7a4b; }
.portfolio-card.low{ border-left-color:#c79a2e; }
.portfolio-main .eyebrow{ margin:0; }
.portfolio-main b{ display:block; margin:3px 0 2px; font-size:1rem; }
.portfolio-main span{ font-size:0.75rem; color:var(--muted); }
.portfolio-scale{ flex:1 1 220px; min-width:190px; max-width:320px; }
.portfolio-track{
  position:relative; height:7px; border-radius:999px;
  background:linear-gradient(90deg,#f0d2ce,#f2e4c2,#cfe8d8);
}
.portfolio-dot{
  position:absolute; top:50%; width:14px; height:14px; border-radius:50%;
  background:var(--forest); border:2.5px solid #fff;
  box-shadow:0 2px 6px rgba(20,60,40,.3); transform:translate(-50%,-50%);
}
.portfolio-ends{
  display:flex; justify-content:space-between; margin-top:6px;
  font-size:0.75rem; font-weight:750; color:var(--muted);
}


/* ---------------------------------------------------------------------------
   7. Färgton i fördjupningsmodalen
   Rutan ska spegla utfallet – ett score på 40/100 får inte visas i grön ruta.
   Standard är nu neutral; grön/gul/röd sätts utifrån kortet som öppnades.
--------------------------------------------------------------------------- */
.detail-hero{ background:#f2f5f3; border-color:#dde5df; }
.detail-hero b{ color:var(--ink); }

.detail-hero.good{ background:#eaf8ed; border-color:#cfe7d4; }
.detail-hero.good b{ color:#1f6b40; }
.detail-hero.warn{ background:#fff9ec; border-color:#efdcb5; }
.detail-hero.warn b{ color:#8a6318; }
.detail-hero.bad{  background:#fdeeed; border-color:#eecbc7; }
.detail-hero.bad b{ color:var(--red); }

/* Diskret accent i modalens kant så tonen syns även utan hero-ruta */
.rights-modal.tone-good{ border-top:3px solid #3f9c63; }
.rights-modal.tone-warn{ border-top:3px solid #dba23a; }
.rights-modal.tone-bad{  border-top:3px solid var(--red); }



/* ---------------------------------------------------------------------------
   8. Roller, revisionslogg och samtyckesruta
--------------------------------------------------------------------------- */
.invite-role{ display:block; margin-top:12px; font-size:0.75rem; font-weight:800; color:#3a4a40; }
.invite-role select{
  display:block; width:100%; max-width:420px; margin-top:5px; padding:9px 11px;
  border:1px solid #cfdcd2; border-radius:10px; font:inherit; font-size:0.8125rem; background:#fff;
}
.invite-role select:focus{ outline:2px solid var(--forest); outline-offset:1px; }

.audit-heading{ margin-top:34px; }
.audit-table{ width:100%; border-collapse:collapse; }
.audit-table th{
  text-align:left; font-size:0.7188rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); padding:10px 12px; border-bottom:1px solid var(--line);
}
.audit-table td{ padding:11px 12px; border-bottom:1px solid #eef3ef; font-size:0.8125rem; vertical-align:top; }
.audit-table td small{ display:block; color:var(--muted); font-size:0.6875rem; margin-top:2px; }
.audit-when{ white-space:nowrap; color:var(--muted); font-weight:700; font-size:0.75rem; }
.audit-detail{ color:#4a5a50; font-size:0.7813rem; }
.audit-pill{
  display:inline-block; padding:3px 9px; border-radius:999px;
  font-size:0.6875rem; font-weight:800; background:#eef2ef; color:#4a5a50; white-space:nowrap;
}
.audit-pill.good{ background:#e7f4ec; color:#1f6b41; }
.audit-pill.warn{ background:var(--warn); color:var(--warnink); }
.audit-foot{ margin-top:12px; font-size:0.7188rem; }
.link-btn{
  border:0; background:transparent; padding:0; color:var(--forest);
  font:inherit; font-size:0.8125rem; font-weight:800; text-decoration:underline; cursor:pointer;
}

/* Samtyckesruta i kundflödet */
.consent-panel{
  margin:18px 0 4px; padding:16px 18px;
  background:#fbfdfb; border:1px solid var(--line); border-radius:14px;
}
.consent-title{ display:block; font-size:0.875rem; margin-bottom:12px; }
.consent-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.consent-list li{ padding-left:28px; position:relative; }
.consent-list li:before{
  position:absolute; left:0; top:1px; font-size:0.875rem; line-height:1.2;
}
.consent-list li.get:before{ content:"↓"; color:var(--forest); font-weight:900; }
.consent-list li.give:before{ content:"↗"; color:#8a6318; font-weight:900; }
.consent-list li.choice:before{ content:"✓"; color:var(--forest); font-weight:900; }
.consent-list b{ display:block; font-size:0.7813rem; margin-bottom:3px; }
.consent-list span{ display:block; font-size:0.7813rem; line-height:1.6; color:#4a5a50; }



/* ---------------------------------------------------------------------------
   9. Utfallsuppföljning och export
--------------------------------------------------------------------------- */
/* Utfallsknappen ligger under beslutsknappen i högerspalten. */
.decision-trigger.outcome{ margin-bottom:14px; }
.decision-trigger.outcome.set.good{ border-color:#cfe7d4; background:#f4faf6; }
.decision-trigger.outcome.set.warn{ border-color:#efdcb5; background:#fffaf0; }
.decision-trigger.outcome.set.bad{  border-color:#eecbc7; background:#fdf4f3; }

/* Utfallsrad i beslutssammanfattningen */
.ds-outcome{ font-weight:700; }
.ds-outcome.good{ color:#1f6b41; }
.ds-outcome.warn{ color:var(--warnink); }
.ds-outcome.bad{ color:var(--red); }
.ds-outcome span{ font-weight:850; color:var(--muted); }

/* Väntar-på-utfall-markering i listan */
.decision-pill.wait{ background:#eef2f6; color:#4a5a6a; }

.export-btn{ white-space:nowrap; }

/* Adminnyckeltal som behöver uppmärksamhet */
.stat-card.flag{ border-color:#efdcb5; background:#fffaf0; }



/* ---------------------------------------------------------------------------
   10. Kreditpolicy, attest och interna noteringar
--------------------------------------------------------------------------- */
.policy-card{
  margin:0 0 14px; padding:13px 16px;
  background:#fffaf0; border:1px solid #efdcb5; border-left:3px solid #c79a2e; border-radius:13px;
}
.policy-card .eyebrow{ margin:0; color:var(--warnink); }
.policy-card.policy-passed{ background:#f2faf4; border-color:#d5e8db; border-left-color:#2c7a4b; }
.policy-card.policy-passed .eyebrow{ color:#2c7a4b; }
.policy-card b{ display:block; margin:3px 0 7px; font-size:0.875rem; }
.policy-card ul{ margin:0; padding-left:16px; }
.policy-card li{ font-size:0.7813rem; line-height:1.55; color:#4a5a50; margin-bottom:3px; }
.policy-note{ display:block; margin-top:8px; font-size:0.6875rem; color:var(--muted); }

.approval-banner{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin:16px 0 4px; padding:14px 18px; border-radius:13px;
  background:#fffaf0; border:1px solid #efdcb5; border-left:3px solid #c79a2e;
}
.approval-banner.done{ background:#f4faf6; border-color:#cfe7d4; border-left-color:#2c7a4b; }
.approval-banner.rejected{ background:#fdf4f3; border-color:#eecbc7; border-left-color:var(--red); }
.approval-banner b{ display:block; font-size:0.9375rem; margin-bottom:3px; }
.approval-banner p{ margin:0; font-size:0.7813rem; line-height:1.55; color:#4a5a50; }
.approval-actions{ display:flex; gap:9px; }
.approval-own{ font-size:0.7188rem; font-weight:700; color:var(--muted); max-width:210px; }

.notes-card{
  margin:16px 0 4px; padding:14px 16px;
  background:#fff; border:1px solid var(--line); border-radius:13px;
}
.notes-card .eyebrow{ margin:0 0 9px; }
.notes-add{ display:flex; gap:9px; align-items:flex-start; }
.notes-add textarea{
  flex:1 1 auto; padding:9px 11px; border:1px solid #cfdcd2; border-radius:9px;
  font:inherit; font-size:0.8125rem; resize:vertical;
}
.notes-add textarea:focus{ outline:2px solid var(--forest); outline-offset:1px; border-color:var(--forest); }
.notes-list{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.notes-list li{ padding:9px 12px; background:#fbfdfb; border:1px solid var(--line); border-radius:10px; }
.notes-list p{ margin:0; font-size:0.8125rem; line-height:1.55; white-space:pre-wrap; }
.notes-list span{ display:block; margin-top:4px; font-size:0.6875rem; font-weight:700; color:var(--muted); }
.notes-empty{ margin:12px 0 0; font-size:0.7813rem; color:var(--muted); }

/* Policyformulär i företagsvyn */
.policy-form{ padding:20px 22px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.policy-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:16px; }
.policy-form label{ display:block; font-size:0.75rem; font-weight:800; color:#3a4a40; }
.policy-form label small{ display:block; margin:3px 0 6px; font-weight:600; font-size:0.6875rem; line-height:1.45; color:var(--muted); }
.pf-input{ display:flex; align-items:center; gap:7px; }
.pf-input input{
  width:100%; max-width:130px; padding:8px 11px; border:1px solid #cfdcd2;
  border-radius:9px; font:inherit; font-size:0.8125rem; background:#fff;
}
.pf-input input:focus{ outline:2px solid var(--forest); outline-offset:1px; border-color:var(--forest); }
.pf-input i{ font-style:normal; font-size:0.75rem; font-weight:750; color:var(--muted); }
.pf-check{ display:flex; align-items:flex-start; gap:8px; font-size:0.7813rem; font-weight:700; line-height:1.45; }
.pf-check input{ margin-top:2px; }
.pf-check.tall{ align-items:center; }
.policy-approval{ margin-top:20px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:14px; }
.policy-actions{ margin-top:20px; display:flex; align-items:center; gap:14px; }



/* ---------------------------------------------------------------------------
   11. Kundvy (samma sökande) och GDPR-verktyg
--------------------------------------------------------------------------- */
.subject-card{
  margin:0 0 14px; padding:13px 16px;
  background:#fff; border:1px solid var(--line); border-left:3px solid #9bb9a5; border-radius:13px;
}
.subject-card .eyebrow{ margin:0; }
/* Rullgardin för kundens historik */
.subject-card{
  margin:16px 0 4px; padding:0; overflow:hidden;
  background:#fff; border:1px solid var(--line);
  border-left:3px solid #9bb9a5; border-radius:13px;
}
.subject-card > summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:15px 18px; cursor:pointer; list-style:none;
  transition:background .16s ease;
}
.subject-card > summary::-webkit-details-marker{ display:none; }
.subject-card > summary:hover{ background:#fbfdfb; }
.subject-card > summary:focus-visible{ outline:2px solid var(--forest); outline-offset:-2px; }
.sh-summary .eyebrow{ margin:0; }
.sh-summary b{ display:block; margin:3px 0 3px; font-size:0.9375rem; }
.sh-lead{ font-size:0.7813rem; color:var(--muted); }
.sh-toggle{
  flex:0 0 auto; width:22px; height:22px; position:relative;
  border-radius:50%; background:var(--soft);
  transition:transform .22s cubic-bezier(.2,.7,.3,1);
}
.sh-toggle::before,.sh-toggle::after{
  content:""; position:absolute; top:50%; left:50%; background:var(--forest);
  transform:translate(-50%,-50%); border-radius:2px;
}
.sh-toggle::before{ width:10px; height:2px; }
.sh-toggle::after{ width:2px; height:10px; transition:opacity .22s ease; }
.subject-card[open] > summary .sh-toggle{ transform:rotate(180deg); }
.subject-card[open] > summary .sh-toggle::after{ opacity:0; }
.sh-body{ padding:0 18px 16px; }
.sh-intro{ margin:0 0 11px; font-size:0.7813rem; line-height:1.6; color:var(--muted); }
@media (prefers-reduced-motion: reduce){ .sh-toggle{ transition:none; } }
.subject-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.subject-list a{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  padding:8px 11px; border:1px solid var(--line); border-radius:9px;
  background:#fbfdfb; text-decoration:none; color:var(--ink);
  transition:transform .16s cubic-bezier(.2,.7,.3,1), border-color .16s ease;
}
.subject-list a:hover{ transform:translateX(2px); border-color:var(--forest); }
.subject-list b{ font-size:0.8125rem; }
.sh-score{ font-size:0.7813rem; font-weight:850; color:var(--forest); }
.sh-meta{ margin-left:auto; font-size:0.6875rem; font-weight:650; color:var(--muted); }
.subject-note{ display:block; margin-top:9px; font-size:0.6875rem; line-height:1.5; color:var(--muted); }

.subjects-table td{ vertical-align:middle; }
.sub-change.up{ color:#1f6b41; font-weight:800; }
.sub-change.down{ color:var(--red); font-weight:800; }
.sub-actions{ white-space:nowrap; }
.sub-actions .mini-link{ margin-right:10px; }
.mini-link.danger{ color:var(--red); }



/* ---------------------------------------------------------------------------
   12. Startsidan – omdesignad landningssida
--------------------------------------------------------------------------- */

/* Mjuk ljusfläck bakom hero så ytan inte känns platt */
.hero{ position:relative; }
.hero::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  width:min(720px,85%); aspect-ratio:1; right:-8%; top:-22%;
  /* closest-side: toningen når noll innan elementets kant, så ingen kant syns.
     Tre steg ger en jämn övergång i stället för en tydlig rand. */
  background:radial-gradient(closest-side, rgba(150,206,172,.58), rgba(150,206,172,.24) 55%, rgba(150,206,172,0));
  filter:blur(28px);
}
/* Ljusfläcken sticker ut till höger och gav sidled-scroll på skärmar runt
   900–1250 px. clip (inte hidden) klipper utan att bryta sticky-element. */
body{ overflow-x:clip; }

/* --- Poängmätaren: siffran ska sitta exakt i mitten --- */
.hero-score{ display:flex; align-items:center; gap:20px; }
.score-ring{ position:relative; flex:0 0 auto; width:120px; height:120px; }
.score-ring svg{ display:block; width:100%; height:100%; transform:rotate(-90deg); }
.score-ring circle{ fill:none; stroke-width:9; stroke-linecap:round; }
.ring-track{ stroke:rgba(21,55,40,.10); }
.ring-value{ stroke:var(--forest); }
.hero-score.amber .ring-value{ stroke:#c79a2e; }
.hero-score.red .ring-value{ stroke:var(--red); }
.ring-center{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  line-height:1;
}
.ring-center b{ font:500 2.5rem/1 Georgia,serif; letter-spacing:-.05em; color:var(--ink); }
.hero-score.amber .ring-center b{ color:#8a6318; }
.hero-score.red .ring-center b{ color:var(--red); }
.ring-center i{ font-style:normal; margin-top:3px; font-size:0.6875rem; font-weight:800; color:#607167; }
.score-text span{ display:block; font-size:0.7188rem; font-weight:850; letter-spacing:.06em; color:#607167; }
.score-text strong{ display:block; margin-top:5px; font-size:0.9375rem; line-height:1.3; }

.hero-card{ transition:transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease; }
.hero-card:hover{ transform:translateY(-3px); box-shadow:0 26px 60px rgba(20,60,40,.14); }
.chips span{
  padding:6px 13px; border-radius:999px;
  background:rgba(255,255,255,.7); border:1px solid var(--line);
  transition:transform .16s cubic-bezier(.2,.7,.3,1), border-color .16s ease;
}
.chips span:hover{ transform:translateY(-1px); border-color:var(--forest); }

/* --- Gemensamt: mjuk inglidning när sektionen kommer i vy --- */
.reveal{ opacity:0; transform:translateY(22px); }
.reveal.in{
  opacity:1; transform:none;
  transition:opacity .65s cubic-bezier(.2,.7,.3,1), transform .65s cubic-bezier(.2,.7,.3,1);
}
.land-intro{ max-width:62ch; margin:0 auto 34px; color:var(--muted); font-size:0.9063rem; line-height:1.65; }

/* --- Jämförelsen: upplysning vs kassaflöde --- */
.compare{
  display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:stretch;
}
.compare-card{
  padding:26px 28px; border-radius:18px; border:1px solid var(--line); background:#fff;
  transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease;
}
.compare-card:hover{ transform:translateY(-4px); box-shadow:0 20px 44px rgba(20,60,40,.10); }
.compare-card.past{ background:#fff; border-color:var(--line); }
.compare-card.now{ border-color:#c6e0cf; box-shadow:0 14px 34px rgba(20,60,40,.08); }
.compare-tag{
  display:inline-block; padding:4px 11px; border-radius:999px;
  font-size:0.7188rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase;
}
.compare-card.past .compare-tag{ background:#eef2ef; color:#4a5a50; }
.compare-card.now .compare-tag{ background:var(--soft); color:var(--forest); }
.compare-card h3{ margin:12px 0 14px; font:500 1.6875rem/1.1 Georgia,serif; letter-spacing:-.03em; }
.compare-card.past h3{ color:var(--ink); }
.compare-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.compare-card li{ position:relative; padding-left:24px; font-size:0.875rem; line-height:1.55; color:#3a4a40; }
.compare-card.past li{ color:#3a4a40; }
.compare-card li::before{
  content:""; position:absolute; left:0; top:7px; width:12px; height:12px; border-radius:50%;
}
.compare-card.past li::before{
  background:#8fa899; box-shadow:inset 0 0 0 2px #fff, 0 0 0 3px rgba(90,120,105,.14);
}
.compare-card.now li::before{
  background:var(--forest);
  box-shadow:inset 0 0 0 2px #fff, 0 0 0 3px rgba(17,90,56,.14);
}
.compare-note{ margin:18px 0 0; font-size:0.7813rem; line-height:1.6; color:var(--muted); }
.compare-plus{
  align-self:center; display:grid; place-items:center;
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1px solid var(--line);
  font:500 1.5rem Georgia,serif; color:var(--forest);
}

/* Kombinationen: vad de två delarna ger tillsammans */
.combo{
  display:flex; align-items:flex-start; gap:20px; margin-top:22px;
  padding:24px 28px; border-radius:18px;
  background:linear-gradient(135deg,#eef7f1,#f6fbf7);
  border:1px solid #c6e0cf;
}
.combo-eq{
  flex:0 0 auto; display:grid; place-items:center;
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1px solid #c6e0cf;
  font:500 1.5rem Georgia,serif; color:var(--forest);
}
.combo-body{ flex:1 1 auto; min-width:0; }
.combo-body > b{ display:block; font-size:1.125rem; margin-bottom:12px; }
.combo-points{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.combo-points p{ margin:0; font-size:0.8438rem; line-height:1.6; color:#3a4a40; }
.combo-points span{
  display:inline-grid; place-items:center; width:18px; height:18px; margin-right:8px;
  border-radius:50%; background:var(--forest); color:#fff; font-size:0.7188rem; font-weight:900;
  vertical-align:-3px;
}
@media (max-width:900px){
  .combo{ flex-direction:column; gap:14px; }
  .combo-points{ grid-template-columns:1fr; gap:11px; }
}

/* --- Så byggs poängen: staplar som fylls --- */
.factors{ display:flex; flex-direction:column; gap:13px; max-width:760px; margin:0 auto; }
.factor{ display:grid; grid-template-columns:180px 1fr 96px; align-items:center; gap:16px; }
.f-name{ font-size:0.8438rem; font-weight:800; }
.f-bar{ display:block; height:10px; border-radius:999px; background:#e9eeea; overflow:hidden; }
.f-bar i{
  display:block; height:100%; width:0; border-radius:999px;
  background:linear-gradient(90deg,#2f8054,#4aa676);
  transition:width 1.1s cubic-bezier(.2,.7,.3,1);
}
.factor.warn .f-bar i{ background:linear-gradient(90deg,#c08a22,#dfae4b); }
.f-val{ font-size:0.7188rem; font-weight:800; color:var(--muted); text-align:right; }
.factors-note{ max-width:64ch; margin:26px auto 0; font-size:0.8125rem; line-height:1.65; color:var(--muted); }

/* --- Stegkorten --- */
.land-steps article{
  position:relative; overflow:hidden;
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease;
}
.land-steps article::after{
  content:attr(data-ghost); position:absolute; right:-6px; bottom:-30px;
  font:500 8.125rem/1 Georgia,serif; color:rgba(17,90,56,.045); pointer-events:none;
}
.land-steps article:hover{
  transform:translateY(-4px); border-color:#bcd7c4; box-shadow:0 18px 40px rgba(20,60,40,.10);
}
.land-num{ transition:transform .22s cubic-bezier(.2,.7,.3,1); }
.land-steps article:hover .land-num{ transform:scale(1.08); }

/* --- Funktioner efter beslutet --- */
.feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.feature{
  padding:26px 26px 28px; border-radius:18px; background:#fff; border:1px solid var(--line);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease;
}
.feature:hover{ transform:translateY(-4px); border-color:#bcd7c4; box-shadow:0 18px 40px rgba(20,60,40,.10); }
.f-icon{
  display:grid; place-items:center; width:42px; height:42px; margin-bottom:15px;
  border-radius:12px; background:var(--soft); color:var(--forest); font-size:1.1875rem;
}
.feature b{ display:block; font-size:1.0625rem; margin-bottom:8px; }
.feature p{ margin:0; font-size:0.8438rem; line-height:1.6; color:#4a5a50; }

/* --- Segment --- */
.segments{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:26px; }
.segment{
  padding:24px 26px; border-radius:18px; background:#fff; border:1px solid var(--line);
  border-top:3px solid var(--forest);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease;
}
.segment:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(20,60,40,.10); }
.segment b{ display:block; font-size:1.0625rem; margin-bottom:7px; }
.segment p{ margin:0; font-size:0.8438rem; line-height:1.6; color:#4a5a50; }

.land-example-card{
  display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease;
}
.land-example-card:hover{ transform:translateY(-3px); box-shadow:0 20px 44px rgba(20,60,40,.12); }
.land-example-card h3{ margin:6px 0 8px; }
.land-example-card p{ margin:0; max-width:56ch; }

/* --- Avslutande CTA --- */
.land-cta{ position:relative; }
.land-cta::before{
  content:""; position:absolute; inset:auto 0 0 50%; transform:translateX(-50%);
  width:min(820px,96%); height:100%; z-index:-1; pointer-events:none;
  /* En bred, låg ellips bakom rubriken som tonar ut långt före kanterna. */
  background:radial-gradient(closest-side, rgba(150,206,172,.50), rgba(150,206,172,.19) 55%, rgba(150,206,172,0));
  filter:blur(24px);
}
.cta-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

@media (max-width:900px){
  .compare{ grid-template-columns:1fr; }
  .compare-plus{ justify-self:center; }
  .feature-grid, .segments{ grid-template-columns:1fr; }
  .factor{ grid-template-columns:130px 1fr; }
  .f-val{ display:none; }
}
@media (max-width:640px){
  .hero::before{ display:none; }
  .hero-score{ gap:15px; }
  .score-ring{ width:98px; height:98px; }
  .ring-center b{ font-size:2.0625rem; }
  .land-steps article::after{ font-size:6rem; }
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
  .reveal.in{ transition:none !important; }
  .f-bar i{ transition:none !important; }
  .hero-card:hover, .land-steps article:hover, .feature:hover,
  .segment:hover, .compare-card:hover, .land-example-card:hover{ transform:none; }
}


/* ---------------------------------------------------------------------------
   13. Arbetsöversikt vid inloggning
--------------------------------------------------------------------------- */
.work-hero{ padding:44px 0 30px; }
.wh-top{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; flex-wrap:wrap; margin-bottom:24px;
}
.wh-top .eyebrow{ margin:0; }
.work-hero h1{
  font:500 clamp(2rem,3.4vw,2.875rem)/1.05 Georgia,serif;
  letter-spacing:-.04em; margin:9px 0 7px;
}
.wh-sub{ margin:0; color:var(--muted); font-size:0.875rem; }
.wh-actions{ display:flex; gap:10px; flex-wrap:wrap; }

.wh-queue{ display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:13px; }
.wh-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:2px;
  padding:18px 19px 19px; text-align:left;
  background:#fff; border:1px solid var(--line); border-radius:15px;
  border-top:3px solid #cfdcd2; cursor:pointer;
  transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease, border-color .2s ease;
}
.wh-card:hover:not(:disabled){
  transform:translateY(-3px); border-color:#bcd7c4;
  box-shadow:0 16px 34px rgba(20,60,40,.10);
}
.wh-card:focus-visible{ outline:2px solid var(--forest); outline-offset:2px; }
.wh-card b{
  font:500 2.375rem/1 Georgia,serif; letter-spacing:-.05em; color:var(--ink); margin-bottom:6px;
}
.wh-label{ font-size:0.8438rem; font-weight:850; }
.wh-sub-label{ font-size:0.7188rem; color:var(--muted); line-height:1.4; }

.wh-card.accent{ border-top-color:var(--forest); }
.wh-card.accent b{ color:var(--forest); }
.wh-card.warn{ border-top-color:#c79a2e; }
.wh-card.warn b{ color:#8a6318; }
.wh-card.alert{ border-top-color:var(--red); }
.wh-card.alert b{ color:var(--red); }

/* Tomma köer tonas ned men behåller sin plats, så layouten inte hoppar */
.wh-card.zero{ background:#fbfcfb; border-top-color:#e4ebe6; cursor:default; }
.wh-card.zero b{ color:#5f6d63; }
.wh-card.zero .wh-label{ color:#5f6d63; }

@media (max-width:640px){
  .work-hero{ padding:30px 0 22px; }
  .wh-card b{ font-size:1.9375rem; }
}
@media (prefers-reduced-motion: reduce){
  .wh-card:hover:not(:disabled){ transform:none; }
}



/* ---------------------------------------------------------------------------
   14. Kreditpuls – översikt med inkomstkurva
--------------------------------------------------------------------------- */
.pulse-strip{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:14px;
}
.pulse-stat{
  padding:15px 17px; background:#fff; border:1px solid var(--line);
  border-radius:14px; border-top:3px solid #cfdcd2;
}
.pulse-stat b{ display:block; font:500 1.875rem/1 Georgia,serif; letter-spacing:-.04em; }
.pulse-stat span{ display:block; margin-top:5px; font-size:0.7188rem; font-weight:750; color:var(--muted); }
.pulse-stat.bad{ border-top-color:var(--red); } .pulse-stat.bad b{ color:var(--red); }
.pulse-stat.warn{ border-top-color:#c79a2e; } .pulse-stat.warn b{ color:#8a6318; }
.pulse-stat.good{ border-top-color:var(--forest); } .pulse-stat.good b{ color:var(--forest); }

.pulse-scope{
  margin:0 0 20px; padding:11px 15px; border-radius:11px;
  background:var(--soft); border:1px solid var(--line);
  font-size:0.7813rem; line-height:1.6; color:#3a4a40;
}

.pulse-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:15px; }
.pulse-card{
  padding:17px 18px 15px; background:#fff; border:1px solid var(--line);
  border-radius:16px; border-left:3px solid #cfdcd2; cursor:pointer;
  transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease, border-color .2s ease;
}
.pulse-card:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(20,60,40,.10); }
.pulse-card:focus-visible{ outline:2px solid var(--forest); outline-offset:2px; }
.pulse-card.bad{ border-left-color:var(--red); }
.pulse-card.warn{ border-left-color:#c79a2e; }
.pulse-card.good{ border-left-color:var(--forest); }
.pulse-card.off{ border-left-color:#d8ded9; background:#fbfcfb; }

.pulse-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.pulse-top b{ font-size:1rem; }
.pulse-sub{ display:block; margin-top:2px; font-size:0.7188rem; color:var(--muted); }
.pulse-badge{
  padding:3px 10px; border-radius:999px; font-size:0.75rem; font-weight:850;
  background:#eef2ef; color:#4a5a50; white-space:nowrap;
}
.pulse-badge.bad{ background:#fdeceb; color:var(--red); }
.pulse-badge.warn{ background:var(--warn); color:var(--warnink); }
.pulse-badge.good{ background:#e7f4ec; color:#1f6b41; }

.pulse-chart{ margin:14px 0 10px; height:54px; }
.spark{ width:100%; height:54px; display:block; }
.spark-line{ fill:none; stroke:var(--forest); stroke-width:2; stroke-linejoin:round; stroke-linecap:round;
  vector-effect:non-scaling-stroke; }
.spark-area{ fill:rgba(17,90,56,.09); stroke:none; }
.spark-dot{ fill:var(--forest); stroke:#fff; stroke-width:2; }
.spark.bad .spark-line,.spark.bad .spark-dot{ stroke:var(--red); fill:var(--red); }
.spark.bad .spark-dot{ stroke:#fff; }
.spark.bad .spark-area{ fill:rgba(164,69,61,.10); }
.spark.warn .spark-line,.spark.warn .spark-dot{ stroke:#c79a2e; fill:#c79a2e; }
.spark.warn .spark-dot{ stroke:#fff; }
.spark.warn .spark-area{ fill:rgba(199,154,46,.12); }
.spark-empty{
  display:grid; place-items:center; height:54px; border-radius:9px;
  background:#f6f8f6; border:1px dashed var(--line);
  font-size:0.7188rem; color:var(--muted); text-align:center; padding:0 10px;
}

.pulse-foot{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding-top:10px; border-top:1px solid var(--line);
}
.pulse-income{ font-size:0.8438rem; font-weight:800; color:var(--ink); }
/* Texten ska följa kortets status – annars ser ett rött kort ut att ha
   en neutral eller gul inkomstrad, vilket blir motsägelsefullt. */
.pulse-card.bad .pulse-income{ color:var(--red); }
.pulse-card.warn .pulse-income{ color:var(--warnink); }
.pulse-card.good .pulse-income{ color:#1f6b41; }
.pulse-card.off .pulse-income,.pulse-card.idle .pulse-income{ color:var(--muted); }
.pulse-card.bad b,.pulse-card.warn b,.pulse-card.good b{ color:var(--ink); }
.pulse-pending{ font-style:normal; font-weight:700; font-size:0.7813rem; color:var(--muted); }
.pulse-badge.idle{ background:#eef2f6; color:#5a6a78; }
.pulse-card.idle{ border-left-color:#c3cdd6; }
.spark.idle .spark-line,.spark.off .spark-line{ stroke:#9aa79f; }
.spark.idle .spark-dot,.spark.off .spark-dot{ fill:#9aa79f; }
.spark.idle .spark-area,.spark.off .spark-area{ fill:rgba(120,135,125,.08); }
.pulse-delta{ margin-left:7px; font-size:0.7188rem; font-weight:850; }
.pulse-delta.down{ color:var(--red); }
.pulse-delta.up{ color:#1f6b41; }
.pulse-meta{ font-size:0.6875rem; color:var(--muted); font-weight:650; }
.pulse-recovered{ font-style:normal; font-weight:850; color:#1f6b41; }
.pulse-until{ margin-top:9px; font-size:0.75rem; color:var(--muted); }

.pulse-empty{
  padding:34px 26px; text-align:center; background:#fff;
  border:1px solid var(--line); border-radius:16px;
}
.pulse-empty b{ display:block; font-size:1.0625rem; margin-bottom:7px; }
.pulse-empty p{ margin:0 auto; max-width:52ch; font-size:0.8438rem; line-height:1.6; color:var(--muted); }

@media (prefers-reduced-motion: reduce){ .pulse-card:hover{ transform:none; } }



/* ---------------------------------------------------------------------------
   15. Kreditpuls – detaljsidan med inkomstgraf
--------------------------------------------------------------------------- */
.pulse-recovered-banner{
  margin:16px 0 0; padding:13px 17px; border-radius:12px;
  background:#eaf6ee; border:1px solid #cfe7d4; border-left:3px solid #2c7a4b;
  font-size:0.8438rem; font-weight:700; color:#1f6b41;
}

.pulse-kpis{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:13px; margin:22px 0 18px;
}
.pulse-kpi{
  padding:16px 18px; background:#fff; border:1px solid var(--line);
  border-radius:15px; border-top:3px solid #cfdcd2;
}
.pulse-kpi span{ display:block; font-size:0.6875rem; font-weight:850; letter-spacing:.08em; color:var(--muted); }
.pulse-kpi b{ display:block; margin:7px 0 3px; font:500 1.875rem/1 Georgia,serif; letter-spacing:-.04em; }
.pulse-kpi small{ font-size:0.7188rem; color:var(--muted); }
.pulse-kpi.bad{ border-top-color:var(--red); } .pulse-kpi.bad b{ color:var(--red); }
.pulse-kpi.warn{ border-top-color:#c79a2e; } .pulse-kpi.warn b{ color:#8a6318; }
.pulse-kpi.good{ border-top-color:var(--forest); } .pulse-kpi.good b{ color:var(--forest); }

.chart-card{
  padding:20px 22px 14px; background:#fff; border:1px solid var(--line);
  border-radius:18px; box-shadow:var(--shadow); margin-bottom:20px;
}
.chart-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:14px;
}
.chart-head .eyebrow{ margin:0; }
.chart-head b{ display:block; margin-top:3px; font-size:1rem; }
.chart-legend{ display:flex; align-items:center; gap:14px; font-size:0.6875rem; font-weight:750; color:var(--muted); }
.chart-legend i{ display:inline-block; width:15px; height:0; margin-right:5px; vertical-align:middle; }
.lg-line{ border-top:2.5px solid var(--forest); }
.lg-base{ border-top:1.5px dashed #9aa79f; }
.lg-pay{ border-top:1.5px dashed #c79a2e; }

.income-chart{ width:100%; height:auto; display:block; overflow:visible; }
.ch-grid{ stroke:#eef2ef; stroke-width:1; }
.ch-baseline{ stroke:#9aa79f; stroke-width:1.5; stroke-dasharray:5 4; }
.ch-baseline-label{ font-size:0.7188rem; font-weight:750; fill:#6e796f; }
.ch-payment{ stroke:#c79a2e; stroke-width:1.5; stroke-dasharray:5 4; }
.ch-payment-label{ font-size:0.7188rem; font-weight:750; fill:#8a6318; }
.ch-area{ fill:rgba(17,90,56,.10); stroke:none; }
.ch-line{ fill:none; stroke:var(--forest); stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.ch-dot{ fill:var(--forest); stroke:#fff; stroke-width:2; }
.ch-dot.last{ stroke-width:2.5; }
.ch-label{ font-size:0.7188rem; font-weight:700; fill:var(--muted); }
.income-chart.bad .ch-line{ stroke:var(--red); }
.income-chart.bad .ch-dot{ fill:var(--red); }
.income-chart.bad .ch-area{ fill:rgba(164,69,61,.10); }
.income-chart.warn .ch-line{ stroke:#c79a2e; }
.income-chart.warn .ch-dot{ fill:#c79a2e; }
.income-chart.warn .ch-area{ fill:rgba(199,154,46,.12); }
.chart-empty{
  display:grid; place-items:center; height:180px; border-radius:12px;
  background:#f6f8f6; border:1px dashed var(--line); color:var(--muted); font-size:0.8125rem;
}

.pulse-split{ display:grid; grid-template-columns:1.1fr .9fr; gap:16px; }
.pulse-panel{
  padding:18px 20px; background:#fff; border:1px solid var(--line); border-radius:16px;
}
.pulse-panel .eyebrow{ margin:0 0 11px; }
.pulse-flags{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.pulse-flags li{
  padding:11px 13px; border-radius:11px; font-size:0.8125rem; line-height:1.55;
  background:#fbfdfb; border:1px solid var(--line); border-left:3px solid #cfdcd2;
}
.pulse-flags li.sev-high{ background:#fdf4f3; border-color:#eecbc7; border-left-color:var(--red); }
.pulse-flags li.sev-medium{ background:#fffaf0; border-color:#efdcb5; border-left-color:#c79a2e; }
.pd-none{ margin:0; font-size:0.8125rem; color:var(--muted); }

.pulse-actions{ margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.pulse-actions ul{ margin:0; padding-left:17px; }
.pulse-actions li{ font-size:0.8125rem; line-height:1.6; color:#3a4a40; margin-bottom:5px; }
.pulse-actions-note{ margin:11px 0 0; font-size:0.7188rem; line-height:1.55; color:var(--muted); }

.check-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.check-list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:9px 12px; border-radius:10px; background:#fbfdfb;
  border:1px solid var(--line); border-left:3px solid #cfdcd2;
}
.check-list li.bad{ border-left-color:var(--red); }
.check-list li.warn{ border-left-color:#c79a2e; }
.check-list li.good{ border-left-color:var(--forest); }
.check-list b{ font-size:0.8125rem; }
.check-list span{ font-size:0.7188rem; color:var(--muted); font-weight:650; }
.pulse-scope-note{
  margin:14px 0 0; padding-top:13px; border-top:1px solid var(--line);
  font-size:0.7188rem; line-height:1.55; color:var(--muted);
}

@media (max-width:900px){ .pulse-split{ grid-template-columns:1fr; } }


/* ---------------------------------------------------------------------------
   4. Utskrift / Spara som PDF
   Samma designspråk som på webben – skogsgrönt, Georgia i display, mjuka kort –
   men komprimerat så att underlaget får plats på A4 utan att spilla över.
--------------------------------------------------------------------------- */
.print-only{ display:none; }

@media print{
  @page{ size:A4; margin:13mm 12mm; }

  html, body{
    background:#fff !important; color:#153728;
    font:9pt/1.5 Inter, "Helvetica Neue", Arial, sans-serif;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  .demo-strip, .header, .rs-modal-overlay, .rights-overlay, #toast{ display:none !important; }
  .shell, .review-main{ width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
  #review > *{ display:none !important; }
  #review > #printDoc{ display:block !important; }

  /* --- Sidhuvud --------------------------------------------------------- */
  .pd-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:16pt;
    padding-bottom:6pt; border-bottom:1.6pt solid #115A38; margin-bottom:11pt;
  }
  .pd-brand b{
    display:block; font:500 19pt/1 Georgia, serif;
    letter-spacing:-.03em; color:#115A38;
  }
  .pd-brand span{
    display:block; margin-top:2pt; font-size:6.5pt; font-weight:850;
    letter-spacing:.14em; text-transform:uppercase; color:#6e796f;
  }
  .pd-ref{ display:flex; flex-direction:column; gap:1.5pt; text-align:right; font-size:7.5pt; color:#5f6d63; }
  .pd-ref b{ color:#153728; }

  /* --- Utfall ----------------------------------------------------------- */
  .pd-verdict{
    display:flex; align-items:center; gap:16pt;
    padding:10pt 13pt; border-radius:9pt; margin-bottom:11pt;
    background:#eef6f0; border:0.7pt solid #d3e7d8;
  }
  .pd-verdict.good{ background:#eaf8ed; border-color:#cfe7d4; }
  .pd-verdict.warn{ background:#fff9ec; border-color:#efdcb5; }
  .pd-verdict.bad{  background:#fdeeed; border-color:#eecbc7; }
  .pd-score{ flex:0 0 auto; white-space:nowrap; }
  .pd-score b{ font:500 34pt/.9 Georgia, serif; letter-spacing:-.05em; color:#115A38; }
  .pd-verdict.warn .pd-score b{ color:#8a6318; }
  .pd-verdict.bad .pd-score b{ color:#a4453d; }
  .pd-score span{ font-size:10pt; font-weight:800; color:#5f6d63; }
  .pd-verdict-text b{ font:500 15pt/1.15 Georgia, serif; letter-spacing:-.02em; display:block; margin-bottom:3pt; }
  .pd-verdict-text p{ margin:0; font-size:8.5pt; line-height:1.5; color:#4a5a50; }

  /* --- Kort och spalter -------------------------------------------------- */
  .pd-cols{ display:flex; gap:10pt; margin-bottom:9pt; align-items:flex-start; }
  .pd-cols > *{ flex:1 1 0; min-width:0; margin-bottom:0; }
  .pd-block{
    margin-bottom:9pt; padding:8pt 10pt;
    border:0.7pt solid #dae5dc; border-radius:9pt; background:#fff;
    break-inside:avoid; page-break-inside:avoid;
  }
  .pd-block h3{
    margin:0 0 5pt; font-size:6.5pt; font-weight:900; letter-spacing:.13em;
    text-transform:uppercase; color:#115A38;
  }
  .pd-table{ width:100%; border-collapse:collapse; }
  .pd-table th{
    text-align:left; font-weight:600; color:#5f6d63; font-size:8pt;
    padding:3pt 8pt 3pt 0; vertical-align:top; width:52%;
  }
  .pd-table td{
    text-align:right; font-weight:800; font-size:8.5pt; color:#153728;
    padding:3pt 0; vertical-align:top; border-bottom:0.4pt solid #eef3ef;
  }
  .pd-table tr:last-child td{ border-bottom:0; }
  .pd-markers th{ width:72%; }

  .pd-list{ margin:0; padding-left:11pt; }
  .pd-list li{ font-size:8pt; line-height:1.5; margin-bottom:3pt; color:#3a4a40; }
  .pd-list.ok li::marker{ color:#2c7a4b; }
  .pd-list.risk li::marker{ color:#b8862a; }

  /* --- Beslut ------------------------------------------------------------ */
  .pd-decision{ background:#fbfdfb; border-left:2.5pt solid #9bb9a5; }
  .pd-decision.good{ border-left-color:#2c7a4b; }
  .pd-decision.warn{ border-left-color:#c79a2e; }
  .pd-decision.bad{  border-left-color:#a4453d; }
  .pd-decision .pd-table th{ width:30%; }
  .pd-decision .pd-table td{ text-align:left; font-weight:500; line-height:1.5; }
  .pd-decision .pd-table td b{ font-weight:850; }
  .pd-decision.empty p{ margin:0; font-size:8pt; color:#6e796f; font-style:italic; }

  .pd-limits{ margin:6pt 0 0; font-size:7pt; line-height:1.5; color:#6e796f; }

  /* --- Sidfot ------------------------------------------------------------ */
  .pd-foot{ margin-top:10pt; padding-top:6pt; border-top:0.7pt solid #dae5dc; }
  .pd-foot p{ margin:0 0 3pt; font-size:6.8pt; line-height:1.5; color:#6e796f; }
  .pd-demo{
    display:inline-block; padding:2.5pt 7pt; border-radius:4pt;
    background:#fff6e2; color:#7a5b23 !important; font-weight:850;
  }
}

/* ===========================================================================
   Adminkort: modellöversikt, skuggvalidering och lagringshälsa
   (steg 1.6 + 2.5). Följer befintlig palett – inga nya färgvariabler.
   =========================================================================== */
.sub-head{ margin-top:4px; border-top:1px solid var(--line); }
.warn-note{ padding:12px 18px; background:var(--warn); color:var(--warnink); border-radius:0; margin:0; font-size:0.7188rem; line-height:1.5; }

/* Statusetiketter för modellversioner */
.pill{ display:inline-block; padding:3px 8px; border-radius:999px; font-size:0.6875rem; font-weight:850; letter-spacing:.04em; vertical-align:middle; }
.pill-champion{ background:#e5f4e7; color:#1d7a42; }
.pill-challenger{ background:#eaf0f8; color:#39548a; }
.pill-retired{ background:#eef2ef; color:#657268; }

/* Fördelning av underlagskvalitet */
.dq-block{ padding:16px 18px; border-bottom:1px solid var(--line); }
.dq-block .mini{ margin-bottom:12px; }
.dq-block > small{ display:block; margin-top:10px; color:var(--muted); font-size:0.6875rem; line-height:1.5; }
.dq-row{ display:flex; align-items:center; gap:12px; margin-bottom:7px; }
.dq-label{ width:52px; font-size:0.6875rem; font-weight:800; color:#4d5d52; }
.dq-track{ flex:1; height:9px; border-radius:999px; background:#eef3ee; overflow:hidden; }
.dq-fill{ display:block; height:100%; border-radius:999px; transition:width .35s ease; }
.dq-high{ background:#3f9c63; }
.dq-med{ background:#dba23a; }
.dq-low{ background:var(--red); }
.dq-unknown{ background:#b9c4bb; }
.dq-val{ width:38px; text-align:right; font-size:0.6875rem; font-weight:800; color:#4d5d52; }

/* Modellkatalog */
.model-catalogue{ padding:12px 18px 18px; }
.model-entry{ margin-top:8px; }
.model-entry summary{ padding:13px 15px; }
.model-entry summary b{ display:inline; font-size:0.8125rem; }
.model-entry > p{ padding:0 15px; margin:0 0 8px; font-size:0.7188rem; line-height:1.55; }
.model-changes{ margin:0 0 14px; padding:0 15px 0 34px; display:grid; gap:6px; color:#516158; font-size:0.7188rem; line-height:1.5; }

/* Poängnedbrytning i underlaget (steg 2.1) */
.score-breakdown td{ vertical-align:middle; }
.score-breakdown .sc-bar-cell{ width:38%; }
.sc-track{ display:block; height:8px; border-radius:999px; background:#eef3ee; overflow:hidden; }
.sc-fill{ display:block; height:100%; border-radius:999px; }
.sc-pos{ background:#3f9c63; }
.sc-neg{ background:var(--red); }
.sc-points{ text-align:right; font-weight:850; font-size:0.8125rem; white-space:nowrap; }
.sc-neg-text{ color:var(--red); }
.score-breakdown .sc-total td{ border-top:1px solid var(--line); font-size:0.8125rem; }
.score-breakdown .sc-total .sc-points{ font:500 1.125rem Georgia,serif; }

/* ===========================================================================
   Brytpunkt – "vad skulle krävas för grönt?" (steg 4.2)
   =========================================================================== */
.afford{ display:grid; grid-template-columns:1.4fr .6fr; gap:26px; align-items:start;
  margin-top:24px; padding:26px 28px; border:1px solid var(--line); border-radius:18px;
  background:rgba(255,255,255,.82); box-shadow:var(--shadow); }
.afford-action{ background:#fff9ec; border-color:#efdcb5; }
.afford-ok{ background:#eaf8ed; border-color:#d0e8d4; }
.afford-block{ grid-template-columns:1fr; background:#fdf3f2; border-color:#e8cdc9; }
.afford h2{ font:500 1.875rem Georgia,serif; letter-spacing:-.035em; margin:7px 0 12px; }
.afford-lead{ max-width:640px; margin:0; color:#54635a; font-size:0.875rem; line-height:1.6; }
.afford-lead b{ color:var(--ink); }
.afford-note{ margin:14px 0 0; color:var(--muted); font-size:0.7188rem; line-height:1.55; }
.afford .warning-list{ margin-top:14px; }

.afford-figure{ padding:20px; border-radius:14px; background:rgba(255,255,255,.72);
  border:1px solid rgba(0,0,0,.05); text-align:left; }
.afford-label{ display:block; color:#56685d; font-size:0.6875rem; font-weight:900; letter-spacing:.09em; }
.afford-value{ display:block; margin:9px 0 5px; font:500 clamp(1.625rem,3vw,2.25rem)/1 Georgia,serif;
  letter-spacing:-.045em; color:var(--ink); }
.afford-value small{ font:800 0.8125rem Inter,system-ui,sans-serif; letter-spacing:-.01em; color:#5f6d63; margin-left:4px; }
.afford-action .afford-value{ color:#9a6a1c; }
.afford-ok .afford-value{ color:#1f6b40; }
.afford-sub{ display:block; color:var(--muted); font-size:0.7188rem; line-height:1.45; }

.afford-loans{ margin-top:16px; background:rgba(255,255,255,.6); }
.afford-loans summary b{ font-size:0.8125rem; }

@media(max-width:900px){ .afford{ grid-template-columns:1fr; gap:18px; padding:22px; } }

/* ===========================================================================
   Hushåll – fördelning per person (steg 3.4)
   =========================================================================== */
.household{ margin-top:24px; padding:26px 28px; border:1px solid var(--line); border-radius:18px;
  background:rgba(255,255,255,.82); box-shadow:var(--shadow); }
.hh-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:26px; flex-wrap:wrap; }
.household h2{ font:500 1.875rem Georgia,serif; letter-spacing:-.035em; margin:7px 0 12px; }
.hh-lead{ max-width:620px; margin:0; color:#54635a; font-size:0.8125rem; line-height:1.6; }
.hh-window{ padding:16px 18px; border-radius:13px; background:var(--soft); min-width:190px; }
.hh-window-label{ display:block; color:#547060; font-size:0.6875rem; font-weight:900; letter-spacing:.08em; }
.hh-window b{ display:block; margin:7px 0 4px; font:500 1.875rem Georgia,serif; letter-spacing:-.04em; }
.hh-window small{ display:block; color:var(--muted); font-size:0.75rem; line-height:1.4; }

.hh-share{ margin-top:22px; }
.hh-share-label{ display:block; color:#56685d; font-size:0.6875rem; font-weight:900; letter-spacing:.08em; margin-bottom:9px; }
.hh-bar{ display:flex; height:12px; border-radius:999px; overflow:hidden; background:#eef3ee; }
.hh-seg{ display:block; height:100%; }
.hh-seg-0{ background:#2f7d52; }
.hh-seg-1{ background:#7fb894; }
.hh-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-top:9px; color:#54635a; font-size:0.7188rem; font-weight:700; }
.hh-legend span{ display:flex; align-items:center; gap:6px; }
.hh-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; flex:none; }

.hh-warn{ margin:16px 0 0; padding:13px 15px; border-radius:11px;
  background:var(--warn); color:var(--warnink); font-size:0.75rem; line-height:1.55; }

.hh-people{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:20px; }
.hh-person{ padding:18px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.72); }
.hh-person-top{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.hh-person-top b{ display:block; font-size:0.875rem; }
.hh-person-top small{ display:block; margin-top:2px; color:var(--muted); font-size:0.75rem; }
.hh-person-top > div{ flex:1; }
.hh-score{ font:500 1.625rem Georgia,serif; letter-spacing:-.04em; color:var(--ink); }
.hh-score small{ font:800 0.6875rem Inter,system-ui,sans-serif; color:#5f6d63; }
.hh-metrics{ grid-template-columns:1fr 1fr; }
.hh-thin b{ color:var(--red); }
.hh-meta{ margin:12px 0 0; color:var(--muted); font-size:0.6875rem; }
.hh-flags{ margin:7px 0 0; color:#7d5716; font-size:0.6875rem; font-weight:700; }

.check-row{ display:flex; align-items:center; gap:9px; margin-top:18px!important; font-weight:700; font-size:0.75rem; }
.check-row input{ width:auto!important; margin:0!important; }
.link-group{ margin-top:16px; }
.link-group .mini{ margin-bottom:6px; }

@media(max-width:900px){ .hh-people{ grid-template-columns:1fr; } .household{ padding:22px; } }

/* Kreditpuls: inkomst per person (steg 3.5) */
.member-pulse{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.member-pulse li{ padding:14px 16px; border:1px solid var(--line); border-radius:12px;
  background:rgba(255,255,255,.6); }
.member-pulse li.sev-high{ border-color:#e8cdc9; background:#fdf3f2; }
.member-pulse li.sev-medium{ border-color:#efdcb5; background:#fff9ec; }
.member-pulse li.sev-good{ border-color:#d0e8d4; background:#f2fbf4; }
.mp-top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.mp-top b{ font-size:0.8438rem; }
.mp-change{ font:500 1.25rem Georgia,serif; letter-spacing:-.03em; }
.mp-change.down{ color:var(--red); }
.mp-change.up{ color:#1f6b40; }
.mp-figures{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-top:7px; color:var(--muted); font-size:0.7188rem; }
.mp-figures b{ color:var(--ink); }
.mp-thin{ color:var(--red); font-weight:800; }
.flag-who{ display:inline-block; margin-right:4px; }
.pd-note{ margin:12px 0 0; color:var(--muted); font-size:0.6875rem; line-height:1.55; }

/* Kundlänkens livscykel (steg 6) */
.field-pair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field-pair label{ margin-top:14px; }
.field-note{ display:block; margin-top:6px; color:var(--muted); font-size:0.6875rem; line-height:1.5; }
.hidden{ display:none!important; }

.link-track{ display:flex; align-items:center; gap:0; margin:14px 0 10px; }
.lt-step{ flex:1; text-align:center; position:relative; }
.lt-step span{ display:block; margin:0 auto 6px; width:11px; height:11px; border-radius:50%;
  background:#dfe7e1; border:2px solid #fff; box-shadow:0 0 0 1px #dfe7e1; }
.lt-step small{ font-size:0.6875rem; font-weight:800; letter-spacing:.03em; color:#5f6d63; }
.lt-step::before{ content:''; position:absolute; top:5px; left:-50%; width:100%; height:2px; background:#e8eee9; z-index:-1; }
.lt-step:first-child::before{ display:none; }
.lt-step.done span{ background:#2f7d52; box-shadow:0 0 0 1px #2f7d52; }
.lt-step.done small{ color:#2f7d52; }
.lt-step.current span{ background:#dba23a; box-shadow:0 0 0 3px rgba(219,162,58,.22); }
.lt-step.current small{ color:#9a6a1c; }
.lt-step.dead span{ background:var(--red); box-shadow:0 0 0 1px var(--red); }
.lt-step.dead small{ color:var(--red); }

.link-row{ padding:16px 0; border-top:1px solid var(--line); }
.link-row:first-of-type{ border-top:0; }
.lr-head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.lr-head b{ font-size:0.8438rem; }
.lr-meta{ color:var(--muted); font-size:0.6875rem; }
.lr-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.lr-actions button{ font-size:0.7188rem; padding:7px 12px; }

.funnel{ display:grid; gap:9px; margin-top:14px; }
.fn-row{ display:grid; grid-template-columns:130px 1fr 74px; align-items:center; gap:12px; }
.fn-label{ font-size:0.7188rem; font-weight:800; color:#4d5d52; }
.fn-track{ height:22px; border-radius:7px; background:#eef3ee; overflow:hidden; }
.fn-fill{ display:block; height:100%; background:#2f7d52; border-radius:7px; }
.fn-fill.warn{ background:#dba23a; }
.fn-fill.bad{ background:var(--red); }
.fn-val{ text-align:right; font-size:0.75rem; font-weight:800; }
.fn-drop{ margin:14px 0 0; padding:13px 15px; border-radius:11px; background:var(--warn);
  color:var(--warnink); font-size:0.75rem; line-height:1.55; }
.outbox-list{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:8px; }
.outbox-list li{ padding:11px 13px; border:1px solid var(--line); border-radius:10px;
  background:rgba(255,255,255,.6); font-size:0.7188rem; }
.outbox-list b{ display:block; margin-bottom:3px; font-size:0.75rem; }

/* Webhookar (steg 5.4) */
.ev-tag{ display:inline-block; padding:2px 7px; margin:1px 0; border-radius:6px;
  background:var(--soft); font-size:0.6875rem; font-weight:800; color:#3f5548; }
.pill-fail{ background:#fdecea; color:#a3312a; }
.wh-actions{ white-space:nowrap; }
.wh-actions button{ font-size:0.6875rem; padding:6px 10px; margin-left:5px; }
.wh-form{ display:grid; grid-template-columns:1.6fr 1fr auto; gap:10px; padding:16px 18px; }
.wh-form input{ padding:10px 12px; border:1px solid var(--line); border-radius:9px; font-size:0.7813rem; }
.wh-form button{ padding:10px 18px; font-size:0.7813rem; }
.admin-table tr.wh-bad td{ background:rgba(214,92,79,.05); }
@media(max-width:900px){ .wh-form{ grid-template-columns:1fr; } }

/* ===========================================================================
   Admin-kontrollrum (punkt 8)
   =========================================================================== */
.control-room{ margin-bottom:22px; padding:24px 26px; border:1px solid var(--line);
  border-radius:18px; background:rgba(255,255,255,.86); box-shadow:var(--shadow); }
.cr-head{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; }
.control-room h2{ font:500 1.75rem Georgia,serif; letter-spacing:-.035em; margin:6px 0 0; }

.cr-tiles{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:20px 0 4px; }
.cr-tile{ position:relative; text-align:left; padding:15px 16px; border:1px solid var(--line);
  border-radius:13px; background:#fff; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease; }
.cr-tile:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.07); }
.cr-tile b{ display:block; font-size:0.8125rem; margin-bottom:3px; }
.cr-tile small{ display:block; color:var(--muted); font-size:0.6875rem; }
.cr-dot{ position:absolute; top:15px; right:15px; width:9px; height:9px; border-radius:50%; }
.cr-state{ display:block; margin-top:9px; font-size:0.6875rem; font-weight:900; letter-spacing:.05em; }
.cr-ok .cr-dot{ background:#3f9c63 } .cr-ok .cr-state{ color:#2f7d52 }
.cr-info .cr-state{ color:#5b708a }
.cr-med .cr-dot{ background:#dba23a } .cr-med .cr-state{ color:#9a6a1c }
.cr-med{ border-color:#efdcb5; background:#fffdf7 }
.cr-high .cr-dot{ background:var(--red) } .cr-high .cr-state{ color:var(--red) }
.cr-high{ border-color:#e8cdc9; background:#fdf7f6 }

.cr-attention{ margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.cr-alerts{ list-style:none; margin:10px 0 0; padding:0; display:grid; gap:7px; }
.cr-alerts button{ width:100%; text-align:left; padding:12px 14px; border:1px solid var(--line);
  border-radius:11px; background:#fff; cursor:pointer; font-size:0.7813rem; line-height:1.5; color:var(--ink); }
.cr-alerts button:hover{ border-color:#c8d4cb; }
.cr-alerts b{ display:inline-block; min-width:88px; font-size:0.6875rem; letter-spacing:.02em; color:#54635a; }
.cr-a-high button{ border-left:3px solid var(--red); }
.cr-a-med button{ border-left:3px solid #dba23a; }
.cr-a-info button{ border-left:3px solid #b9c4bb; }
.cr-clear{ margin:10px 0 0; padding:14px 16px; border-radius:11px; background:#eef8f0;
  color:#1f6b40; font-size:0.7813rem; font-weight:700; }

.cr-flash{ animation:crFlash 1.4s ease; }
@keyframes crFlash{ 0%,100%{ box-shadow:var(--shadow) } 25%{ box-shadow:0 0 0 3px rgba(219,162,58,.5) } }

@media(max-width:1000px){ .cr-tiles{ grid-template-columns:repeat(2,1fr) } }
@media(max-width:560px){ .cr-tiles{ grid-template-columns:1fr } }

/* ===========================================================================
   Loggan som väg hem
   ===========================================================================
   Först fanns en separat "Hem"-knapp bredvid loggan. Två element sida vid sida
   som gjorde exakt samma sak – loggan har alltid varit en länk till startsidan.
   Knappen är borta; i stället får loggan en affordans som gör att den läses som
   klickbar, plus ett tillgängligt namn så att skärmläsare säger "till
   startsidan" i stället för att stava R-I-S-K-S-I-G-N-A-L. */
.brand{
  padding:6px 10px; margin-left:-10px; border-radius:12px;
  transition:background .15s ease, transform .15s ease;
}
.brand:hover{ background:rgba(23,61,40,.06); }
.brand:hover .brand-mark{ transform:rotate(-4deg) scale(1.04); }
.brand:active{ transform:translateY(1px); }
.brand:focus-visible{ outline:2px solid var(--forest); outline-offset:2px; }
.brand-mark{ transition:transform .2s cubic-bezier(.2,.7,.3,1); }

/* Rubrikrad för sidor som tidigare saknade en (underlaget och Kreditpuls) */
.page-head{ display:flex; align-items:center; gap:14px; padding:22px 0 4px; }

/* Ska aldrig följa med i en utskrift eller PDF. */
@media print{ .page-head{ display:none !important; } }

@media(max-width:560px){ .page-head{ padding:16px 0 2px; } }

/* ===========================================================================
   Rörelse i fällbara paneler och menyer
   ===========================================================================
   Höjdanimationen sköts av motion.js — den delen går inte att göra i CSS,
   eftersom "auto" inte kan interpoleras. Här ligger det som CSS klarar bättre:
   plustecknet som vrids, innehållet som tonar in, och menyerna som glider ut. */

/* Plustecknet blir ett kryss när panelen är öppen. Samma varaktighet som
   höjdrörelsen, så att de två läser som en enda rörelse. */
summary > span:last-child:not(.pill){
  display:inline-block;
  transition:transform .26s cubic-bezier(.2,.7,.3,1), color .26s ease;
}
details[open] > summary > span:last-child:not(.pill){
  transform:rotate(45deg);
  color:var(--forest);
}

/* Innehållet tonar in och skjuts upp någon enstaka pixel medan panelen växer.
   Utan detta ser texten ut att stå still medan ramen rör sig runt den. */
details[open] > .details-body,
details[open] > p,
details[open] > .model-changes{
  animation:panelReveal .3s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes panelReveal{
  from{ opacity:0; transform:translateY(-4px); }
  to{ opacity:1; transform:none; }
}

/* Sammanfattningsraden markerar att den går att fälla ut. */
summary{ transition:background .15s ease; border-radius:12px; }
summary:hover{ background:rgba(23,61,40,.035); }
details[open] > summary{ border-radius:12px 12px 0 0; }

/* Profilmeny och notispanel glider ut nedåt när de öppnas. De styrs av
   hidden-attributet, så entrén är det som går att animera; stängningen är
   omedelbar och behöver inte vara något annat. */
.profile-menu:not([hidden]),
.notif-panel:not([hidden]){
  animation:menuDrop .2s cubic-bezier(.2,.7,.3,1) both;
  transform-origin:top right;
}
@keyframes menuDrop{
  from{ opacity:0; transform:translateY(-8px) scale(.97); }
  to{ opacity:1; transform:none; }
}

/* Den som bett om mindre rörelse ska slippa all den här. */
@media (prefers-reduced-motion: reduce){
  summary > span:last-child:not(.pill),
  details[open] > .details-body,
  details[open] > p,
  details[open] > .model-changes,
  .profile-menu:not([hidden]),
  .notif-panel:not([hidden]){
    animation:none !important;
    transition:none !important;
  }
}

/* Ingen rörelse i utskrift. */
@media print{
  details[open] > .details-body{ animation:none !important; }
}

/* Klassificeringsregler */
.rule-grid{ display:grid; gap:2px; }
.rule-group{ padding:18px; border-top:1px solid var(--line); }
.rule-group:first-child{ border-top:0; }
.rule-help{ margin:4px 0 12px; font-size:0.7188rem; line-height:1.55; max-width:640px; }
.rule-tags{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; min-height:26px; align-items:center; }
.rule-tag{ display:inline-flex; align-items:center; gap:6px; padding:5px 8px 5px 11px;
  border-radius:999px; background:var(--soft); font-size:0.7188rem; font-weight:800; color:#2c5240; }
.rule-tag button{ border:0; background:rgba(0,0,0,.08); border-radius:50%; width:16px; height:16px;
  line-height:1; cursor:pointer; font-size:0.6875rem; color:#2c5240; padding:0; }
.rule-tag button:hover{ background:var(--red); color:#fff; }
.rule-add{ display:flex; gap:8px; max-width:420px; }
.rule-add input{ flex:1; padding:9px 12px; border:1px solid var(--line); border-radius:9px; font-size:0.7813rem; }
.rule-add button{ font-size:0.75rem; padding:9px 14px; }

/* Månadsrader som satte nivån i bedömningen.
   Tabellen visar upp till tolv månader medan nivån vilar på de senaste sex.
   Utan markering går skillnaden inte att se utan att räkna rader. */
.history table tr.sets-level td{background:#f6faf7;font-weight:600}
.history table tr.sets-level td:first-child{box-shadow:inset 3px 0 0 var(--forest)}

/* Återkommande inbetalningar som inte räknats som inkomst. Dämpad ton: det är
   en upplysning att kontrollera, inte en varning om något fel. */
.uncounted{margin-top:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#fbfaf6}
.uncounted>b{display:block;font-size:0.75rem}
.uncounted ul{margin:9px 0 0;padding-left:18px;color:#516158;font-size:0.6875rem;line-height:1.6}
.uncounted p{margin:9px 0 0;color:var(--muted);font-size:0.6875rem;line-height:1.5}

/* Rörelsebilden för en enskild firma. Samma dämpade ton som den oräknade
   inkomsten: en förklaring att läsa, inte en varning. */
.business{margin-top:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#f7faf8}
.business>b{display:block;font-size:0.75rem}
.business ul{margin:9px 0 0;padding-left:18px;color:#516158;font-size:0.6875rem;line-height:1.7}
.business .grund{color:var(--muted);font-size:0.7188rem;display:block}
.business .metric-detail{margin-top:11px}
.business p{margin:9px 0 0;color:var(--muted);font-size:0.6875rem;line-height:1.5}

/* Underrad i listorna över inkomstkällor: totalsumma och antal månader, så att
   snittet går att förstå utan att öppna diagnostiken. */
.uncounted .grund{display:block;color:var(--muted);font-size:0.7188rem;margin-top:1px}

/* Underrad i månadstabellen: nettot efter avräkning, och markering av
   ofullständiga kantmånader som inte ingår i nivån. */
.history table .netto{display:block;color:var(--muted);font-size:0.7188rem;font-weight:400;margin-top:1px}
.history table tr.partial td{color:var(--muted)}

/* ---------------------------------------------------------------------------
   Adminsidan: meny till vänster, en avdelning i taget till höger.
   --------------------------------------------------------------------------- */
.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
.admin-nav{position:sticky;top:16px;padding:14px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.an-group{margin:0 0 14px}
.an-group:last-child{margin-bottom:0}
.an-group .mini{padding:0 10px 6px;color:#5f6d63}
.an-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;background:transparent;
  padding:9px 10px;border-radius:8px;color:#4d5d52;font-size:0.75rem;font-weight:720;text-align:left}
.an-item:hover{background:#f1f6f2;color:var(--forest)}
.an-item.active{background:#e6f1e8;color:var(--forest);font-weight:850}
.an-badge{min-width:20px;padding:2px 6px;border-radius:999px;font-size:0.7188rem;font-weight:850;text-align:center;background:#eef2ef;color:#5d6b62}
.an-badge.an-high{background:#fbe3e0;color:#9a3a30}
.an-badge.an-med{background:#fff0d6;color:#8a5d17}
.admin-content{min-width:0}
.admin-section .table-card:first-child,.admin-section .control-room:first-child{margin-top:0}
@media(max-width:900px){
  .admin-layout{grid-template-columns:1fr}
  .admin-nav{position:static;display:flex;gap:4px;overflow-x:auto;padding:8px}
  .an-group{display:contents}
  .an-group .mini{display:none}
  .an-item{width:auto;white-space:nowrap}
}

/* Samlad poäng: kassaflödespoängen står under den samlade, i mindre format. */
.score-block.score-secondary{padding:16px 22px}
.score-block.score-secondary .score-big{font-size:2.75rem;margin:6px 0 2px}
.score-block.score-secondary .score-big small{font-size:0.9375rem}
.score-block.score-secondary .score-label{font-size:0.8125rem}

/* Kreditupplysningens korskontroller i fördjupningen. */
.bureau-checks{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.bureau-checks li{padding:10px 12px;border-radius:10px;background:#fff7e8;border:1px solid #efdcb5;font-size:0.8125rem;line-height:1.45;color:#5b4a26}
.policy-note{margin-top:10px;font-size:0.75rem;color:#5f6d63}

/* Analyssidans flikar. Raden följer med när man skrollar, så att man alltid
   kan byta avsnitt utan att leta sig tillbaka upp. */
.review-tabs{position:sticky;top:0;z-index:20;display:flex;gap:4px;margin:22px 0 4px;padding:6px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);backdrop-filter:blur(8px);overflow-x:auto}
.review-tab{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:10px 14px;border-radius:9px;color:#4d5d52;font-size:0.75rem;font-weight:760;white-space:nowrap}
.review-tab:hover{background:#f1f7f2;color:var(--forest)}
.review-tab.active{background:#e6f1e8;color:var(--forest);font-weight:850}
.rt-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:0.7188rem;font-weight:850}
.rt-badge.rt-warn{background:#fff0d6;color:#8a5d17}
.rt-badge.rt-bad{background:#fbe3e0;color:#9a3a30}
.tab-panel[hidden]{display:none!important}
.tab-section{margin-top:22px}
.tab-title{font:500 1.875rem Georgia,serif;letter-spacing:-.03em;margin:6px 0 12px}
.tab-title.tone-bad{color:#9a3a30}
.tab-sub{font-size:1rem;margin:28px 0 4px}
.deep.deep-tab{margin-top:14px}
.tab-section .decision-card{margin-top:12px}
@media print{.review-tabs{display:none!important}}

/* Översikten som ett jämnt rutnät: vänsterkolumnen och högerkolumnen slutar
   på samma höjd. Den sista rutan i varje kolumn tar upp det som blir över,
   så att det aldrig står ett tomrum under den kortare kolumnen. */
@media(min-width:981px){
  .tab-panel[data-flik="oversikt"] .review-split{align-items:stretch}
  .tab-panel[data-flik="oversikt"] .review-left{display:flex;flex-direction:column}
  .tab-panel[data-flik="oversikt"] .review-left > :last-child{flex:1 1 auto}
  .tab-panel[data-flik="oversikt"] .review-left > .kpi-grid:last-child{flex:0 0 auto}
  .tab-panel[data-flik="oversikt"] .score-rail{align-self:stretch;display:flex;flex-direction:column;gap:14px}
  .tab-panel[data-flik="oversikt"] .score-rail > :last-child{flex:1 1 auto}
}
/* Brytpunkten i vänsterkolumnen: samma innehåll, mindre format. */
.review-left .afford{grid-template-columns:1fr auto;gap:16px;margin-top:14px;padding:18px 20px;align-content:start}
.review-left .afford h2{font-size:1.375rem;margin:5px 0 8px}
.review-left .afford-lead{font-size:0.7813rem;line-height:1.5}
.review-left .afford-figure{padding:14px 16px;min-width:150px}
.review-left .afford-value{font-size:1.625rem}
.review-left .afford-note{font-size:0.6875rem}
/* Signaler och kontrollpunkter följer samma kolumner som raden ovanför,
   så att kanterna ligger i linje hela vägen ner. */
@media(min-width:981px){
}
/* Signaler och kontrollpunkter som enskilda rutor i kolumnerna. */
.insights.insights-single{display:grid;grid-template-columns:1fr !important;margin-top:14px;gap:0}
.insights.insights-single > article{height:100%}
.review-left .afford{flex:0 0 auto}
.score-rail > .insights.insights-single{margin-top:0}

/* Informationsmenyn för besökare på startsidan och informationssidorna. */
.public-nav{display:flex;align-items:center;gap:4px;margin-left:auto;margin-right:12px}
.public-nav[hidden]{display:none}
.public-nav a{padding:9px 12px;border-radius:9px;color:#4d5d52;font-size:0.7813rem;font-weight:760;text-decoration:none;white-space:nowrap}
.public-nav a:hover,.public-nav a.active{background:#eaf3eb;color:var(--forest)}
.public-nav a.pn-cta{background:var(--forest);color:#fff;margin-left:4px}
.public-nav a.pn-cta:hover{background:var(--forest2)}
@media(max-width:900px){.public-nav{order:3;width:100%;margin:0;overflow-x:auto;padding-bottom:6px}.header:has(.public-nav:not([hidden])){flex-wrap:wrap;height:auto;padding:14px 0}}

/* Informationssidorna. */
.info-main{padding-top:10px}
.info-layout{margin-top:14px}
.info-card{padding:24px 26px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.86);box-shadow:var(--shadow);margin-bottom:14px}
.info-card h3{margin:0 0 8px;font-size:1rem}
.info-card p{color:#55645a;font-size:0.8125rem;line-height:1.6;margin:0 0 10px}
.info-title{font:500 clamp(1.875rem,3.4vw,2.625rem)/1.05 Georgia,serif;letter-spacing:-.04em;margin:8px 0 12px}
.info-lead{font-size:0.9063rem !important;color:#46564c !important;max-width:720px}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:14px}
.info-grid .info-card{margin-bottom:0}
.info-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.info-cta .cta-row{display:flex;gap:8px}
.faq-search{width:100%;margin-top:6px;padding:12px 14px;border:1px solid #cbdccf;border-radius:10px;font-size:0.8125rem}
.faq-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.faq-chips .chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:0.75rem;font-weight:760;color:#4d5d52}
.faq-chips .chip.active{background:#e6f1e8;border-color:#cfe3d4;color:var(--forest)}
.faq-kat{margin-bottom:18px}
.faq-kat-title{font-size:0.8125rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--forest);margin:6px 2px 6px}
.faq-item summary b{font-size:0.8438rem}
.faq-item .details-body p{margin:0;color:#55645a;font-size:0.8125rem;line-height:1.65}
.info-form{margin-top:10px}
.info-form label{display:block;margin-top:14px;font-size:0.6875rem;font-weight:850}
.info-form input,.info-form select,.info-form textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid #cbdccf;border-radius:9px;background:#fff;font:inherit;font-size:0.8125rem}
.info-form .field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.info-form .info-check{display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:0.75rem;line-height:1.5;color:#55645a}
.info-form .info-check input{width:auto;margin-top:2px}
.info-form button{margin-top:16px}
.info-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.info-thanks{text-align:center;padding:26px 10px}
.info-thanks p{max-width:460px;margin:8px auto 0}
@media(max-width:900px){.info-layout{grid-template-columns:1fr}.info-form .field-pair{grid-template-columns:1fr}}
/* Admin: ansökningar och kontakt. */
#sec-inquiries .inq-msg{display:block;margin-top:6px;color:#55645a;white-space:normal;max-width:520px;line-height:1.45}
#sec-inquiries .inq-status{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:0.6875rem}
#sec-inquiries .inq-actions{white-space:nowrap;text-align:right}
#sec-inquiries .inq-actions .small-btn{padding:6px 11px;font-size:0.6875rem;margin-left:6px}
#sec-inquiries .inq-actions .inq-delete{color:#9a3a30}
#sec-inquiries .admin-foot{margin:0;padding:12px 16px 14px;border-top:1px solid var(--line);font-size:0.6875rem;line-height:1.5}
.inq-invite{margin:12px 16px;padding:14px;border:1px solid #cfe3d4;border-radius:12px;background:#eef7f0;font-size:0.75rem}

/* Länkar i löptext på informations- och inloggningssidorna följer
   varumärkets gröna färg i stället för webbläsarens blå. */
.auth-hint a,.info-main p a:not(.primary):not(.secondary),.info-main .faq-a a{color:#12593a;font-weight:700;text-decoration-thickness:1px;text-underline-offset:2px}
.auth-hint a:hover,.info-main p a:not(.primary):not(.secondary):hover{color:#0b3d27}

/* --- Varför nu: fyra lika stora kort med en siffra, ett argument och en källa.
   Källraden trycks ner till botten så att raderna ligger i linje. --- */
.shift-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; align-items:stretch; }
.shift-card{
  display:flex; flex-direction:column; padding:22px 22px 18px; border-radius:18px;
  /* Delraderna (siffra, etikett, rubrik, text, källa) delas med grannkorten,
     så att skiljelinjer och rubriker ligger på exakt samma höjd. */
  display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:0;
  background:#fff; border:1px solid var(--line);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease;
}
.shift-card:hover{ transform:translateY(-4px); border-color:#bcd7c4; box-shadow:0 18px 40px rgba(20,60,40,.10); }
.shift-num{ display:block; font:500 2.375rem/1 Georgia,serif; letter-spacing:-.045em; color:var(--forest); white-space:nowrap; }
.shift-label{ display:block; margin:8px 0 14px; padding-bottom:14px; border-bottom:1px solid var(--line);
  color:#607167; font-size:0.7188rem; font-weight:700; line-height:1.35; }
.shift-card h3{ margin:0 0 8px; font-size:1rem; }
.shift-card p{ margin:0 0 14px; font-size:0.8125rem; line-height:1.6; color:#4a5a50; }
.shift-src{ align-self:end; color:#5f6d63; font-size:0.75rem; line-height:1.4; }
.shift-src a{ color:#355345; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.shift-note{ max-width:66ch; margin:26px auto 0; color:#4a5a50; font-size:0.875rem; line-height:1.6; }
@media (max-width:1100px){ .shift-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .shift-grid{ grid-template-columns:1fr; } .shift-num{ font-size:2.125rem; } }
@media (prefers-reduced-motion:reduce){ .shift-card:hover{ transform:none; } }

/* Lagringsrutan: noteringarna får samma inre marginal som resten av kortet. */
#sec-storage > .admin-foot{ margin:0; padding:12px 18px; font-size:0.75rem; line-height:1.55; }
#sec-storage > .admin-foot:not(.warn-note){ color:#4a5a50; }

/* Valideringsstatus under poängen. Fast text, ingen hovring: den ska läsas
   samtidigt som siffran. */
.score-validation{ display:inline-block; max-width:100%; margin:10px 6px 0 0; padding:5px 10px;
  border-radius:999px; border:1px dashed #b9c7bd; color:#55645a; background:rgba(255,255,255,.55);
  font-size:0.75rem; font-weight:800; letter-spacing:.01em; }
.score-validation.ok{ border-style:solid; border-color:#bde1c5; color:#1d5e37; }
.score-validation.warn{ border-color:#e7cf9c; color:#7a5b23; background:#fff8ea; }
@media print{
  .pd-validation{ margin-top:4pt !important; font-size:7.5pt !important; color:#5f6d63 !important; }
  .pd-validation b{ display:inline !important; font-family:inherit !important; font-size:7.5pt !important; font-weight:700 !important; line-height:1.4 !important; letter-spacing:0 !important; margin:0 !important; }
}
.detail-score .detail-validation{ display:block; margin-top:5px; color:#6b7a70; font-size:0.7188rem; font-weight:700; }

/* Företagsvyn: hantera konton och inbjudningar. Avstängda konton tonas ned
   men står kvar, så att det syns vem som haft åtkomst. */
.user-actions{ text-align:right; white-space:nowrap; }
.small-btn.danger-btn{ color:var(--red); border-color:#e6c3bf; }
.small-btn.danger-btn:hover{ background:#fdf3f2; }
.role-select{ padding:6px 8px; border:1px solid #cfdcd2; border-radius:8px; background:#fff;
  font:inherit; font-size:0.7813rem; color:var(--ink); }
.role-select:focus{ outline:2px solid var(--forest); outline-offset:1px; }
tr.user-disabled td{ color:var(--muted); }
tr.user-disabled .avatar{ opacity:.45; }
.disabled-tag{ color:var(--red); font-weight:700; }
#openInvites .table-card{ margin-bottom:16px; }

/* Företagsvyn: flikar, användning och arbetsläge per handläggare. */
.company-tabs{ margin:28px 0 0; }
.company-panel > .heading-row:first-child{ margin-top:28px; }
.usage-card{ margin:0 0 16px; }
.usage-row{ display:grid; grid-template-columns:1fr auto 110px; gap:16px; align-items:baseline;
  padding:9px 0; border-bottom:1px solid #eef3ee; font-size:0.8125rem; }
.usage-row:last-of-type{ border-bottom:0; }
.usage-row b{ text-align:right; }
.usage-calc{ color:var(--muted); font-size:0.75rem; }
.usage-total{ border-top:1px solid var(--line); border-bottom:0; margin-top:4px; padding-top:12px; }
.count-pill{ display:inline-block; min-width:24px; padding:2px 8px; border-radius:999px; text-align:center;
  font-size:0.75rem; font-weight:800; }
.count-pill.warn{ background:var(--warn); color:var(--warnink); }
.deviation-cell small{ display:block; color:var(--muted); font-size:0.6875rem; margin-top:2px; }

/* Revisionsloggen: filter och sidbläddring. */
.audit-filters{ display:grid; grid-template-columns:repeat(4,minmax(140px,1fr)) auto; gap:10px 12px; align-items:end;
  margin:0 0 14px; padding:14px 16px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.audit-filters label{ display:flex; flex-direction:column; gap:5px; font-size:0.7188rem; font-weight:800; color:#3a4a40; }
.audit-filters select,.audit-filters input{ padding:8px 10px; border:1px solid #cfdcd2; border-radius:9px;
  background:#fff; font:inherit; font-size:0.8125rem; color:var(--ink); }
.audit-filters select:focus,.audit-filters input:focus{ outline:2px solid var(--forest); outline-offset:1px; }
.audit-filter-actions{ display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.audit-filter-actions .secondary{ padding:9px 14px; }
.audit-pager{ border-top:0; padding:12px 2px 0; }
@media (max-width:900px){ .audit-filters{ grid-template-columns:1fr 1fr; } .audit-filter-actions{ grid-column:1 / -1; justify-content:flex-start; } }

/* Kreditpolicy: fel visas vid fältet. */
.field-error,.policy-form label small.field-error{ display:block; min-height:0; margin:5px 0 0; color:var(--red); font-size:0.7188rem; font-weight:700; }
.field-error:empty{ display:none; }
.pf-input input.invalid{ border-color:var(--red); background:#fffafa; }
.primary:disabled{ opacity:.5; cursor:not-allowed; }

/* Juridiska sidor och sidfot. */
.legal h2{ font-size:1rem; margin:22px 0 8px; }
.legal ul{ margin:8px 0 0; padding-left:20px; font-size:0.8125rem; line-height:1.6; color:#55645a; }
.legal-updated{ font-size:0.75rem !important; color:var(--muted) !important; }
.legal-table{ margin:10px 0 4px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.legal-row{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:14px; padding:11px 14px; border-top:1px solid var(--line); font-size:0.8125rem; line-height:1.5; }
.legal-row:first-child{ border-top:0; }
.legal-row.legal-2{ grid-template-columns:200px 1fr; }
.legal-head{ background:#f5f8f4; font-size:0.7188rem; font-weight:800; color:#3a4a40; }
.site-footer{ margin-top:40px; padding:24px 0 30px; border-top:1px solid var(--line); background:#fff; font-size:0.7813rem; color:#55645a; }
.site-footer-inner{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.site-footer-company{ display:flex; flex-direction:column; gap:3px; }
.site-footer-links{ display:flex; gap:16px; flex-wrap:wrap; align-items:flex-start; }
.site-footer a{ color:#12593a; }
@media(max-width:700px){ .legal-row{ grid-template-columns:1fr; gap:4px; } .legal-head{ display:none; } }

/* ---------------------------------------------------------------------------
   Läsbarhet och klickytor (designgranskning mot Apples riktlinjer)
   Minsta text 11 px, minsta klickyta 24 px (28 px på pekskärm), och ett
   sidhuvud som ryms på en mobil när man är inloggad.
--------------------------------------------------------------------------- */
th,.table-card th,.audit-table th{ font-size:0.7188rem; }
.status,.decision-pill,.tag,.pulse-badge,.mon-badge,.audit-pill{ font-size:0.7188rem; }
.small-btn{ font-size:0.7813rem; min-height:32px; padding:7px 11px; }
.rule-tag button{ width:24px; height:24px; font-size:0.8125rem; position:relative; }
/* Klickytan blir 32 px utan att taggen växer. */
.rule-tag button::after{ content:""; position:absolute; inset:-4px; }
@media (pointer:coarse){
  .small-btn,.chip,.pager-buttons button,.notif-readall,.link-btn,.mini-link{ min-height:40px; }
  .detail-toggle{ width:40px; height:40px; }
}
@media (max-width:560px){
  .profile-meta{ display:none; }
  .profile-btn{ padding:4px; }
  .header{ gap:10px; }
  .header nav{ min-width:0; flex:1 1 auto; overflow-x:auto; scrollbar-width:none; }
  .header nav::-webkit-scrollbar{ display:none; }
  .header .tab{ white-space:nowrap; }
  .brand small{ display:none; }
}
/* Den lilla enheten efter en stor siffra ("/100", "kr/mån") ärvde siffrans
   kraftigt negativa bokstavsavstånd (−5,5 px) och trycktes ihop. */
.score-big small,.example-choice .ex-score small,.hh-score small,.detail-score b small,.hero-score b small{ letter-spacing:0; }

/* Linjeikoner i knappar (ersätter emoji, som ser olika ut i olika system). */
.ic{ display:inline-block; flex:none; vertical-align:-0.15em; }
button .ic,a .ic{ margin-right:6px; }

/* Status bärs inte av färg ensam. Grönt är också varumärkets färg på
   knapparna, så positiv status får en bock och varningar ett utropstecken –
   samma tecken som i signallistorna. */
.status.done::before,.tag.ok::before,.decision-pill.good::before,.pulse-badge.good::before,
.mon-badge.good::before,.audit-pill.good::before{ content:"✓"; margin-right:4px; font-weight:900; }
.status.warn::before,.tag.risk::before,.decision-pill.warn::before,.pulse-badge.warn::before,
.mon-badge.warn::before,.audit-pill.warn::before{ content:"!"; margin-right:4px; font-weight:900; }
.decision-pill.bad::before,.pulse-badge.bad::before,.mon-badge.bad::before{ content:"✕"; margin-right:4px; font-weight:900; }

/* Fält och etiketter som tidigare hade färger i inline-stil, som mörkt läge
   inte når. Som klasser får de mörka motsvarigheter från dark.css. */
.field-select{ width:100%; margin-top:7px; padding:12px; border:1px solid #cbdccf; border-radius:9px; background:#fff; color:#153728; font:inherit; }
.snabb-input{ padding:10px; border:1px solid #cbdccf; border-radius:9px; background:#fff; color:#153728; font:inherit; }
.muted-inline{ color:#5f6d63; font-weight:500; }
.suggested-tag{ color:#12603c; font-size:.7188rem; font-weight:800; margin-left:4px; letter-spacing:.04em; }
.firm-help{ display:block; margin-top:4px; color:#5f6d63; font-size:.75rem; line-height:1.5; }

/* GENERERAD av tools/dark-css.js – ändra inte för hand, kör skriptet igen. */
@media screen and (prefers-color-scheme: dark){
:root{color-scheme:dark;--ink:#e6ece8;--muted:#c0cac3;--line:#2c3a31;--soft:#1c2a22;--warn:#2d2614;--warnink:#e6c98a;--red:#f0a59c;--paper:#121a16}
body{background:linear-gradient(135deg,#1d1e1b,#1e221f 55%,#1a1c19);color:#e1ece7}
.brand{color:#e1ece7}
.brand small{color:#c6cdc8}
.tab{color:#c4ccc8}
.tab.active,.tab:hover{background:#202421;color:#d8e6e0}
.eyebrow,.mini{color:#d8e6e0}
.hero h1 em{color:#c1cfc8}
.lead{color:#c6cdc8}
.chips span{color:#d0e1d8}
.secondary{border:1px solid #434c45;background:#161917;color:#d0e1d9}
.hero-card,.table-card,.detail-card,.form-card,.result-card,.doc,.api-box,.verify-card,.decision,.insights article{background:rgba(22,25,23,.82);border:1px solid #3e4740}
.hero-score{background:#202420}
.hero-score span,.hero-row span{color:#c4cdc8}
.hero-row{border-bottom:1px solid #3e4740}
.hint{color:#c4cbc6}
.integration-banner.ready{background:#1f241f;border:1px solid #405645;color:#d4e3da}
.integration-banner.missing{background:#252119;border:1px solid #5f5137;color:#ddd7cb}
.good{color:#ccdfd4}
.bad{color:#ddd6c9}
.metrics article{border:1px solid #3e4740;background:rgba(22,25,23,.75)}
.metrics span,.metrics small{color:#c4cbc6}
.heading-row p:not(.eyebrow){color:#c4cbc6}
.table-top{border-bottom:1px solid #3e4740}
.table-top small{color:#c4cbc6}
.table-top select{border:1px solid #3e4740;background:#161917;color:#cdd5cf}
th,td{border-bottom:1px solid #3a433b}
th{color:#c6cdc8}
td small{color:#c4cbc6}
.selected{background:#1c201d}
.status.done{background:#212621;color:#ccdfd4}
.status.pending{background:#202220;color:#cdd4d0}
.status.warn{background:#2a251c;color:#dfd9cd}
.small-btn{border:1px solid #444e46;background:#161917;color:#d1e2d8}
.empty-row{color:#c4cbc6}
.empty{color:#c4cbc6}
.detail-muted{color:#c4cbc6}
.detail-score{background:#202420}
.detail-score span{color:#c4d3ca}
.detail-grid div{border:1px solid #3e4740}
.detail-grid span{color:#c4cbc6}
.waiting{background:#1e201e;color:#cad2cd}
.failure{background:#211716;color:#d5c0be}
.form-card input,.verify-card input,.verify-card textarea{border:1px solid #434e46;background:#161616;color:#e1ece7}
.form-card small{color:#c4cbc6}
.optional{color:#c6cdc8}
.empty-mark{background:#1f2520;color:#d8e6e0}
.result-card>p{color:#c4cbc6}
.link-box{background:#1e211e;color:#cfddd5}
.api-box p:not(.eyebrow){color:#c4cbc6}
.secure{color:#c6cdc8}
.progress{border:1px solid #3e4740;background:#161616}
.progress div{color:#c6cdc8}
.progress span{background:#212321;color:#bbc2bd}
.progress .active{color:#d8e6e0}
.verify-copy>p{color:#c4cbc6}
.info-note{background:#1d211e;color:#c9d1cc}
.info-note b{color:#ceded5}
.form-error{color:#d2bab8}
.steps{border:1px solid #3e4740;background:#161a16;color:#cbd3ce}
.steps b{color:#d8e6df}
.complete>p{color:#c4cbc6}
.complete-grid div{border:1px solid #3e4740}
.complete-grid span{color:#c4cbc6}
.verify-error p,.review-error p{color:#c4cbc6}
.back{color:#c8d9cf}
.review-hero>div>p:not(.eyebrow){color:#c4cbc6}
.review-meta{color:#c7ceca}
.outcome.green{background:#1f241f}
.outcome.amber{background:#27231a}
.outcome-icon{background:#282e2a;color:#d0e1d8}
.outcome.amber .outcome-icon{background:#393426;color:#dfd9cd}
.outcome small{color:#c9d0cb}
.decision.green{background:#1d231e;border-color:#3b4e3e}
.decision.amber{background:#231f17;border-color:#5c5037}
.decision p:not(.eyebrow){color:#c8d0cb}
.positive-list,.warning-list,.limitations{color:#cbd4cf}
.positive-list li:before{color:#cfe0d6}
.warning-list li:before{color:#d8d0c3}
details{border:1px solid #3e4740;background:rgba(22,25,23,.82)}
summary small{color:#c4cbc6}
.details-body{border-top:1px solid #3e4740}
.metric-detail div{border:1px solid #3e4740}
.metric-detail span{color:#c4cbc6}
.history{border:1px solid #3e4740}
.muted-copy{color:#c4cbc6}
.callback-card{background:rgba(22,25,23,.84);border:1px solid #3e4740}
.callback-card p:not(.eyebrow){color:#c4cbc6}
.spinner{border:4px solid #3a483d}
.callback-code{border:1px solid #3e4740}
.review-top{border-bottom:1px solid #3e4740}
.review-headline{color:#cad2cd}
.kpi{border:1px solid #3e4740;background:rgba(22,25,23,.85)}
.kpi:before{background:#2e312f}
.kpi-label{color:#c8d1cc}
.kpi-value{color:#e1ece7}
.kpi-value .per{color:#c6cdc8}
.kpi.good .kpi-value{color:#d0e1d7}
.kpi.bad .kpi-value{color:#d9d1c4}
.kpi-sub{color:#c4cbc6}
.score-block{border:1px solid #3e4740}
.score-block.green{background:#1d231e;border-color:#3c4e40}
.score-block.amber{background:#231f17;border-color:#5c5037}
.score-eyebrow{color:#c8d6ce}
.score-big{color:#e1ece7}
.score-big small{color:#c6cdc8}
.score-label{color:#dae5de}
.score-ratio{background:rgba(22,25,23,.7);color:#cfddd5}
.score-meaning{color:#cad1cb}
.outcome-block{border:1px solid #3e4740}
.outcome-block.green{background:#1f241f;border-color:#3c4e40}
.outcome-block.amber{background:#27231a;border-color:#5c5037}
.outcome-block .outcome-icon{background:#282e2a;color:#d0e1d8}
.outcome-block.amber .outcome-icon{background:#393426;color:#dfd9cd}
.outcome-block b{color:#dae5de}
.outcome-block p{color:#c9d0ca}
.history table tr.risk td{background:#221c16}
.history table tr.ok td{background:#1a1e1a}
.tag.ok{background:#242925;color:#ccdfd4}
.tag.risk{background:#302921;color:#dfd9cd}
.details-body.rights h4{color:#dae5de}
.rights-disclaimer{background:#1c1e1c;color:#c7cec9}
.detail-toggle{border:1px solid #434c45;background:rgba(22,25,23,.9);color:#d0dfd6}
.detail-toggle:hover{background:#1e211f;border-color:#4f5e54}
.score-block .detail-toggle,.outcome-block .detail-toggle{background:rgba(22,25,23,.75)}
.kpi-pop-note{color:#cad2cd}
.kpi-pop-row{border-bottom:1px solid #363e36}
.kpi-pop-row span{color:#c4cbc6}
.kpi-pop-row b{color:#e1ece7}
.rail-pop-list li{color:#cbd4cf}
.rail-pop-list li.ok:before{color:#cfe0d6}
.rail-pop-list li.risk:before{color:#d8d0c3}
.detail-hero{background:#1d211e;border:1px solid #3c4c40}
.detail-hero b{color:#e1ece7}
.detail-hero span{color:#cad2cd}
.rights-link{border:1px solid #434c45;background:#161616;color:#d3e3db}
.rights-link:hover{background:#1d201e;border-color:#4f5e54}
.rights-modal{background:#161616}
.rights-modal-head{border-bottom:1px solid #3e4740;background:#1a1c19}
.rights-modal-head h2{color:#e1ece7}
.rights-close{border:1px solid #434c45;background:#161616;color:#d0dfd6}
.rights-close:hover{background:#1f221f;border-color:#4f5e54}
.rights-modal-body{color:#d3dcd6}
.rights-modal-body .rights-lead{color:#d7e2db;background:#1d211e;border:1px solid #3c4c40}
.rights-modal-body h3{color:#d4e4db}
.rights-loading{color:#c4cbc6}
.rights-modal-body .rights-disclaimer{background:#1c1e1c;color:#c7cec9}
.show-more{border-top:1px solid #3e4740;background:#1b1e1b;color:#d3e3db}
.show-more:hover{background:#202421}
.hero-score.green{background:#1d231e;border:1px solid #3c4e40}
.hero-score.amber{background:#231f17;border:1px solid #5c5037}
.hero-score.amber strong{color:#ddd7ca}
.minimised-banner{border:1px solid #534e3f;background:#22201a}
.minimised-banner b{color:#e0dccf}
.minimised-banner p{color:#d6cebf}
.decision-card{border:1px solid #3e4740;background:rgba(22,25,23,.85)}
.decision-row{border-bottom:1px solid #363e36}
.decision-row span{color:#c4cbc6}
.decision-row b{color:#e1ece7}
.login-link{color:#d3e3db;border:1px solid #434c45}
.login-link:hover{background:#1e211f}
.profile-btn{border:1px solid #3e4740;background:#161616}
.profile-btn:hover{border-color:#4f5e54;background:#191c19}
.profile-meta b{color:#e1ece7}
.profile-meta small{color:#c4cbc6}
.profile-menu{background:#161616;border:1px solid #3e4740}
.pm-head b{color:#e1ece7}
.pm-head small{color:#c4cbc6}
.pm-company{border-top:1px solid #3e4740;border-bottom:1px solid #3e4740;color:#c8d6ce;background:#1a1c19}
.pm-item{background:#161616;color:#d2b9b9}
.pm-item:hover{background:#201919}
.auth-card{background:#161616;border:1px solid #3e4740}
.auth-tabs{background:#1e201e}
.auth-tab{color:#c9d2cd}
.auth-tab.active{background:#161616;color:#e1ece7}
.auth-sub{color:#c4cbc6}
.auth-pane label{color:#d4ddd8}
.auth-pane input{border:1px solid #434c45}
.auth-hint{background:#1b1e1b;color:#cad2cd}
.stat-card{border:1px solid #3e4740;background:rgba(22,25,23,.85)}
.stat-card .big{color:#e1ece7}
.stat-card small{color:#c4cbc6}
.invite-box{border:1px solid #414d44;background:#1b1f1c}
.table-card{border:1px solid #3e4740;background:#161616}
.table-head{border-bottom:1px solid #3e4740}
.table-card th{color:#c4cbc6;border-bottom:1px solid #3e4740}
.table-card td{border-bottom:1px solid #363e36}
.table-card td b{color:#e1ece7}
.table-card td small{color:#c4cbc6}
.chip{border:1px solid #48554c;background:#161616;color:#d3e3db}
.chip:hover{background:#1f2420}
.mon-status.bad{background:#221a1a;border:1px solid #543c3c;color:#d9c3c3}
.mon-status.warn{background:#24211b;border:1px solid #5c533d;color:#ded8cc}
.mon-status.good{background:#1e231f;border:1px solid #3e5244;color:#cedfd4}
.mon-status.neutral{background:#202220;border:1px solid #424944;color:#cfd8d2}
.mon-deltas>div{border:1px solid #3e4740;background:#161616}
.mon-deltas span{color:#c4cbc6}
.mon-deltas .up{color:#cedfd4}
.mon-deltas .down{color:#d1bbb8}
.mon-flags li.bad{background:#221a1a}
.mon-flags li.warn{background:#24211b}
.mon-flags li.neutral{background:#202220}
.mon-actions{color:#d5ded9}
.rs-modal{background:#161616}
.rs-modal-head{border-bottom:1px solid #3e4740;background:#161616}
.rs-modal-close{border:1px solid #3e4740;background:#161616}
.rs-modal-body h4{color:#d3e3db}
.notice-hero{background:#202220}
.notice-hero.good{background:#1e231f;border:1px solid #3e5244}
.notice-hero.warn{background:#24211b;border:1px solid #5c533d}
.notice-hero p{color:#d5ded9}
.notice-list.good li{color:#cedfd4}
.notice-list.warn li{color:#ded8cc}
.notice-disclaimer{background:#1d1e1d;color:#c7cfca}
.mon-badge.bad{background:#221a1a;color:#d9c3c3}
.mon-badge.warn{background:#24211b;color:#ded8cc}
.mon-badge.good{background:#1e231f;color:#cedfd4}
.mon-badge.neutral{background:#202220;color:#cfd8d2}
.mini-link{color:#d3e3db}
.mon-card:hover{border-color:#4f5e54}
.mon-card-status.bad{color:#d9c3c3}
.mon-card-status.warn{color:#ded8cc}
.mon-card-status.good{color:#cedfd4}
.mon-card-status.neutral{color:#e1ece7}
.notice-actions-hint{color:#c4cbc6}
.notice-page{background:#202220}
.notice-toolbar{background:#161616;border-bottom:1px solid #3e4740}
.notice-sheet{background:#161616}
.notice-ref{color:#c4cbc6}
.notice-sheet h3{color:#d3e3db}
.notice-para{color:#d5ded9}
.notice-page .notice-hero{background:#202220}
.notice-page .notice-hero.good{background:#1e231f;border:1px solid #3e5244}
.notice-page .notice-hero.warn{background:#24211b;border:1px solid #5c533d}
.notice-page .notice-hero p{color:#d5ded9}
.admin-kpis .stat-card.accent{background:#1e231f;border-color:#3e5244}
.admin-table td small{color:#c4cbc6}
.admin-table .margin-pos{color:#cedfd4}
.price-row{border-bottom:1px solid #3e4740}
.price-svc small{color:#c4cbc6}
.price-row label{color:#c9d2cd}
.price-row input{border:1px solid #434c45}
.price-row label span{color:#c4cbc6}
.price-preview{background:#1a1d1a}
.price-preview span{color:#c4cbc6}
.price-preview .pp-margin b{color:#cedfd4}
.user-row{border-bottom:1px solid #3e4740}
.user-meta small{color:#c4cbc6}
.user-stats span{color:#c4cbc6}
.demo-bank-box{border:1px solid #414d44;background:#191c19}
.demo-bank-logo{background:#202421}
.demo-bank-box span{color:#c4cbc6}
.land-section{border-top:1px solid #3e4740}
.land-steps article{border:1px solid #3e4740;background:#161616}
.land-steps p{color:#ced7d1}
.land-example-card{border:1px solid #414d44;background:#191c19}
.land-example-card p{color:#ced7d1}
.land-cta p{color:#c4cbc6}
.example-choice{border:1px solid #3e4740;background:#161616;color:#e1ece7}
.example-choice small{color:#c4cbc6}
.example-choice.green{border-color:#3e5244}
.example-choice.green .ex-score{color:#ccdfd4}
.example-choice.green .ex-tag{background:#212621;color:#ccdfd4}
.example-choice.amber{border-color:#605439}
.example-choice.amber .ex-score{color:#dfd9cd}
.example-choice.amber .ex-tag{background:#2a251c;color:#dfd9cd}
.example-choice.red{border-color:#563f3c}
.example-choice.red .ex-score{color:#d2bab8}
.example-choice.red .ex-tag{background:#282120;color:#d2bab8}
.score-block.red{background:#221919;border-color:#543936}
.outcome-block.red{background:#221919;border-color:#543936}
.outcome-block.red .outcome-icon{background:#302625;color:#d2bab8}
.decision.red{background:#221919;border-color:#543936}
.outcome.red{background:#221919}
.outcome.red .outcome-icon{background:#302625;color:#d2bab8}
.bank-list li{border:1px solid var(--line, #3f443f);background:#161616}
.check-sm{background:#212622;color:#cbded0}
.hero-score.red{background:#221919;border:1px solid #543936}
.hero-score.red strong{color:#d2bab8}
.decision-trigger{border:1px dashed #48524b;background:#161a16}
.dt-label{color:#c4cbc6}
.dt-value{color:#e1ece7}
.dt-value em{color:#d2bab8;background:#231a19}
.dt-action{color:#d8e6e0}
.decision-trigger.set{background:#161616}
.decision-trigger.set.good{border-color:#3c4e40;background:#1a1e1b}
.decision-trigger.set.warn{border-color:#5c5037;background:#211d16}
.decision-trigger.set.bad{border-color:#543936;background:#1f1817}
.decision-summary{background:#161616;border:1px solid #3e4740}
.decision-summary.good{border-color:#3c4e40}
.decision-summary.warn{border-color:#5c5037}
.decision-summary.bad{border-color:#543936}
.ds-mark{background:#202220;color:#c4cbc6}
.decision-summary.good .ds-mark{background:#202522;color:#d0e1d7}
.decision-summary.warn .ds-mark{background:#312d23;color:#ddd6ca}
.decision-summary.bad .ds-mark{background:#231a19;color:#d2bab8}
.ds-eyebrow{color:#c4cbc6}
.ds-flag{background:#231a19;color:#d2bab8;border:1px solid #543633}
.ds-meta{color:#c4cbc6}
.ds-text span{color:#c4cbc6}
.decision-intro p{color:#d5ded9}
.decision-recommendation{background:#202420;border:1px solid #3e4740}
.decision-recommendation span{color:#c4cbc6}
.decision-form label{color:#d5ded9}
.decision-form .invalid textarea,
.decision-form textarea.invalid,
.decision-deviation textarea.invalid{border-color:#a4453d;background:#1c1313}
.field-count{color:#c4cbc6}
.field-count.short{color:#d2bab8}
.decision-form label small{color:#c4cbc6}
.decision-form select,
.decision-form input,
.decision-form textarea{border:1px solid #434c45;color:#e1ece7;background:#161616}
.decision-deviation{background:#27231a;border:1px solid #605439}
.decision-deviation p{color:#ddd6ca}
.decision-deviation textarea{border:1px solid #655a42}
.decision-error{background:#231a19;border:1px solid #543633;color:#d2bab8}
.list-controls{border-bottom:1px solid #3e4740}
.list-search{border:1px solid #434c45;background:#161616}
.list-controls select{border:1px solid #434c45;background:#161616;color:#d5ded9}
.pager{border-top:1px solid #3e4740}
.pager-info{color:#c4cbc6}
.pager-buttons button{border:1px solid #434c45;background:#161616;color:#d0e1d9}
.pager-page{color:#d5ded9}
.decision-pill.good{background:#202522;color:#d0e1d7}
.decision-pill.warn{background:#27231a;color:#ddd6ca}
.decision-pill.bad{background:#231a19;color:#d2bab8}
.decision-pill.none{background:#202220;color:#c4cbc6}
.notif-btn{border:1px solid #434c45;background:#161616;color:#d0dfd6}
.notif-badge{background:#a4453d;border:2px solid #333333}
.notif-panel{background:#161616;border:1px solid #3e4740}
.notif-head{border-bottom:1px solid #3e4740;background:#161a16}
.notif-readall{color:#d8e6e0}
.notif-readall:hover{background:#202420}
.notif-item{background:#161616;border-bottom:1px solid #363e38}
.notif-item:hover{background:#191c19}
.notif-item.unread{background:#1a1e1b}
.notif-item.sev-high{border-left-color:#a4453d}
.notif-item-title{color:#e1ece7}
.notif-item-body{color:#ced7d1}
.notif-item-time{color:#c4cbc6}
.notif-empty{color:#c4cbc6}
.portfolio-card{background:#161616;border:1px solid #3e4740}
.portfolio-main span{color:#c4cbc6}
.portfolio-track{background:linear-gradient(90deg,#332a29,#38342b,#2d342f)}
.portfolio-dot{border:2.5px solid #333333}
.portfolio-ends{color:#c4cbc6}
.detail-hero{background:#1e1f1e;border-color:#3e4640}
.detail-hero b{color:#e1ece7}
.detail-hero.good{background:#1d231e;border-color:#3c4e40}
.detail-hero.good b{color:#d0e1d7}
.detail-hero.warn{background:#231f17;border-color:#5c5037}
.detail-hero.warn b{color:#ddd6c9}
.detail-hero.bad{background:#221919;border-color:#543936}
.detail-hero.bad b{color:#d2bab8}
.rights-modal.tone-bad{border-top:3px solid #a4453d}
.invite-role{color:#d5ded9}
.invite-role select{border:1px solid #434c45;background:#161616}
.audit-table th{color:#c4cbc6;border-bottom:1px solid #3e4740}
.audit-table td{border-bottom:1px solid #363e38}
.audit-table td small{color:#c4cbc6}
.audit-when{color:#c4cbc6}
.audit-detail{color:#ced7d1}
.audit-pill{background:#202220;color:#ced7d1}
.audit-pill.good{background:#202522;color:#d0e1d7}
.audit-pill.warn{background:#27231a;color:#ddd6ca}
.link-btn{color:#d8e6e0}
.consent-panel{background:#161a16;border:1px solid #3e4740}
.consent-list li.get:before{color:#d8e6e0}
.consent-list li.give:before{color:#ddd6c9}
.consent-list li.choice:before{color:#d8e6e0}
.consent-list span{color:#ced7d1}
.decision-trigger.outcome.set.good{border-color:#3c4e40;background:#1a1e1b}
.decision-trigger.outcome.set.warn{border-color:#5c5037;background:#211d16}
.decision-trigger.outcome.set.bad{border-color:#543936;background:#1f1817}
.ds-outcome.good{color:#d0e1d7}
.ds-outcome.warn{color:#ddd6ca}
.ds-outcome.bad{color:#d2bab8}
.ds-outcome span{color:#c4cbc6}
.decision-pill.wait{background:#1d1f21;color:#c6cfd7}
.stat-card.flag{border-color:#5c5037;background:#211d16}
.policy-card{background:#211d16;border:1px solid #5c5037}
.policy-card .eyebrow{color:#ddd6ca}
.policy-card.policy-passed{background:#1a1f1b;border-color:#3b4b40}
.policy-card.policy-passed .eyebrow{color:#c8dcd0}
.policy-card li{color:#ced7d1}
.policy-note{color:#c4cbc6}
.approval-banner{background:#211d16;border:1px solid #5c5037}
.approval-banner.done{background:#1a1e1b;border-color:#3c4e40}
.approval-banner.rejected{background:#1f1817;border-color:#543936;border-left-color:#a4453d}
.approval-banner p{color:#ced7d1}
.approval-own{color:#c4cbc6}
.notes-card{background:#161616;border:1px solid #3e4740}
.notes-add textarea{border:1px solid #434c45}
.notes-list li{background:#161a16;border:1px solid #3e4740}
.notes-list span{color:#c4cbc6}
.notes-empty{color:#c4cbc6}
.policy-form{background:#161616;border:1px solid #3e4740}
.policy-form label{color:#d5ded9}
.policy-form label small{color:#c4cbc6}
.pf-input input{border:1px solid #434c45;background:#161616}
.pf-input i{color:#c4cbc6}
.policy-approval{border-top:1px solid #3e4740}
.subject-card{background:#161616;border:1px solid #3e4740}
.subject-card{background:#161616;border:1px solid #3e4740}
.subject-card > summary:hover{background:#161a16}
.sh-lead{color:#c4cbc6}
.sh-toggle{background:#202420}
.sh-intro{color:#c4cbc6}
.subject-list a{border:1px solid #3e4740;background:#161a16;color:#e1ece7}
.sh-score{color:#d8e6e0}
.sh-meta{color:#c4cbc6}
.subject-note{color:#c4cbc6}
.sub-change.up{color:#d0e1d7}
.sub-change.down{color:#d2bab8}
.mini-link.danger{color:#d2bab8}
.hero-score.red .ring-value{stroke:#a4453d}
.ring-center b{color:#e1ece7}
.hero-score.amber .ring-center b{color:#ddd6c9}
.hero-score.red .ring-center b{color:#d2bab8}
.ring-center i{color:#c4cdc8}
.score-text span{color:#c4cdc8}
.chips span{background:rgba(22,25,23,.7);border:1px solid #3e4740}
.land-intro{color:#c4cbc6}
.compare-card{border:1px solid #3e4740;background:#161616}
.compare-card.past{background:#161616;border-color:#3e4740}
.compare-card.now{border-color:#405246}
.compare-card.past .compare-tag{background:#202220;color:#ced7d1}
.compare-card.now .compare-tag{background:#202420;color:#d8e6e0}
.compare-card.past h3{color:#e1ece7}
.compare-card li{color:#d5ded9}
.compare-card.past li{color:#d5ded9}
.compare-note{color:#c4cbc6}
.compare-plus{background:#161616;border:1px solid #3e4740;color:#d8e6e0}
.combo{background:linear-gradient(135deg,#1d211e,#191d19);border:1px solid #405246}
.combo-eq{background:#161616;border:1px solid #405246;color:#d8e6e0}
.combo-points p{color:#d5ded9}
.f-bar{background:#232524}
.f-val{color:#c4cbc6}
.factors-note{color:#c4cbc6}
.land-steps article:hover{border-color:#46564b}
.feature{background:#161616;border:1px solid #3e4740}
.feature:hover{border-color:#46564b}
.f-icon{background:#202420;color:#d8e6e0}
.feature p{color:#ced7d1}
.segment{background:#161616;border:1px solid #3e4740}
.segment p{color:#ced7d1}
.wh-sub{color:#c4cbc6}
.wh-card{background:#161616;border:1px solid #3e4740;border-top:3px solid #434c45}
.wh-card:hover:not(:disabled){border-color:#46564b}
.wh-card b{color:#e1ece7}
.wh-sub-label{color:#c4cbc6}
.wh-card.accent b{color:#d8e6e0}
.wh-card.warn b{color:#ddd6c9}
.wh-card.alert{border-top-color:#a4453d}
.wh-card.alert b{color:#d2bab8}
.wh-card.zero{background:#181918;border-top-color:#3b423d}
.wh-card.zero b{color:#c6cdc8}
.wh-card.zero .wh-label{color:#c6cdc8}
.pulse-stat{background:#161616;border:1px solid #3e4740;border-top:3px solid #434c45}
.pulse-stat span{color:#c4cbc6}
.pulse-stat.bad{border-top-color:#a4453d}
.pulse-stat.bad b{color:#d2bab8}
.pulse-stat.warn b{color:#ddd6c9}
.pulse-stat.good b{color:#d8e6e0}
.pulse-scope{background:#202420;border:1px solid #3e4740;color:#d5ded9}
.pulse-card{background:#161616;border:1px solid #3e4740;border-left:3px solid #434c45}
.pulse-card.bad{border-left-color:#a4453d}
.pulse-card.off{border-left-color:#434743;background:#181918}
.pulse-sub{color:#c4cbc6}
.pulse-badge{background:#202220;color:#ced7d1}
.pulse-badge.bad{background:#231a19;color:#d2bab8}
.pulse-badge.warn{background:#27231a;color:#ddd6ca}
.pulse-badge.good{background:#202522;color:#d0e1d7}
.spark-dot{fill:#d8e6e0}
.spark.bad .spark-line,.spark.bad .spark-dot{stroke:#a4453d;fill:#d2bab8}
.spark.warn .spark-line,.spark.warn .spark-dot{fill:#cec6b2}
.spark-empty{background:#1b1c1b;border:1px dashed #3e4740;color:#c4cbc6}
.pulse-foot{border-top:1px solid #3e4740}
.pulse-income{color:#e1ece7}
.pulse-card.bad .pulse-income{color:#d2bab8}
.pulse-card.warn .pulse-income{color:#ddd6ca}
.pulse-card.good .pulse-income{color:#d0e1d7}
.pulse-card.off .pulse-income,.pulse-card.idle .pulse-income{color:#c4cbc6}
.pulse-card.bad b,.pulse-card.warn b,.pulse-card.good b{color:#e1ece7}
.pulse-pending{color:#c4cbc6}
.pulse-badge.idle{background:#1d1f21;color:#c0c9d0}
.pulse-card.idle{border-left-color:#474d52}
.pulse-delta.down{color:#d2bab8}
.pulse-delta.up{color:#d0e1d7}
.pulse-meta{color:#c4cbc6}
.pulse-recovered{color:#d0e1d7}
.pulse-until{color:#c4cbc6}
.pulse-empty{background:#161616;border:1px solid #3e4740}
.pulse-empty p{color:#c4cbc6}
.pulse-recovered-banner{background:#1e2420;border:1px solid #3c4e40;color:#d0e1d7}
.pulse-kpi{background:#161616;border:1px solid #3e4740;border-top:3px solid #434c45}
.pulse-kpi span{color:#c4cbc6}
.pulse-kpi small{color:#c4cbc6}
.pulse-kpi.bad{border-top-color:#a4453d}
.pulse-kpi.bad b{color:#d2bab8}
.pulse-kpi.warn b{color:#ddd6c9}
.pulse-kpi.good b{color:#d8e6e0}
.chart-card{background:#161616;border:1px solid #3e4740}
.chart-legend{color:#c4cbc6}
.ch-baseline-label{fill:#c1c6c1}
.ch-dot{fill:#d8e6e0}
.ch-label{fill:#637166}
.income-chart.bad .ch-line{stroke:#a4453d}
.income-chart.bad .ch-dot{fill:#d2bab8}
.income-chart.warn .ch-dot{fill:#cec6b2}
.chart-empty{background:#1b1c1b;border:1px dashed #3e4740;color:#c4cbc6}
.pulse-panel{background:#161616;border:1px solid #3e4740}
.pulse-flags li{background:#161a16;border:1px solid #3e4740;border-left:3px solid #434c45}
.pulse-flags li.sev-high{background:#1f1817;border-color:#543936;border-left-color:#a4453d}
.pulse-flags li.sev-medium{background:#211d16;border-color:#5c5037}
.pd-none{color:#c4cbc6}
.pulse-actions{border-top:1px solid #3e4740}
.pulse-actions li{color:#d5ded9}
.pulse-actions-note{color:#c4cbc6}
.check-list li{background:#161a16;border:1px solid #3e4740;border-left:3px solid #434c45}
.check-list li.bad{border-left-color:#a4453d}
.check-list span{color:#c4cbc6}
.pulse-scope-note{border-top:1px solid #3e4740;color:#c4cbc6}
.sub-head{border-top:1px solid #3e4740}
.warn-note{background:#27231a;color:#ddd6ca}
.pill-champion{background:#212621;color:#ccdfd4}
.pill-challenger{background:#1d2023;color:#c0c8d7}
.pill-retired{background:#202220;color:#c4cac5}
.dq-block{border-bottom:1px solid #3e4740}
.dq-block > small{color:#c4cbc6}
.dq-label{color:#cdd5cf}
.dq-track{background:#1f221f}
.dq-low{background:#a4453d}
.dq-val{color:#cdd5cf}
.model-changes{color:#cbd4cf}
.sc-track{background:#1f221f}
.sc-neg{background:#a4453d}
.sc-neg-text{color:#d2bab8}
.score-breakdown .sc-total td{border-top:1px solid #3e4740}
.afford{border:1px solid #3e4740;background:rgba(22,25,23,.82)}
.afford-action{background:#231f17;border-color:#5c5037}
.afford-ok{background:#1d231e;border-color:#3b4e3e}
.afford-block{background:#1f1817;border-color:#523e3b}
.afford-lead{color:#cad2cd}
.afford-lead b{color:#e1ece7}
.afford-note{color:#c4cbc6}
.afford-figure{background:rgba(22,25,23,.72)}
.afford-label{color:#c8d1cc}
.afford-value{color:#e1ece7}
.afford-value small{color:#c6cdc8}
.afford-action .afford-value{color:#d9d1c4}
.afford-ok .afford-value{color:#d0e1d7}
.afford-sub{color:#c4cbc6}
.afford-loans{background:rgba(22,25,23,.6)}
.household{border:1px solid #3e4740;background:rgba(22,25,23,.82)}
.hh-lead{color:#cad2cd}
.hh-window{background:#202420}
.hh-window-label{color:#c4d3ca}
.hh-window small{color:#c4cbc6}
.hh-share-label{color:#c8d1cc}
.hh-bar{background:#1f221f}
.hh-legend{color:#cad2cd}
.hh-warn{background:#27231a;color:#ddd6ca}
.hh-person{border:1px solid #3e4740;background:rgba(22,25,23,.72)}
.hh-person-top small{color:#c4cbc6}
.hh-score{color:#e1ece7}
.hh-score small{color:#c6cdc8}
.hh-thin b{color:#d2bab8}
.hh-meta{color:#c4cbc6}
.hh-flags{color:#dfd9cd}
.member-pulse li{border:1px solid #3e4740;background:rgba(22,25,23,.6)}
.member-pulse li.sev-high{border-color:#523e3b;background:#1f1817}
.member-pulse li.sev-medium{border-color:#5c5037;background:#231f17}
.member-pulse li.sev-good{border-color:#3b4e3e;background:#191f1a}
.mp-change.down{color:#d2bab8}
.mp-change.up{color:#d0e1d7}
.mp-figures{color:#c4cbc6}
.mp-figures b{color:#e1ece7}
.mp-thin{color:#d2bab8}
.pd-note{color:#c4cbc6}
.field-note{color:#c4cbc6}
.lt-step span{background:#292c2a;border:2px solid #333333}
.lt-step small{color:#c6cdc8}
.lt-step::before{background:#242624}
.lt-step.done small{color:#c6dbd0}
.lt-step.current small{color:#d9d1c4}
.lt-step.dead span{background:#a4453d;box-shadow:0 0 0 1px #a4453d}
.lt-step.dead small{color:#d2bab8}
.link-row{border-top:1px solid #3e4740}
.lr-meta{color:#c4cbc6}
.fn-label{color:#cdd5cf}
.fn-track{background:#1f221f}
.fn-fill.bad{background:#a4453d}
.fn-drop{background:#27231a;color:#ddd6ca}
.outbox-list li{border:1px solid #3e4740;background:rgba(22,25,23,.6)}
.ev-tag{background:#202420;color:#d0dcd5}
.pill-fail{background:#231a19;color:#d5bfbd}
.wh-form input{border:1px solid #3e4740}
.control-room{border:1px solid #3e4740;background:rgba(22,25,23,.86)}
.cr-tile{border:1px solid #3e4740;background:#161616}
.cr-tile small{color:#c4cbc6}
.cr-ok .cr-state{color:#c6dbd0}
.cr-info .cr-state{color:#b8c3d0}
.cr-med .cr-state{color:#d9d1c4}
.cr-med{border-color:#5c5037;background:#1e1b14}
.cr-high .cr-dot{background:#a4453d}
.cr-high .cr-state{color:#d2bab8}
.cr-high{border-color:#523e3b;background:#1d1717}
.cr-attention{border-top:1px solid #3e4740}
.cr-alerts button{border:1px solid #3e4740;background:#161616;color:#e1ece7}
.cr-alerts button:hover{border-color:#484f4a}
.cr-alerts b{color:#cad2cd}
.cr-a-high button{border-left:3px solid #a4453d}
.cr-a-info button{border-left:3px solid #505651}
.cr-clear{background:#1c211d;color:#d0e1d7}
details[open] > summary > span:last-child:not(.pill){color:#d8e6e0}
.rule-group{border-top:1px solid #3e4740}
.rule-tag{background:#202420;color:#d3e3db}
.rule-tag button{color:#d3e3db}
.rule-tag button:hover{background:#a4453d}
.rule-add input{border:1px solid #3e4740}
.history table tr.sets-level td{background:#191c1a}
.uncounted{border:1px solid #3e4740;background:#1d1c19}
.uncounted ul{color:#cbd4cf}
.uncounted p{color:#c4cbc6}
.business{border:1px solid #3e4740;background:#191c1a}
.business ul{color:#cbd4cf}
.business .grund{color:#c4cbc6}
.business p{color:#c4cbc6}
.uncounted .grund{color:#c4cbc6}
.history table .netto{color:#c4cbc6}
.history table tr.partial td{color:#c4cbc6}
.admin-nav{border:1px solid #3e4740;background:#161616}
.an-group .mini{color:#c6cdc8}
.an-item{color:#cdd5cf}
.an-item:hover{background:#1d201e;color:#d8e6e0}
.an-item.active{background:#222623;color:#d8e6e0}
.an-badge{background:#202220;color:#c7cec9}
.an-badge.an-high{background:#281f1d;color:#d6c0be}
.an-badge.an-med{background:#2c271e;color:#ddd5c9}
.bureau-checks li{background:#242018;border:1px solid #5c5037;color:#e2ddd2}
.policy-note{color:#c6cdc8}
.review-tabs{border:1px solid #3e4740;background:rgba(22,25,23,.94)}
.review-tab{color:#cdd5cf}
.review-tab:hover{background:#1c201d;color:#d8e6e0}
.review-tab.active{background:#222623;color:#d8e6e0}
.rt-badge.rt-warn{background:#2c271e;color:#ddd5c9}
.rt-badge.rt-bad{background:#281f1d;color:#d6c0be}
.tab-title.tone-bad{color:#d6c0be}
.public-nav a{color:#cdd5cf}
.public-nav a:hover,.public-nav a.active{background:#202421;color:#d8e6e0}
.info-card{border:1px solid #3e4740;background:rgba(22,25,23,.86)}
.info-card p{color:#cad2cc}
.info-lead{color:#d0d9d3 !important}
.faq-search{border:1px solid #434e46}
.faq-chips .chip{border:1px solid #3e4740;background:#161616;color:#cdd5cf}
.faq-chips .chip.active{background:#222623;border-color:#3f4d42;color:#d8e6e0}
.faq-kat-title{color:#d8e6e0}
.faq-item .details-body p{color:#cad2cc}
.info-form input,.info-form select,.info-form textarea{border:1px solid #434e46;background:#161616}
.info-form .info-check{color:#cad2cc}
#sec-inquiries .inq-msg{color:#cad2cc}
#sec-inquiries .inq-status{border:1px solid #3e4740;background:#161616}
#sec-inquiries .inq-actions .inq-delete{color:#d6c0be}
#sec-inquiries .admin-foot{border-top:1px solid #3e4740}
.inq-invite{border:1px solid #3f4d42;background:#1d211e}
.auth-hint a,.info-main p a:not(.primary):not(.secondary),.info-main .faq-a a{color:#d8e6e0}
.auth-hint a:hover,.info-main p a:not(.primary):not(.secondary):hover{color:#e2ece8}
.shift-card{background:#161616;border:1px solid #3e4740}
.shift-card:hover{border-color:#46564b}
.shift-num{color:#d8e6e0}
.shift-label{border-bottom:1px solid #3e4740;color:#c4cdc8}
.shift-card p{color:#ced7d1}
.shift-src{color:#c6cdc8}
.shift-src a{color:#d0e1d9}
.shift-note{color:#ced7d1}
#sec-storage > .admin-foot:not(.warn-note){color:#ced7d1}
.score-validation{border:1px dashed #4f5651;color:#cad2cc;background:rgba(22,25,23,.55)}
.score-validation.ok{border-color:#405645;color:#d4e3da}
.score-validation.warn{border-color:#66593e;color:#ddd7cb;background:#232018}
.detail-score .detail-validation{color:#c0c8c3}
.small-btn.danger-btn{color:#d2bab8;border-color:#563f3c}
.small-btn.danger-btn:hover{background:#1f1817}
.role-select{border:1px solid #434c45;background:#161616;color:#e1ece7}
tr.user-disabled td{color:#c4cbc6}
.disabled-tag{color:#d2bab8}
.usage-row{border-bottom:1px solid #363e36}
.usage-calc{color:#c4cbc6}
.usage-total{border-top:1px solid #3e4740}
.count-pill.warn{background:#27231a;color:#ddd6ca}
.deviation-cell small{color:#c4cbc6}
.audit-filters{background:#161616;border:1px solid #3e4740}
.audit-filters label{color:#d5ded9}
.audit-filters select,.audit-filters input{border:1px solid #434c45;background:#161616;color:#e1ece7}
.field-error,.policy-form label small.field-error{color:#d2bab8}
.pf-input input.invalid{border-color:#a4453d;background:#1c1313}
.legal ul{color:#cad2cc}
.legal-updated{color:#c4cbc6 !important}
.legal-table{border:1px solid #3e4740}
.legal-row{border-top:1px solid #3e4740}
.legal-head{background:#1c1e1b;color:#d5ded9}
.site-footer{border-top:1px solid #3e4740;background:#161616;color:#cad2cc}
.site-footer a{color:#d8e6e0}
.field-select{border:1px solid #434e46;background:#161616;color:#e1ece7}
.snabb-input{border:1px solid #434e46;background:#161616;color:#e1ece7}
.muted-inline{color:#c6cdc8}
.suggested-tag{color:#d6e5de}
.firm-help{color:#c6cdc8}
body,.notice-page{background:#0e1210}
.hero::before{background:radial-gradient(closest-side,rgba(46,150,96,.40),rgba(46,150,96,.15) 55%,rgba(46,150,96,0))}
.land-cta::before{background:radial-gradient(closest-side,rgba(46,150,96,.36),rgba(46,150,96,.13) 55%,rgba(46,150,96,0))}
}
@media screen and (prefers-contrast: more){
:root{--muted:#3e4b42;--line:#9fb0a4}
}
@media screen and (prefers-color-scheme: dark) and (prefers-contrast: more){
:root{--muted:#d2ddd5;--line:#5d6e62}
}

/* ============================================================================
   RiskSignal – ny startsida (utloggad besökare)
   ----------------------------------------------------------------------------
   Gäller bara #marketingHero, #landing och sidhuvud/sidfot när besökaren är
   utloggad (body:has(#publicNav:not([hidden]))). Inloggade vyer, analyssidan
   och kundflödet påverkas inte.

   Designbeslut (UI UX Pro Max + design-taste):
     • Lugnt "datainstrument": kall ljus botten, vita ytor, ett smaragdgrönt
       accentackord. Geist för text, Geist Mono för siffror och etiketter.
     • Formregel: kort 16–18 px, knappar 10 px, segmentkontroller och taggar
       helt rundade.
     • Rörelse 400–800 ms med mjuk inbromsning; inget som pockar på
       uppmärksamheten. Allt stängs av vid prefers-reduced-motion.
   Mörkt läge definieras längst ned i den här filen, inte av tools/dark-css.js.
   ============================================================================ */

@font-face{
  font-family:"Geist"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url(/fonts/geist.woff2) format("woff2-variations"), url(/fonts/geist.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Geist Mono"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url(/fonts/geist-mono.woff2) format("woff2-variations"), url(/fonts/geist-mono.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --lp-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --lp-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --lp-bg:#f4f6f4;
  --lp-surface:#ffffff;
  --lp-sunken:#eef1ee;
  --lp-ink:#0c1411;
  --lp-ink-2:#36423c;
  --lp-muted:#5b6862;
  --lp-line:#e1e6e2;
  --lp-line-2:#cdd5cf;
  --lp-accent:#0d7748;
  --lp-accent-ink:#095c37;
  --lp-accent-soft:#e3f3ea;
  --lp-signal:#17a865;
  --lp-accent-line:#a9dcc1;
  /* Statusfärger: orange och rött ska synas direkt. Text i -warn/-bad klarar
     4,5:1 mot vitt och mot sin mjuka bakgrund; -fill är för ringar och staplar. */
  --lp-warn:#b45309;
  --lp-warn-fill:#f59e0b;
  --lp-warn-soft:#fff4e0;
  --lp-warn-line:#f6cf8c;
  --lp-bad:#c9281d;
  --lp-bad-fill:#ef4444;
  --lp-bad-soft:#fef0ef;
  --lp-bad-line:#f6b3ad;
  --lp-panel:#0b1210;
  --lp-shadow:0 1px 2px rgba(12,20,17,.05),0 12px 32px -14px rgba(12,20,17,.16);
  --lp-shadow-lg:0 2px 6px rgba(12,20,17,.05),0 30px 60px -24px rgba(12,20,17,.28);
  --lp-ease:cubic-bezier(.2,.7,.2,1);
}

/* --- Sidan som helhet när besökaren är utloggad ------------------------- */
body:has(#publicNav:not([hidden])){
  background:var(--lp-bg); color:var(--lp-ink); font-family:var(--lp-sans);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
body:has(#publicNav:not([hidden])) .demo-strip{
  background:var(--lp-panel); color:#cdd8d1; font-weight:500; letter-spacing:0; font-size:.75rem; padding:9px 16px;
}
body:has(#publicNav:not([hidden])) .demo-badge{ font-family:var(--lp-mono); font-weight:600; border-radius:5px; }

/* Sidhuvudet ligger kvar överst; bakgrunden går kant i kant via ::before. */
body:has(#publicNav:not([hidden])) .header{
  position:sticky; top:0; z-index:60; height:72px;
}
body:has(#publicNav:not([hidden])) .header::before{
  content:""; position:absolute; z-index:-1; top:0; bottom:0; left:50%; width:100vw; transform:translateX(-50%);
  background:color-mix(in srgb, var(--lp-bg) 78%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent; transition:border-color .3s ease, background .3s ease;
}
body:has(#publicNav:not([hidden])) .header.is-scrolled::before{ border-bottom-color:var(--lp-line); }
body:has(#publicNav:not([hidden])) .brand{ color:var(--lp-ink); }
body:has(#publicNav:not([hidden])) .brand-mark{
  width:34px; height:34px; border-radius:9px; font:600 1.125rem/1 var(--lp-sans); letter-spacing:-.04em;
  background:var(--lp-ink); color:#fff; box-shadow:inset 0 -3px 0 var(--lp-signal);
}
body:has(#publicNav:not([hidden])) .brand b{ font-weight:600; letter-spacing:-.02em; font-size:1.0625rem; }
body:has(#publicNav:not([hidden])) .brand small{ font:500 .6875rem var(--lp-mono); color:var(--lp-muted); letter-spacing:.02em; }
body:has(#publicNav:not([hidden])) .public-nav a{
  font-weight:500; font-size:.875rem; color:var(--lp-ink-2); border-radius:8px; transition:color .2s ease, background .2s ease;
}
body:has(#publicNav:not([hidden])) .public-nav a:hover{ background:var(--lp-sunken); color:var(--lp-ink); }
body:has(#publicNav:not([hidden])) .public-nav a.pn-cta{ background:var(--lp-ink); color:#fff; padding:8px 14px; }
body:has(#publicNav:not([hidden])) .public-nav a.pn-cta:hover{ background:var(--lp-accent-ink); }
body:has(#publicNav:not([hidden])) .login-link{
  font-weight:500; font-size:.875rem; color:var(--lp-ink); border-color:var(--lp-line-2); border-radius:8px; padding:8px 14px; background:var(--lp-surface);
}
body:has(#publicNav:not([hidden])) .site-footer{ background:transparent; border-top-color:var(--lp-line); color:var(--lp-muted); margin-top:72px; }
body:has(#publicNav:not([hidden])) .site-footer a{ color:var(--lp-ink-2); text-underline-offset:3px; }
body:has(#publicNav:not([hidden])) .site-footer a:hover{ color:var(--lp-accent); }

/* --- Gemensamt: knappar, typografi, avslöjande vid scroll ----------------- */
.lp-hero, #landing{ font-family:var(--lp-sans); color:var(--lp-ink); }
.lp-hero .primary, .lp-hero .secondary, #landing .primary, #landing .secondary{
  min-height:44px; padding:11px 18px; border-radius:10px; font:600 .9375rem/1 var(--lp-sans); letter-spacing:-.01em;
  transition:transform .25s var(--lp-ease), box-shadow .25s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.lp-hero .primary, #landing .primary{
  background:var(--lp-ink); border:1px solid var(--lp-ink); color:#fff;
  box-shadow:0 1px 2px rgba(12,20,17,.2),0 8px 20px -8px rgba(12,20,17,.5);
}
.lp-hero .primary:hover, #landing .primary:hover{
  background:var(--lp-accent-ink); border-color:var(--lp-accent-ink); transform:translateY(-1px);
  box-shadow:0 2px 4px rgba(12,20,17,.2),0 14px 28px -10px rgba(9,92,55,.55);
}
.lp-hero .secondary, #landing .secondary{
  background:var(--lp-surface); border:1px solid var(--lp-line-2); color:var(--lp-ink); box-shadow:0 1px 2px rgba(12,20,17,.05);
}
.lp-hero .secondary:hover, #landing .secondary:hover{ border-color:var(--lp-ink-2); transform:translateY(-1px); }
.lp-hero .primary:active, .lp-hero .secondary:active, #landing .primary:active, #landing .secondary:active{ transform:translateY(0) scale(.985); }
.lp-hero :focus-visible, #landing :focus-visible{ outline:2px solid var(--lp-accent); outline-offset:3px; border-radius:8px; }

#landing .reveal:not(.in){ transform:translateY(14px); }
#landing .reveal.in{ transition:opacity .8s var(--lp-ease), transform .8s var(--lp-ease); }

.lp-mono{ font-family:var(--lp-mono); font-variant-numeric:tabular-nums; }
.lp-kicker{
  margin:0 0 14px; font:500 .75rem/1 var(--lp-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--lp-accent);
}
.lp-section{ padding:112px 0 0; }
.lp-head{ max-width:720px; margin-bottom:44px; }
.lp-head h2{ margin:0 0 16px; font:600 clamp(1.875rem,3.4vw,2.75rem)/1.08 var(--lp-sans); letter-spacing:-.035em; text-wrap:balance; }
.lp-head p:not(.lp-kicker){ margin:0; max-width:62ch; color:var(--lp-ink-2); font-size:1.0625rem; line-height:1.65; text-wrap:pretty; }
.lp-note{ max-width:68ch; margin:28px 0 0; color:var(--lp-muted); font-size:.9375rem; line-height:1.65; }
.lp-note-small{ margin-top:18px !important; font-size:.875rem !important; color:var(--lp-muted) !important; }

/* --- Hero ------------------------------------------------------------- */
.lp-hero{
  position:relative; isolation:isolate;
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:64px; align-items:center;
  padding:64px 0 40px;
}
.lp-hero::before{
  content:""; position:absolute; z-index:-2; right:-8%; top:-10%; width:720px; height:620px; pointer-events:none;
  background:radial-gradient(closest-side,rgba(23,168,101,.20),rgba(23,168,101,.07) 55%,rgba(23,168,101,0));
  filter:blur(20px);
}
.lp-hero-signal{
  position:absolute; z-index:-1; left:50%; bottom:-30px; width:100vw; height:200px; transform:translateX(-50%);
  pointer-events:none; overflow:visible;
}
.lp-hero-signal path, .lp-final-signal path{
  fill:none; stroke:var(--lp-signal); stroke-width:1.5; stroke-linecap:round; vector-effect:non-scaling-stroke;
  stroke-dasharray:6 10; opacity:.35; animation:lp-flow 26s linear infinite;
}
@keyframes lp-flow{ to{ stroke-dashoffset:-640; } }

.lp-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin:0 0 22px; padding:6px 12px 6px 10px;
  border:1px solid var(--lp-line-2); border-radius:999px; background:var(--lp-surface);
  font:500 .75rem/1 var(--lp-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--lp-ink-2);
}
.lp-live{ position:relative; width:8px; height:8px; border-radius:50%; background:var(--lp-signal); }
.lp-live::after{
  content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid var(--lp-signal);
  animation:lp-ping 2.8s var(--lp-ease) infinite;
}
@keyframes lp-ping{ 0%{ transform:scale(.6); opacity:.8; } 80%,100%{ transform:scale(1.8); opacity:0; } }

.lp-hero h1{
  margin:0 0 22px; font:600 clamp(2.5rem,5.6vw,4.5rem)/1.02 var(--lp-sans); letter-spacing:-.045em; text-wrap:balance;
}
.lp-hero h1 em{ display:block; font-style:normal; color:var(--lp-accent); }
.lp-lead{ max-width:56ch; margin:0 0 32px; color:var(--lp-ink-2); font-size:1.125rem; line-height:1.6; }
.lp-cta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.lp-cta-row.center{ justify-content:center; }
.lp-textlink{
  padding:10px 6px; color:var(--lp-ink); font-weight:500; font-size:.9375rem; text-decoration:none;
  border-bottom:1px solid transparent; transition:border-color .2s ease;
}
.lp-textlink:hover{ border-bottom-color:currentColor; }
.lp-proof{ display:flex; flex-wrap:wrap; gap:8px 22px; margin:34px 0 0; padding:0; list-style:none; }
.lp-proof li{ display:flex; align-items:center; gap:8px; color:var(--lp-muted); font-size:.875rem; }
.lp-proof li::before{
  content:""; width:16px; height:16px; border-radius:50%; flex:none;
  background:var(--lp-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2 7 10.5l4.5-5' fill='none' stroke='%230d7748' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;
}

/* --- Exempelkonsolen ---------------------------------------------------- */
.lp-console{
  --rx:0deg; --ry:0deg;
  background:var(--lp-surface); border:1px solid var(--lp-line); border-radius:18px; box-shadow:var(--lp-shadow-lg);
  transform:perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .6s var(--lp-ease); will-change:transform;
}
.lp-console-bar{
  display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--lp-line);
}
.lp-dots{ display:flex; gap:6px; }
.lp-dots i{ width:9px; height:9px; border-radius:50%; background:var(--lp-line-2); }
.lp-console-title{ font:500 .75rem/1 var(--lp-mono); color:var(--lp-muted); letter-spacing:.02em; }
.lp-tag{
  margin-left:auto; padding:4px 9px; border-radius:999px; background:var(--lp-sunken);
  font:500 .6875rem/1 var(--lp-mono); color:var(--lp-ink-2);
}
.lp-console-body{ padding:22px; }
.lp-console .hero-score.lp-score{
  display:flex; align-items:center; gap:20px; margin:0; padding:0; border:0; border-radius:0; background:none;
}
.lp-console .score-ring{ width:108px; height:108px; }
.lp-console .score-ring circle{ stroke-width:8; }
.lp-console .ring-track{ stroke:var(--lp-sunken); }
.lp-console .ring-value{ stroke:var(--lp-signal); }
.lp-console .hero-score.amber .ring-value{ stroke:var(--lp-warn-fill); }
.lp-console .hero-score.red .ring-value{ stroke:var(--lp-bad-fill); }
.lp-console .ring-center b{ font:600 2.25rem/1 var(--lp-sans); letter-spacing:-.04em; color:var(--lp-ink); font-variant-numeric:tabular-nums; }
.lp-console .hero-score.amber .ring-center b{ color:var(--lp-warn); }
.lp-console .hero-score.red .ring-center b{ color:var(--lp-bad); }
.lp-console .ring-center i{ font:500 .6875rem/1 var(--lp-mono); color:var(--lp-muted); }
.lp-console .score-text span{ display:block; font:500 .6875rem/1 var(--lp-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--lp-muted); }
.lp-console .score-text strong{ display:block; margin-top:8px; font-size:1.125rem; font-weight:600; letter-spacing:-.015em; line-height:1.25; color:var(--lp-ink); }

.lp-flow{ margin:22px 0 0; padding:16px 16px 12px; border-radius:12px; background:var(--lp-sunken); }
.lp-flow-head{ display:flex; justify-content:space-between; gap:12px; margin-bottom:12px; font-size:.8125rem; color:var(--lp-ink-2); }
.lp-flow-head .lp-mono{ font-size:.75rem; color:var(--lp-ink); }
.lp-bars{ position:relative; display:grid; grid-template-columns:repeat(12,1fr); gap:5px; height:84px; }
.lp-bars::after{ content:""; position:absolute; left:0; right:0; top:72%; height:1px; background:var(--lp-line-2); }
.lp-bar{ position:relative; height:100%; cursor:default; }
.lp-bar::before{
  content:""; position:absolute; left:0; right:0; bottom:28%; height:calc(var(--h) * .72);
  border-radius:4px 4px 1px 1px; background:var(--lp-signal);
  transform:scaleY(0); transform-origin:bottom; transition:transform .7s var(--lp-ease) var(--d), opacity .2s ease;
}
.lp-bar.neg::before{
  bottom:auto; top:72%; height:calc(min(var(--h), 100%) * .28); border-radius:1px 1px 4px 4px;
  background:var(--lp-bad-fill); transform-origin:top;
}
.lp-bars.is-drawn .lp-bar::before{ transform:scaleY(1); }
.lp-bars:hover .lp-bar::before{ opacity:.35; }
.lp-bars:hover .lp-bar:hover::before{ opacity:1; }

.lp-kv{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:18px 0 0; }
.lp-kv div{ padding:12px 14px; border:1px solid var(--lp-line); border-radius:12px; }
.lp-kv dt{ font-size:.75rem; color:var(--lp-muted); }
.lp-kv dd{ margin:6px 0 0; font:600 1rem/1.2 var(--lp-mono); font-variant-numeric:tabular-nums; color:var(--lp-ink); }
.lp-console-foot{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:16px; }
.lp-fine{ margin:0; max-width:34ch; color:var(--lp-muted); font-size:.75rem; line-height:1.5; }
.lp-next{
  flex:none; display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border:1px solid var(--lp-line-2); border-radius:999px;
  background:var(--lp-surface); color:var(--lp-ink); font:500 .8125rem/1 var(--lp-sans); cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.lp-next:hover{ border-color:var(--lp-ink-2); background:var(--lp-sunken); }
.lp-next span{ display:inline-block; transition:transform .5s var(--lp-ease); }
.lp-next:hover span{ transform:rotate(180deg); }

/* --- Varför nu: siffror ------------------------------------------------- */
.lp-stats{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.lp-stat{
  display:flex; flex-direction:column; padding:28px; border:1px solid var(--lp-line); border-radius:16px;
  background:var(--lp-surface); box-shadow:var(--lp-shadow);
}
.lp-stat-num{
  font:600 clamp(2.25rem,4vw,3rem)/1 var(--lp-sans); letter-spacing:-.04em; font-variant-numeric:tabular-nums; color:var(--lp-ink);
}
.lp-stat-label{ margin:10px 0 22px; padding-bottom:20px; border-bottom:1px solid var(--lp-line); color:var(--lp-muted); font-size:.875rem; line-height:1.5; }
.lp-stat h3{ margin:0 0 8px; font-size:1.0625rem; font-weight:600; letter-spacing:-.01em; }
.lp-stat p{ margin:0 0 18px; color:var(--lp-ink-2); font-size:.9375rem; line-height:1.65; }
.lp-src{ margin-top:auto; color:var(--lp-muted); font:500 .75rem/1.5 var(--lp-mono); }
.lp-src a{ color:var(--lp-ink-2); text-underline-offset:3px; }
.lp-src a:hover{ color:var(--lp-accent); }

/* --- Tillsammans: lins + jämförelse ------------------------------------- */
.lp-lens{
  display:inline-flex; gap:4px; margin:0 0 24px; padding:4px; border-radius:999px;
  background:var(--lp-sunken); border:1px solid var(--lp-line);
}
.lp-lens button{
  min-height:36px; padding:0 16px; border:0; border-radius:999px; background:transparent;
  font:500 .875rem/1 var(--lp-sans); color:var(--lp-ink-2); cursor:pointer; transition:background .25s ease, color .25s ease, box-shadow .25s ease;
}
.lp-lens button:hover{ color:var(--lp-ink); }
.lp-lens button[aria-pressed="true"]{ background:var(--lp-surface); color:var(--lp-ink); box-shadow:0 1px 2px rgba(12,20,17,.08),0 4px 10px -4px rgba(12,20,17,.15); }
.lp-compare{ display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:18px; align-items:stretch; }
.lp-side{
  padding:28px; border:1px solid var(--lp-line); border-radius:16px; background:var(--lp-surface); box-shadow:var(--lp-shadow);
  transition:opacity .45s var(--lp-ease), transform .45s var(--lp-ease), filter .45s ease, border-color .3s ease;
}
.lp-side.now{ border-color:color-mix(in srgb, var(--lp-accent) 35%, var(--lp-line)); }
.lp-compare[data-lens="past"] .lp-side.now, .lp-compare[data-lens="now"] .lp-side.past{ opacity:.38; transform:scale(.98); filter:saturate(.3); }
.lp-compare[data-lens="past"] .lp-side.past, .lp-compare[data-lens="now"] .lp-side.now{ transform:translateY(-4px); box-shadow:var(--lp-shadow-lg); }
.lp-side-tag{ font:500 .6875rem/1 var(--lp-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--lp-muted); }
.lp-side.now .lp-side-tag{ color:var(--lp-accent); }
.lp-side h3{ margin:12px 0 16px; font-size:1.5rem; font-weight:600; letter-spacing:-.03em; }
.lp-side ul{ display:grid; gap:10px; margin:0 0 18px; padding:0; list-style:none; }
.lp-side li{ position:relative; padding-left:24px; color:var(--lp-ink-2); font-size:.9375rem; line-height:1.5; }
.lp-side li::before{ content:""; position:absolute; left:2px; top:.55em; width:8px; height:8px; border-radius:2px; background:var(--lp-line-2); }
.lp-side.now li::before{ background:var(--lp-signal); }
.lp-side p{ margin:0; padding-top:16px; border-top:1px solid var(--lp-line); color:var(--lp-muted); font-size:.875rem; line-height:1.6; }
.lp-plus{
  align-self:center; display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  border:1px solid var(--lp-line-2); background:var(--lp-surface); font:500 1.25rem/1 var(--lp-mono); color:var(--lp-muted);
}
.lp-sum{
  display:flex; gap:20px; align-items:flex-start; margin-top:18px; padding:26px 28px; border-radius:16px;
  background:var(--lp-accent-soft); border:1px solid color-mix(in srgb, var(--lp-accent) 22%, transparent);
}
.lp-sum-eq{
  flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  background:var(--lp-accent); color:#fff; font:600 1.25rem/1 var(--lp-mono);
}
.lp-sum b{ display:block; margin:8px 0 14px; font-size:1.125rem; font-weight:600; letter-spacing:-.015em; }
.lp-sum ul{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
.lp-sum li{ color:var(--lp-ink-2); font-size:.875rem; line-height:1.55; }

/* --- Så byggs poängen: utfällbara delar --------------------------------- */
.lp-split{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:64px; align-items:start; }
.lp-split .lp-head{ position:sticky; top:110px; margin:0; }
.lp-factors{ display:grid; gap:10px; }
.lp-factors .factor{
  display:block; margin:0; border:1px solid var(--lp-line); border-radius:14px; background:var(--lp-surface);
  box-shadow:0 1px 2px rgba(12,20,17,.04); transition:border-color .25s ease, box-shadow .25s ease;
}
.lp-factors .factor:hover{ border-color:var(--lp-line-2); }
.lp-factors .factor[open]{ border-color:var(--lp-line-2); box-shadow:var(--lp-shadow); }
.lp-factors summary{
  display:grid; grid-template-columns:150px minmax(0,1fr) 92px 16px; align-items:center; gap:16px;
  padding:18px 20px; cursor:pointer; list-style:none; border-radius:14px;
}
.lp-factors summary::-webkit-details-marker{ display:none; }
.lp-factors summary::after{
  content:""; width:8px; height:8px; justify-self:end; border-right:1.5px solid var(--lp-muted); border-bottom:1.5px solid var(--lp-muted);
  transform:translateY(-2px) rotate(45deg); transition:transform .3s var(--lp-ease);
}
.lp-factors .factor[open] summary::after{ transform:translateY(2px) rotate(-135deg); }
.lp-factors .f-name{ font-size:.9375rem; font-weight:600; color:var(--lp-ink); }
.lp-factors .f-bar{ height:6px; background:var(--lp-sunken); }
.lp-factors .f-bar i{ background:var(--lp-signal); transition:width 1.2s var(--lp-ease); }
.lp-factors .factor.warn .f-bar i{ background:var(--lp-warn-fill); }
.lp-factors .f-val{ font:500 .75rem/1 var(--lp-mono); color:var(--lp-muted); text-align:right; }
.lp-factors .factor.warn .f-val{ color:var(--lp-warn); }
.lp-factors details p{ margin:0; padding:0 20px 20px 186px; color:var(--lp-ink-2); font-size:.9375rem; line-height:1.6; }

/* --- Så fungerar det: scrollberättelse ---------------------------------- */
.lp-story{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; }
.lp-steps{ margin:0; padding:0; list-style:none; }
.lp-step{
  min-height:42vh; padding:28px 0 28px 24px; border-left:2px solid var(--lp-line);
  transition:border-color .5s ease;
}
#landing .lp-step.reveal.in{ opacity:.42; transition:opacity .5s ease, transform .8s var(--lp-ease); }
#landing .lp-step.reveal.in.is-active{ opacity:1; }
.lp-step.is-active{ border-left-color:var(--lp-accent); }
.lp-step-num{ display:block; margin-bottom:14px; font:500 .8125rem/1 var(--lp-mono); color:var(--lp-accent); }
.lp-step b{ display:block; margin-bottom:10px; font-size:1.5rem; font-weight:600; letter-spacing:-.03em; }
.lp-step p{ margin:0; max-width:46ch; color:var(--lp-ink-2); font-size:1rem; line-height:1.65; }
.lp-stage{
  position:sticky; top:120px; align-self:start; height:400px; perspective:1200px;
}
.lp-scene{
  position:absolute; inset:0; padding:28px; border:1px solid var(--lp-line); border-radius:18px;
  background:var(--lp-surface); box-shadow:var(--lp-shadow-lg);
  opacity:0; transform:translateY(18px) rotateX(6deg) scale(.97); transform-origin:50% 100%;
  transition:opacity .55s var(--lp-ease), transform .7s var(--lp-ease); pointer-events:none;
}
.lp-stage[data-active="1"] [data-scene="1"], .lp-stage[data-active="2"] [data-scene="2"], .lp-stage[data-active="3"] [data-scene="3"]{
  opacity:1; transform:none;
}
.lp-scene-tag{ font:500 .6875rem/1 var(--lp-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--lp-muted); }
.lp-scene-title{ display:block; margin:10px 0 22px; font-size:1.25rem; font-weight:600; letter-spacing:-.02em; }
.lp-scene-fine{ position:absolute; left:28px; right:28px; bottom:22px; margin:0; display:flex; align-items:center; gap:8px; color:var(--lp-muted); font:500 .75rem/1.4 var(--lp-mono); }
.lp-bank{
  display:flex; align-items:center; gap:12px; margin-bottom:10px; padding:14px 16px; border:1px solid var(--lp-accent); border-radius:12px;
  font-weight:600; background:var(--lp-accent-soft);
}
.lp-bank.muted{ border-color:var(--lp-line); background:var(--lp-surface); color:var(--lp-muted); font-weight:500; }
.lp-bank-logo{ display:grid; place-items:center; width:28px; height:28px; border-radius:8px; background:var(--lp-ink); color:#fff; font:600 .8125rem/1 var(--lp-mono); }
.lp-bank.muted .lp-bank-logo{ background:var(--lp-line-2); color:var(--lp-ink-2); }
.lp-bank-check{ margin-left:auto; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--lp-accent); color:#fff; font-size:.75rem; }
.lp-lock{ width:10px; height:8px; border-radius:2px; background:var(--lp-muted); position:relative; top:2px; }
.lp-lock::before{ content:""; position:absolute; left:2px; top:-5px; width:6px; height:6px; border:1.5px solid var(--lp-muted); border-bottom:0; border-radius:4px 4px 0 0; box-sizing:border-box; }
.lp-cats{ display:grid; gap:2px; margin:0; padding:0; list-style:none; }
.lp-cats li{ display:flex; justify-content:space-between; padding:10px 2px; border-bottom:1px solid var(--lp-line); font-size:.9375rem; color:var(--lp-ink-2); }
.lp-cats b{ font:600 .9375rem/1.2 var(--lp-mono); color:var(--lp-ink); font-variant-numeric:tabular-nums; }
.lp-cats b.pos{ color:var(--lp-accent); }
.lp-cats b.dim{ font-weight:500; font-size:.75rem; color:var(--lp-muted); }
.lp-progress{ height:4px; margin-top:18px; border-radius:999px; background:var(--lp-sunken); overflow:hidden; }
.lp-progress i{ display:block; width:0; height:100%; background:var(--lp-signal); border-radius:999px; transition:width 1.8s var(--lp-ease) .2s; }
.lp-stage[data-active="2"] .lp-progress i{ width:100%; }
.lp-mini-score{ display:flex; align-items:baseline; gap:10px; padding-bottom:18px; border-bottom:1px solid var(--lp-line); }
.lp-mini-score b{ font:600 3.25rem/1 var(--lp-sans); letter-spacing:-.05em; color:var(--lp-accent); font-variant-numeric:tabular-nums; }
.lp-mini-score span{ color:var(--lp-ink-2); font-size:.9375rem; }
.lp-signals{ display:grid; gap:10px; margin:18px 0 0; padding:0; list-style:none; }
.lp-signals li{ display:flex; align-items:center; gap:10px; font-size:.9375rem; color:var(--lp-ink-2); }
.lp-signals li::before{ content:"✓"; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--lp-accent-soft); color:var(--lp-accent); font-size:.6875rem; font-weight:700; }
.lp-signals li.warn::before{ content:"!"; background:var(--lp-warn-soft); color:var(--lp-warn); }

/* --- Efter beslutet ------------------------------------------------------ */
.lp-features{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.lp-feature{
  padding:28px; border:1px solid var(--lp-line); border-radius:16px; background:var(--lp-surface); box-shadow:var(--lp-shadow);
  transition:transform .35s var(--lp-ease), box-shadow .35s ease;
}
.lp-feature:hover{ transform:translateY(-3px); box-shadow:var(--lp-shadow-lg); }
.lp-feature b{ display:block; margin:18px 0 8px; font-size:1.125rem; font-weight:600; letter-spacing:-.015em; }
.lp-feature p{ margin:0; color:var(--lp-ink-2); font-size:.9375rem; line-height:1.65; }
.lp-icon{ display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:var(--lp-sunken); }
.lp-icon svg{ width:22px; height:22px; fill:none; stroke:var(--lp-ink); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.lp-pulse{ display:block; width:min(100%,220px); height:auto; aspect-ratio:220/60; overflow:visible; }
.lp-pulse-line{ fill:none; stroke:var(--lp-ink-2); stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; stroke-dasharray:300; stroke-dashoffset:300; transition:stroke-dashoffset 1.6s var(--lp-ease) .2s; }
.lp-feature.in .lp-pulse-line{ stroke-dashoffset:0; }
.lp-pulse-dot{ fill:var(--lp-bad-fill); transform-box:fill-box; transform-origin:center; animation:lp-beat 2.6s ease-in-out infinite; }
@keyframes lp-beat{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.6); opacity:.55; } }

/* --- För vem: flikar ----------------------------------------------------- */
.lp-who{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:16px; }
.lp-tabs{ grid-column:1 / -1; display:flex; gap:4px; border-bottom:1px solid var(--lp-line); }
.lp-tabs button{
  position:relative; min-height:44px; padding:0 16px; border:0; background:none; cursor:pointer;
  font:500 .9375rem/1 var(--lp-sans); color:var(--lp-muted); transition:color .2s ease;
}
.lp-tabs button:hover{ color:var(--lp-ink); }
.lp-tabs button[aria-selected="true"]{ color:var(--lp-ink); }
.lp-tabs button::after{
  content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:2px; border-radius:2px;
  background:var(--lp-accent); transform:scaleX(0); transition:transform .35s var(--lp-ease);
}
.lp-tabs button[aria-selected="true"]::after{ transform:scaleX(1); }
.lp-panels{ padding:32px 4px; }
.lp-panel{ animation:lp-fade .45s var(--lp-ease); }
.lp-panel b{ display:block; margin-bottom:10px; font-size:1.75rem; font-weight:600; letter-spacing:-.03em; }
.lp-panel p{ margin:0; max-width:48ch; color:var(--lp-ink-2); font-size:1.0625rem; line-height:1.65; }
@keyframes lp-fade{ from{ opacity:0; transform:translateY(6px); } }
.lp-example{
  margin-top:20px; padding:26px; border-radius:16px; background:var(--lp-surface); border:1px solid var(--lp-line); box-shadow:var(--lp-shadow);
}
.lp-example b{ display:block; margin-bottom:8px; font-size:1.25rem; font-weight:600; letter-spacing:-.02em; }
.lp-example p:not(.lp-kicker){ margin:0 0 18px; color:var(--lp-ink-2); font-size:.9375rem; line-height:1.6; }

/* --- Avslutning ---------------------------------------------------------- */
.lp-final{
  position:relative; isolation:isolate; overflow:hidden; margin-top:120px; padding:88px 32px; border-radius:24px;
  background:var(--lp-panel); color:#eef3f0; text-align:center;
}
.lp-final::before{
  content:""; position:absolute; z-index:-1; left:50%; top:-55%; width:820px; height:520px; transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(23,168,101,.42),rgba(23,168,101,.12) 55%,rgba(23,168,101,0)); filter:blur(18px);
}
.lp-final-signal{ position:absolute; z-index:-1; left:0; right:0; bottom:-56px; width:100%; height:120px; pointer-events:none; }
.lp-final-signal path{ opacity:.35; }
.lp-final h2{ margin:0 0 14px; font:600 clamp(2rem,4vw,3rem)/1.05 var(--lp-sans); letter-spacing:-.04em; color:#f6faf8; }
.lp-final p{ max-width:58ch; margin:0 auto 30px; color:#b4c2ba; font-size:1.0625rem; line-height:1.6; }
#landing .lp-final .primary{ background:#f4f8f6; border-color:#f4f8f6; color:var(--lp-panel); box-shadow:0 10px 30px -10px rgba(23,168,101,.6); }
#landing .lp-final .primary:hover{ background:#fff; }
#landing .lp-final .secondary{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#eef3f0; box-shadow:none; }
#landing .lp-final .secondary:hover{ border-color:rgba(255,255,255,.4); background:rgba(255,255,255,.1); }
#landing .lp-final :focus-visible{ outline-color:#7fe0b0; }

/* --- Responsivt ---------------------------------------------------------- */
@media (max-width:980px){
  .lp-hero{ grid-template-columns:1fr; gap:44px; padding-top:40px; }
  .lp-hero::before{ right:0; width:100%; height:520px; }
  .lp-split, .lp-story, .lp-who{ grid-template-columns:1fr; gap:32px; }
  .lp-split .lp-head{ position:static; }
  .lp-stage{ display:none; }
  .lp-step{ min-height:0; }
  #landing .lp-step.reveal.in{ opacity:1; }
  .lp-features{ grid-template-columns:1fr; }
  .lp-sum ul{ grid-template-columns:1fr; gap:10px; }
  .lp-compare{ grid-template-columns:1fr; }
  .lp-plus{ justify-self:center; }
}
@media (max-width:640px){
  body:has(#publicNav:not([hidden])) .header{ position:relative; height:auto; }
  .lp-section{ padding-top:80px; }
  .lp-hero h1{ font-size:clamp(2.125rem,10.4vw,2.75rem); }
  .lp-stats{ grid-template-columns:1fr; }
  .lp-stat, .lp-side, .lp-feature{ padding:22px; }
  .lp-kv{ grid-template-columns:1fr; }
  .lp-console-foot{ flex-direction:column; align-items:flex-start; }
  .lp-lens{ display:flex; width:100%; }
  .lp-lens button{ flex:1; padding:0 8px; font-size:.8125rem; }
  .lp-factors summary{ grid-template-columns:minmax(0,1fr) 16px; gap:10px 12px; }
  .lp-factors .f-bar{ grid-column:1 / -1; grid-row:2; }
  .lp-factors summary > span.f-val:last-child{ display:none; }
  .lp-factors details p{ padding:0 20px 20px; }
  .lp-tabs{ overflow-x:auto; scrollbar-width:none; }
  .lp-tabs::-webkit-scrollbar{ display:none; }
  .lp-panels{ padding:24px 4px 8px; }
  .lp-example{ margin-top:0; }
  .lp-tabs button{ white-space:nowrap; }
  .lp-final{ margin-top:88px; padding:64px 20px; border-radius:20px; }
}

/* --- Mindre rörelse ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  .lp-hero-signal path, .lp-final-signal path, .lp-live::after, .lp-pulse-dot{ animation:none; }
  .lp-console, .lp-scene, .lp-side, .lp-feature, .lp-panel{ transition:none; animation:none; }
  .lp-pulse-line{ stroke-dashoffset:0; transition:none; }
  .lp-bar::before, .lp-progress i{ transition:none; }
  .lp-feature:hover{ transform:none; }
}

/* --- Mörkt läge ---------------------------------------------------------- */
@media screen and (prefers-color-scheme: dark){
  :root{
    --lp-bg:#0b0f0d;
    --lp-surface:#121815;
    --lp-sunken:#18201c;
    --lp-ink:#ecf2ee;
    --lp-ink-2:#c3cdc7;
    --lp-muted:#99a59f;
    --lp-line:#232c27;
    --lp-line-2:#34403a;
    --lp-accent:#43cf8f;
    --lp-accent-ink:#2fa870;
    --lp-accent-soft:#11291d;
    --lp-signal:#3cc985;
    --lp-accent-line:#1f5a3c;
    --lp-warn:#fbbf24;
    --lp-warn-fill:#f59e0b;
    --lp-warn-soft:#2a1e08;
    --lp-warn-line:#6e4d12;
    --lp-bad:#ff7b72;
    --lp-bad-fill:#f04438;
    --lp-bad-soft:#2e1312;
    --lp-bad-line:#7f2a24;
    --lp-panel:#060908;
    --lp-shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -14px rgba(0,0,0,.6);
    --lp-shadow-lg:0 2px 6px rgba(0,0,0,.4),0 30px 60px -24px rgba(0,0,0,.75);
  }
  body:has(#publicNav:not([hidden])){ background:var(--lp-bg); }
  body:has(#publicNav:not([hidden])) .brand-mark{ background:#ecf2ee; color:#0b0f0d; }
  body:has(#publicNav:not([hidden])) .public-nav a.pn-cta{ background:#ecf2ee; color:#0b0f0d; }
  body:has(#publicNav:not([hidden])) .public-nav a.pn-cta:hover{ background:#fff; }
  .lp-hero .primary, #landing .primary{ background:#ecf2ee; border-color:#ecf2ee; color:#0b0f0d; }
  .lp-hero .primary:hover, #landing .primary:hover{ background:#fff; border-color:#fff; color:#0b0f0d; }
  .lp-sum-eq, .lp-bank-check{ color:#0b0f0d; }
  .lp-bank-logo{ background:#ecf2ee; color:#0b0f0d; }
  .lp-final{ border:1px solid var(--lp-line); }
  .lp-proof li::before{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2 7 10.5l4.5-5' fill='none' stroke='%2343cf8f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
}

/* Den gamla plus-ikonen i enhancements.css roterar sista spannet i varje
   summary. Här är sista spannet viktetiketten, som ska stå still. */
.lp-factors summary > span:last-child:not(.pill),
.lp-factors details[open] > summary > span:last-child:not(.pill){ transform:none; color:var(--lp-muted); }
.lp-factors .factor.warn summary > span:last-child:not(.pill){ color:var(--lp-warn); }
.lp-factors details[open] > summary{ border-radius:14px 14px 0 0; }

/* Exempelväljaren (modalen) öppnas från startsidan: samma typsnitt som sidan. */
body:has(#publicNav:not([hidden])) .example-choice .ex-score{ font-family:var(--lp-sans); font-weight:600; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
body:has(#publicNav:not([hidden])) .example-choice .ex-score small{ font-family:var(--lp-mono); font-weight:500; letter-spacing:0; }
body:has(#publicNav:not([hidden])) .example-choice{ background:var(--lp-surface); border-color:var(--lp-line); border-top:3px solid var(--lp-line-2); }
body:has(#publicNav:not([hidden])) .example-choice small{ color:var(--lp-muted); }
body:has(#publicNav:not([hidden])) .example-choice b{ color:var(--lp-ink); }
body:has(#publicNav:not([hidden])) .example-choice .ex-tag{ font-weight:600; }
body:has(#publicNav:not([hidden])) .example-choice.green{ border-top-color:var(--lp-signal); }
body:has(#publicNav:not([hidden])) .example-choice.green .ex-score{ color:var(--lp-accent); }
body:has(#publicNav:not([hidden])) .example-choice.green .ex-tag{ background:var(--lp-accent-soft); color:var(--lp-accent); }
body:has(#publicNav:not([hidden])) .example-choice.amber{ border-top-color:var(--lp-warn-fill); }
body:has(#publicNav:not([hidden])) .example-choice.amber .ex-score{ color:var(--lp-warn); }
body:has(#publicNav:not([hidden])) .example-choice.amber .ex-tag{ background:var(--lp-warn-soft); color:var(--lp-warn); }
body:has(#publicNav:not([hidden])) .example-choice.red{ border-top-color:var(--lp-bad-fill); }
body:has(#publicNav:not([hidden])) .example-choice.red .ex-score{ color:var(--lp-bad); }
body:has(#publicNav:not([hidden])) .example-choice.red .ex-tag{ background:var(--lp-bad-soft); color:var(--lp-bad); }
body:has(#publicNav:not([hidden])) .example-choice:hover{ box-shadow:var(--lp-shadow-lg); }
body:has(#publicNav:not([hidden])) .rs-modal{ background:var(--lp-surface); border:1px solid var(--lp-line); color:var(--lp-ink); }
body:has(#publicNav:not([hidden])) .rs-modal-head{ border-bottom-color:var(--lp-line); }

/* ============================================================================
   RiskSignal – analyssidan i startsidans designspråk
   ----------------------------------------------------------------------------
   Gäller bara review.html (body:has(#review)) och bara på skärm: utskrift och
   PDF av underlaget behåller sin egen layout i enhancements.css.

   Bygger på startsidans tokens (--lp-*, landing.css), som redan växlar mellan
   ljust och mörkt läge. De gamla tokens (--ink, --forest, --red …) pekas om
   här, så att äldre regler som använder dem följer med automatiskt.

   Statusfärger, en betydelse var:
     grönt  (--lp-accent / --lp-signal)  stark, inom gräns
     orange (--lp-warn / --lp-warn-fill) kräver kontroll
     rött   (--lp-bad / --lp-bad-fill)   svag, utanför gräns
   ============================================================================ */
@media screen{

body:has(#review){
  --ink:var(--lp-ink); --muted:var(--lp-muted); --line:var(--lp-line); --soft:var(--lp-sunken);
  --forest:var(--lp-accent); --forest2:var(--lp-accent-ink); --paper:var(--lp-bg);
  --warn:var(--lp-warn-soft); --warnink:var(--lp-warn); --red:var(--lp-bad);
  --shadow:var(--lp-shadow);
  background:var(--lp-bg); color:var(--lp-ink);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
/* Ett typsnitt rakt igenom; Georgia och Inter i äldre regler ersätts. */
body:has(#review) *{ font-family:var(--lp-sans); }
body:has(#review) :is(b,strong){ font-weight:600; }
body:has(#review) :is(.kpi-value,.score-big,.afford-value,.mon-card-status,td,.kpi-pop-row b,.decision-row b){ font-variant-numeric:tabular-nums; }
body:has(#review) :is(.review-meta b,.score-ratio,.kpi-pop-row b,.decision-row b,.ch-label,.ch-baseline-label,.ch-payment-label){ font-family:var(--lp-mono); }

/* --- Demoband och sidhuvud: samma som startsidan ----------------------- */
body:has(#review) .demo-strip{ background:var(--lp-panel); color:#cdd8d1; font-weight:500; letter-spacing:0; font-size:.75rem; padding:9px 16px; }
body:has(#review) .demo-badge{ font-family:var(--lp-mono); font-weight:600; border-radius:5px; }
body:has(#review) .page-head{ padding:18px 0 6px; }
body:has(#review) .brand{ color:var(--lp-ink); }
body:has(#review) .brand-mark{
  width:34px; height:34px; border-radius:9px; font:600 1.125rem/1 var(--lp-sans); letter-spacing:-.04em;
  background:var(--lp-ink); color:var(--lp-bg); box-shadow:inset 0 -3px 0 var(--lp-signal);
}
body:has(#review) .brand b{ font-weight:600; letter-spacing:-.02em; font-size:1.0625rem; }
body:has(#review) .brand small{ font:500 .6875rem var(--lp-mono); color:var(--lp-muted); letter-spacing:.02em; }
body:has(#review) .back{ font-weight:500; color:var(--lp-ink-2); text-decoration:none; }
body:has(#review) .back:hover{ color:var(--lp-accent); }

/* --- Rubrikdelen --------------------------------------------------------- */
body:has(#review) .review-top{ border-bottom-color:var(--lp-line); padding-bottom:26px; }
body:has(#review) .review-top h1{
  font-size:clamp(2rem,4.2vw,3.25rem); font-weight:600; line-height:1.04; letter-spacing:-.04em; text-wrap:balance;
}
body:has(#review) .review-headline{ color:var(--lp-ink-2); font-size:1.0625rem; }
body:has(#review) .review-meta{ gap:8px; }
body:has(#review) .review-meta span{
  padding:5px 10px; border:1px solid var(--lp-line); border-radius:999px; background:var(--lp-surface);
  color:var(--lp-muted); font-size:.75rem;
}
body:has(#review) .review-meta b{ color:var(--lp-ink); font-weight:500; font-size:.75rem; }

/* Etiketter i versaler: mono, lugn vikt. */
body:has(#review) :is(.eyebrow,.score-eyebrow,.afford-label,.dt-label,.ds-eyebrow){
  font-family:var(--lp-mono); font-weight:500; font-size:.6875rem; letter-spacing:.08em; text-transform:uppercase;
}
body:has(#review) .eyebrow{ color:var(--lp-accent); }
body:has(#review) :is(.left-title,.tab-title){ font-size:1.625rem; font-weight:600; letter-spacing:-.03em; }

/* --- Knappar --------------------------------------------------------------- */
body:has(#review) :is(.primary,.secondary){
  min-height:40px; border-radius:10px; font-weight:600; font-size:.875rem; letter-spacing:-.005em;
  transition:transform .25s var(--lp-ease), box-shadow .25s ease, background .2s ease, border-color .2s ease;
}
body:has(#review) .primary{ background:var(--lp-ink); border:1px solid var(--lp-ink); color:var(--lp-bg); box-shadow:0 1px 2px rgba(12,20,17,.2),0 8px 20px -10px rgba(12,20,17,.5); }
body:has(#review) .primary:hover{ background:var(--lp-accent-ink); border-color:var(--lp-accent-ink); color:#fff; transform:translateY(-1px); }
body:has(#review) .secondary{ background:var(--lp-surface); border:1px solid var(--lp-line-2); color:var(--lp-ink); box-shadow:0 1px 2px rgba(12,20,17,.05); }
body:has(#review) .secondary:hover{ border-color:var(--lp-ink-2); transform:translateY(-1px); box-shadow:0 1px 2px rgba(12,20,17,.05); }
body:has(#review) :is(.primary,.secondary):active{ transform:scale(.985); }
body:has(#review) .detail-toggle{ background:var(--lp-surface); border-color:var(--lp-line-2); color:var(--lp-ink-2); }
body:has(#review) .detail-toggle:hover{ background:var(--lp-sunken); border-color:var(--lp-ink-2); }
body:has(#review) :focus-visible{ outline:2px solid var(--lp-accent); outline-offset:2px; }

/* --- Flikar: segmentkontroll som ligger kvar överst ---------------------- */
body:has(#review) .review-tabs{
  padding:5px; border-color:var(--lp-line); border-radius:14px; box-shadow:var(--lp-shadow);
  background:color-mix(in srgb, var(--lp-surface) 88%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px);
}
body:has(#review) .review-tab{ font-size:.875rem; font-weight:500; color:var(--lp-ink-2); border-radius:9px; transition:background .2s ease, color .2s ease; }
body:has(#review) .review-tab:hover{ background:var(--lp-sunken); color:var(--lp-ink); }
body:has(#review) .review-tab.active{ background:var(--lp-ink); color:var(--lp-bg); font-weight:600; }
body:has(#review) .rt-badge{ font-family:var(--lp-mono); font-weight:600; }
body:has(#review) .rt-badge.rt-warn{ background:var(--lp-warn-fill); color:#1c1300; }
body:has(#review) .rt-badge.rt-bad{ background:var(--lp-bad); color:var(--lp-surface); }

/* --- Kort: en yta, en kant, en skugga ------------------------------------ */
/* :where() håller gruppen svag, så att statusreglerna nedan alltid vinner. */
body:has(#review) :where(.kpi,.score-block,.outcome-block,.policy-card,.portfolio-card,.afford,.insights article,
  .decision-trigger,.decision-summary,.chart-card,.table-card,.history,.notes-card,.subject-card,.household,.link-card,details){
  background:var(--lp-surface); border-color:var(--lp-line); box-shadow:var(--lp-shadow);
}
body:has(#review) :where(.kpi,.score-block,.outcome-block,.afford,.insights article,.chart-card){ border-radius:16px; }
body:has(#review) :is(.kpi.has-pop,.score-block.has-pop,.outcome-block.has-pop,.insights article.has-pop){ transition:transform .3s var(--lp-ease), box-shadow .3s ease, border-color .2s ease; }
body:has(#review) :is(.kpi.has-pop,.score-block.has-pop,.outcome-block.has-pop,.insights article.has-pop):hover{ box-shadow:var(--lp-shadow-lg); border-color:var(--lp-line-2); }

/* Nyckeltal: tunn statusrand upptill i stället för till vänster. */
body:has(#review) .kpi:before{ left:0; right:0; top:0; bottom:auto; width:auto; height:3px; background:var(--lp-line); }
body:has(#review) .kpi.good:before, body:has(#review) .kpi.green:before{ background:var(--lp-signal); }
body:has(#review) .kpi.bad:before, body:has(#review) .kpi.amber:before{ background:var(--lp-warn-fill); }
body:has(#review) .kpi.red:before{ background:var(--lp-bad-fill); }
body:has(#review) .kpi-label{ font-size:.8125rem; font-weight:500; letter-spacing:0; color:var(--lp-ink-2); }
body:has(#review) .kpi-value{ font-size:clamp(1.875rem,3.2vw,2.5rem); font-weight:600; letter-spacing:-.04em; line-height:1.05; color:var(--lp-ink); }
body:has(#review) .kpi-value .per{ font:500 .8125rem var(--lp-mono); letter-spacing:0; color:var(--lp-muted); }
body:has(#review) .kpi.good .kpi-value{ color:var(--lp-accent); }
body:has(#review) .kpi.bad .kpi-value{ color:var(--lp-warn); }
body:has(#review) .kpi.red .kpi-value{ color:var(--lp-bad); }
body:has(#review) .kpi-sub{ font-size:.8125rem; color:var(--lp-muted); line-height:1.5; }
body:has(#review) .mon-card-status{ font-size:1.5rem; }
body:has(#review) .mon-card-status.bad{ color:var(--lp-bad); }
body:has(#review) .mon-card-status.warn{ color:var(--lp-warn); }
body:has(#review) .mon-card-status.good{ color:var(--lp-accent); }

/* --- Poängen: ring runt siffran ------------------------------------------ */
body:has(#review) .score-block{ text-align:center; padding:24px 22px; }
body:has(#review) .score-block.green{ background:linear-gradient(180deg,var(--lp-accent-soft),var(--lp-surface) 72%); border-color:var(--lp-accent-line); }
body:has(#review) .score-block.amber{ background:linear-gradient(180deg,var(--lp-warn-soft),var(--lp-surface) 72%); border-color:var(--lp-warn-line); }
body:has(#review) .score-block.red{ background:linear-gradient(180deg,var(--lp-bad-soft),var(--lp-surface) 72%); border-color:var(--lp-bad-line); }
body:has(#review) .score-eyebrow{ color:var(--lp-muted); }
body:has(#review) .score-dial{ position:relative; width:168px; height:168px; margin:16px auto 14px; display:grid; place-items:center; }
body:has(#review) .score-dial-ring{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
body:has(#review) .score-dial-ring circle{ fill:none; stroke-width:8; stroke-linecap:round; }
body:has(#review) .sd-track{ stroke:var(--lp-sunken); }
body:has(#review) .sd-value{ stroke:var(--lp-ink-2); animation:rv-draw 1.3s cubic-bezier(.65,0,.35,1) .2s both; }
body:has(#review) .score-block.green .sd-value{ stroke:var(--lp-signal); }
body:has(#review) .score-block.amber .sd-value{ stroke:var(--lp-warn-fill); }
body:has(#review) .score-block.red .sd-value{ stroke:var(--lp-bad-fill); }
@keyframes rv-draw{ from{ stroke-dasharray:0 100; } }
body:has(#review) .score-dial .score-big{
  margin:0; display:flex; flex-direction:column; align-items:center; gap:6px;
  font-size:3.25rem; font-weight:600; line-height:1; letter-spacing:-.05em; color:var(--lp-ink);
}
body:has(#review) .score-block.green .score-big{ color:var(--lp-accent); }
body:has(#review) .score-block.amber .score-big{ color:var(--lp-warn); }
body:has(#review) .score-block.red .score-big{ color:var(--lp-bad); }
body:has(#review) .score-dial .score-big small{ font:500 .75rem/1 var(--lp-mono); letter-spacing:0; color:var(--lp-muted); }
body:has(#review) .score-label{ font-size:1.0625rem; font-weight:600; letter-spacing:-.015em; color:var(--lp-ink); }
body:has(#review) .score-ratio{
  margin:10px 3px 0; padding:5px 10px; border-radius:999px; background:var(--lp-sunken);
  font-size:.75rem; font-weight:500; color:var(--lp-ink-2);
}
body:has(#review) .score-validation{ margin:10px 3px 0; border-color:var(--lp-line-2); color:var(--lp-ink-2); font-weight:500; font-size:.75rem; background:transparent; }
body:has(#review) .score-validation.warn{ background:var(--lp-warn-soft); border:1px solid var(--lp-warn-line); color:var(--lp-warn); }
body:has(#review) .score-validation.ok{ background:var(--lp-accent-soft); border:1px solid var(--lp-accent-line); color:var(--lp-accent); }
body:has(#review) .score-meaning{ color:var(--lp-muted); }

/* --- Utfallet: tydlig statusyta ------------------------------------------ */
body:has(#review) .outcome-block.green{ background:var(--lp-accent-soft); border-color:var(--lp-accent-line); }
body:has(#review) .outcome-block.amber{ background:var(--lp-warn-soft); border-color:var(--lp-warn-line); }
body:has(#review) .outcome-block.red{ background:var(--lp-bad-soft); border-color:var(--lp-bad-line); }
/* Ikoner med text: textbärande ton (-accent/-bad), inte fyllnadstonen, så
   att tecknet klarar kontrastkravet i båda lägena. */
body:has(#review) .outcome-block .outcome-icon{ background:var(--lp-accent); color:var(--lp-surface); font-size:1.125rem; }
body:has(#review) .outcome-block.amber .outcome-icon{ background:var(--lp-warn-fill); color:#1c1300; }
body:has(#review) .outcome-block.red .outcome-icon{ background:var(--lp-bad); color:var(--lp-surface); }
body:has(#review) .outcome-block b{ font-size:1.0625rem; letter-spacing:-.015em; color:var(--lp-ink); }
body:has(#review) .outcome-block.amber b{ color:var(--lp-warn); }
body:has(#review) .outcome-block.red b{ color:var(--lp-bad); }
body:has(#review) .outcome-block p{ color:var(--lp-ink-2); font-size:.875rem; }

/* --- Kreditpolicy, portfölj, utrymme ------------------------------------- */
body:has(#review) .policy-card{ background:var(--lp-warn-soft); border-color:var(--lp-warn-line); border-left:3px solid var(--lp-warn-fill); }
body:has(#review) .policy-card .eyebrow{ color:var(--lp-warn); }
body:has(#review) .policy-card.policy-passed{ background:var(--lp-surface); border-color:var(--lp-line); border-left-color:var(--lp-signal); }
body:has(#review) .policy-card.policy-passed .eyebrow{ color:var(--lp-accent); }
body:has(#review) :is(.policy-card li,.policy-note){ color:var(--lp-ink-2); }
body:has(#review) .portfolio-card{ border-left:3px solid var(--lp-line-2); }
body:has(#review) .portfolio-card.good{ border-left-color:var(--lp-signal); }
body:has(#review) .portfolio-card.low{ border-left-color:var(--lp-warn-fill); }
body:has(#review) .portfolio-main span{ color:var(--lp-muted); }

body:has(#review) .afford{ border-radius:16px; }
body:has(#review) .afford-ok{ background:var(--lp-accent-soft); border-color:var(--lp-accent-line); }
body:has(#review) .afford-action{ background:var(--lp-warn-soft); border-color:var(--lp-warn-line); }
body:has(#review) .afford-block{ background:var(--lp-bad-soft); border-color:var(--lp-bad-line); }
body:has(#review) .afford-ok .eyebrow{ color:var(--lp-accent); }
body:has(#review) .afford-action .eyebrow{ color:var(--lp-warn); }
body:has(#review) .afford-block .eyebrow{ color:var(--lp-bad); }
body:has(#review) .afford h2{ font-size:1.375rem; font-weight:600; letter-spacing:-.025em; }
body:has(#review) :is(.afford-lead,.afford-note){ color:var(--lp-ink-2); }
body:has(#review) .afford-figure{ background:var(--lp-surface); border:1px solid var(--lp-line); box-shadow:var(--lp-shadow); }
body:has(#review) .afford-label{ color:var(--lp-muted); }
body:has(#review) .afford-value{ font-size:clamp(1.625rem,2.8vw,2.125rem); font-weight:600; letter-spacing:-.04em; }
body:has(#review) .afford-value small{ font:500 .75rem var(--lp-mono); letter-spacing:0; color:var(--lp-muted); }
body:has(#review) .afford-ok .afford-value{ color:var(--lp-accent); }
body:has(#review) .afford-action .afford-value{ color:var(--lp-warn); }
body:has(#review) .afford-block .afford-value{ color:var(--lp-bad); }
body:has(#review) .afford-loans{ background:var(--lp-surface); box-shadow:none; }

/* --- Signallistor --------------------------------------------------------- */
body:has(#review) .insights h3{ font-size:1.25rem; font-weight:600; letter-spacing:-.02em; }
body:has(#review) :is(.positive-list,.warning-list) li{ color:var(--lp-ink-2); }
body:has(#review) .positive-list li:before{ color:var(--lp-signal); }
body:has(#review) .warning-list li:before{ color:var(--lp-warn-fill); }

/* --- Beslutsknappen ------------------------------------------------------- */
body:has(#review) .decision-trigger{ border-style:dashed; border-color:var(--lp-line-2); box-shadow:none; }
body:has(#review) .decision-trigger:hover{ border-color:var(--lp-accent); }
body:has(#review) .decision-trigger.set{ border-style:solid; }
body:has(#review) .decision-trigger.set.good{ background:var(--lp-accent-soft); border-color:var(--lp-accent-line); }
body:has(#review) .decision-trigger.set.warn{ background:var(--lp-warn-soft); border-color:var(--lp-warn-line); }
body:has(#review) .decision-trigger.set.bad{ background:var(--lp-bad-soft); border-color:var(--lp-bad-line); }
body:has(#review) .dt-label{ color:var(--lp-muted); }
body:has(#review) .dt-value{ font-weight:600; }
body:has(#review) .dt-action{ font-weight:600; color:var(--lp-accent); }

/* --- Tabeller, taggar, fördjupningar -------------------------------------- */
body:has(#review) th{ font:500 .6875rem/1.3 var(--lp-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--lp-muted); background:var(--lp-sunken); }
body:has(#review) td{ border-color:var(--lp-line); }
body:has(#review) .history table tr.risk td{ background:var(--lp-warn-soft); }
body:has(#review) .history table tr.ok td{ background:transparent; }
body:has(#review) .tag{ font-weight:600; }
body:has(#review) .tag.ok{ background:var(--lp-accent-soft); color:var(--lp-accent); }
body:has(#review) .tag.risk{ background:var(--lp-warn-soft); color:var(--lp-warn); }
body:has(#review) details{ border-radius:14px; }
body:has(#review) summary small{ color:var(--lp-muted); }

/* --- Diagram -------------------------------------------------------------- */
body:has(#review) .ch-grid{ stroke:var(--lp-line); }
body:has(#review) .ch-baseline{ stroke:var(--lp-muted); }
body:has(#review) .ch-baseline-label, body:has(#review) .ch-label{ fill:var(--lp-muted); font-weight:500; }
body:has(#review) .ch-payment{ stroke:var(--lp-warn-fill); }
body:has(#review) .ch-payment-label{ fill:var(--lp-warn); font-weight:500; }
body:has(#review) .ch-line{ stroke:var(--lp-signal); }
body:has(#review) .ch-dot{ fill:var(--lp-signal); stroke:var(--lp-surface); }
body:has(#review) .ch-area{ fill:color-mix(in srgb, var(--lp-signal) 14%, transparent); }
body:has(#review) .income-chart.warn .ch-line{ stroke:var(--lp-warn-fill); }
body:has(#review) .income-chart.warn .ch-dot{ fill:var(--lp-warn-fill); }
body:has(#review) .income-chart.warn .ch-area{ fill:color-mix(in srgb, var(--lp-warn-fill) 16%, transparent); }
body:has(#review) .income-chart.bad .ch-line{ stroke:var(--lp-bad-fill); }
body:has(#review) .income-chart.bad .ch-dot{ fill:var(--lp-bad-fill); }
body:has(#review) .income-chart.bad .ch-area{ fill:color-mix(in srgb, var(--lp-bad-fill) 14%, transparent); }

/* --- Rutor som öppnas (detaljer, beslut, rättigheter) --------------------- */
body:has(#review) :is(.rs-modal,.rights-modal){ background:var(--lp-surface); border:1px solid var(--lp-line); color:var(--lp-ink); box-shadow:var(--lp-shadow-lg); }
body:has(#review) :is(.rs-modal-head,.rights-modal-head){ border-bottom-color:var(--lp-line); }
body:has(#review) .kpi-pop-note{ color:var(--lp-ink-2); }
body:has(#review) .kpi-pop-row{ border-bottom-color:var(--lp-line); }
body:has(#review) .kpi-pop-row span{ color:var(--lp-muted); }
body:has(#review) .kpi-pop-row b{ font-weight:500; }
body:has(#review) :is(.decision-form select,.decision-form input,.decision-form textarea){ background:var(--lp-surface); border-color:var(--lp-line-2); color:var(--lp-ink); }

@media (prefers-reduced-motion: reduce){
  body:has(#review) .sd-value{ animation:none; }
}
@media (prefers-color-scheme: dark){
  body:has(#review) .brand-mark{ background:#ecf2ee; color:#0b0f0d; }
  body:has(#review) .primary:hover{ color:#06140d; }
}
}
