:root{
--km-dark:#3f455f;
--km-main:#4b526f;
--km-soft:#949bb7;
--km-bg1:#d8dceb;
--km-bg2:#c7ccdf;

--km-good:#4d8f61;
--km-warn:#c88b3a;
--km-bad:#a94747;
}

*{
box-sizing:border-box;
}

html,
body{
margin:0;
min-height:100%;
font-family:'Jura',sans-serif;
color:var(--km-main);
}

html{
background-color:#3e4147;
}

body{
min-height:100vh;
padding:32px 18px;

background:
linear-gradient(
rgba(62,65,71,.47),
rgba(62,65,71,.47)
),
url("https://api.krakkemat.be/media/algemeen/krakkemat-achtergrond.jpg")
center center / cover fixed no-repeat;

background-color:#3e4147;
}

button,
input,
select{
font-family:'Jura',sans-serif;
}

.km-health-page{
width:100%;
max-width:1100px;
margin:0 auto;
padding:42px 30px 34px;

border-radius:24px;

background:
radial-gradient(
circle at 50% 0%,
rgba(255,255,255,.36),
transparent 38%
),
linear-gradient(
135deg,
var(--km-bg1),
var(--km-bg2)
);

box-shadow:
inset 0 1px 0 rgba(255,255,255,.42),
0 18px 40px rgba(63,69,95,.12);
}


/*==================================================
HEADER
==================================================*/

.km-health-header{
text-align:center;
}

.km-health-logo-link{
display:inline-flex;
align-items:center;
justify-content:center;
margin-bottom:12px;
text-decoration:none;
}

.km-health-logo{
width:70px;
height:70px;
display:block;
object-fit:contain;
opacity:.94;
}

.km-health-header h1{
margin:0;

font-size:clamp(38px,5vw,58px);
line-height:1;
letter-spacing:.12em;
font-weight:700;

color:var(--km-dark);
}

.km-health-header h2{
margin:8px 0 0;

font-size:26px;
font-weight:600;
letter-spacing:.06em;

color:#6f7690;
}

.km-health-header p{
max-width:650px;
margin:14px auto 0;

font-size:15px;
line-height:1.55;

color:var(--km-main);
}


/*==================================================
SECTIONS
==================================================*/

.km-health-section,
.km-health-summary,
.km-health-diagnosis{
margin-top:26px;
padding:24px;

border-radius:18px;

background:rgba(255,255,255,.24);

border:1px solid rgba(75,82,111,.14);

box-shadow:
inset 0 1px 1px rgba(255,255,255,.45),
0 8px 18px rgba(63,69,95,.07);
}

.km-health-section-head{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:18px;
}

.km-health-section-head h3,
.km-health-diagnosis > h3{
margin:0 0 7px;

font-size:21px;
font-weight:700;

color:var(--km-dark);
}

.km-health-section-head p{
margin:0;

font-size:14px;
line-height:1.5;

color:var(--km-main);
}


/*==================================================
SOURCE LIST
==================================================*/

.km-health-sources{
display:grid;
gap:10px;
margin-top:20px;
}

.km-health-source{
display:grid;
grid-template-columns:auto 1fr auto;
align-items:center;
gap:14px;

min-height:58px;
padding:12px 14px;

border-radius:15px;

background:rgba(255,255,255,.24);

border:1px solid rgba(75,82,111,.11);
}

.km-health-source-light{
width:14px;
height:14px;

border-radius:50%;

background:var(--km-soft);

box-shadow:
0 2px 6px rgba(63,69,95,.20);
}

.km-health-source.ok .km-health-source-light{
background:var(--km-good);
}

.km-health-source.warn .km-health-source-light{
background:var(--km-warn);
}

.km-health-source.bad .km-health-source-light{
background:var(--km-bad);
}

.km-health-source-main{
min-width:0;
}

.km-health-source-name{
font-size:15px;
font-weight:700;

color:var(--km-dark);
}

.km-health-source-info{
margin-top:3px;

font-size:12px;
line-height:1.35;

color:var(--km-main);

overflow-wrap:anywhere;
}

.km-health-source-count{
text-align:right;

font-size:13px;
font-weight:700;

color:var(--km-main);
}

.km-health-source.bad .km-health-source-count{
color:var(--km-bad);
}

.km-health-source.warn .km-health-source-count{
color:var(--km-warn);
}

.km-health-loading{
padding:18px;

border-radius:15px;

background:rgba(255,255,255,.22);

font-size:14px;
font-weight:600;

color:var(--km-main);
}


/*==================================================
BUTTONS
==================================================*/

.km-health-btn{
display:inline-flex;
align-items:center;
justify-content:center;

min-height:42px;

padding:0 22px;

border-radius:16px;

border:1px solid rgba(75,82,111,.18);

background:var(--km-main);
color:#f4f6fb;

font-size:14px;
font-weight:700;
letter-spacing:.05em;
text-transform:uppercase;

cursor:pointer;

transition:
transform .18s ease,
background .18s ease,
opacity .18s ease;
}

.km-health-btn:hover{
transform:translateY(-1px);
background:var(--km-dark);
}

.km-health-btn:disabled{
opacity:.55;
cursor:default;
transform:none;
}

.km-health-btn-secondary{
background:var(--km-bg1);
color:var(--km-dark);
}

.km-health-btn-secondary:hover{
background:#c7ccdf;
}

.km-health-action-section{
text-align:center;
}

.km-health-message{
min-height:18px;
margin-top:12px;

font-size:13px;
font-weight:600;

color:var(--km-main);
}


/*==================================================
SUMMARY
==================================================*/

.km-health-summary-card{
text-align:center;
}

.km-health-summary-card h3{
margin:0 0 12px;

font-size:20px;

color:var(--km-dark);
}

.km-health-summary-state{
display:inline-flex;
align-items:center;
justify-content:center;

min-height:38px;
padding:0 18px;

border-radius:999px;

font-size:14px;
font-weight:800;
letter-spacing:.05em;
text-transform:uppercase;

background:rgba(75,82,111,.10);
color:var(--km-main);
}

.km-health-summary-state.good{
background:rgba(77,143,97,.13);
color:var(--km-good);
}

.km-health-summary-state.warn{
background:rgba(200,139,58,.15);
color:var(--km-warn);
}

.km-health-summary-state.bad{
background:rgba(169,71,71,.13);
color:var(--km-bad);
}

.km-health-summary-card p{
max-width:650px;
margin:14px auto 0;

font-size:14px;
line-height:1.5;

color:var(--km-main);
}


/*==================================================
DASHBOARD
==================================================*/

.km-health-dashboard{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:12px;

margin-top:22px;
}

.km-health-dashboard-card{
min-height:84px;

padding:14px;

display:flex;
flex-direction:column;
align-items:center;
justify-content:center;

text-align:center;

border-radius:15px;

background:rgba(255,255,255,.24);

border:1px solid rgba(75,82,111,.11);
}

.km-health-dashboard-card span{
font-size:11px;
font-weight:800;
letter-spacing:.06em;
text-transform:uppercase;

color:var(--km-main);
}

.km-health-dashboard-card strong{
margin-top:6px;

font-size:24px;
line-height:1;

color:var(--km-dark);
}


/*==================================================
REPORTS
==================================================*/

.km-health-report-grid{
display:grid;
gap:16px;

margin-top:18px;
}

.km-health-report-card{
padding:20px;

border-radius:16px;

background:rgba(255,255,255,.22);

border:1px solid rgba(75,82,111,.12);
}

.km-health-report-card.good{
border-color:rgba(77,143,97,.26);
}

.km-health-report-card.warn{
border-color:rgba(200,139,58,.34);
}

.km-health-report-card.bad{
border-color:rgba(169,71,71,.34);
}

.km-health-report-card h4{
margin:0;

font-size:18px;

color:var(--km-dark);
}

.km-health-report-meta{
margin-top:5px;

font-size:12px;
font-weight:700;
letter-spacing:.04em;
text-transform:uppercase;

color:var(--km-soft);
}

.km-health-report-ok{
margin:14px 0 0;

font-size:14px;
font-weight:700;

color:var(--km-good);
}

.km-health-report-list{
margin:14px 0 0;
padding-left:20px;

font-size:14px;
line-height:1.55;

color:var(--km-main);
}

.km-health-report-list li + li{
margin-top:5px;
}


/*==================================================
FOOTER
==================================================*/

.km-health-footer{
margin-top:26px;
text-align:center;
}

.km-health-back{
padding:0;

border:0;
background:none;

font-family:'Jura',sans-serif;
font-size:13px;
font-weight:700;

color:var(--km-main);

cursor:pointer;
}

.km-health-back:hover{
color:var(--km-dark);
}



/*==================================================
RESPONSIVE
==================================================*/

@media screen and (max-width:850px){

.km-health-dashboard{
grid-template-columns:repeat(2,1fr);
}

}

@media screen and (max-width:650px){

body{
padding:16px 10px;
background-attachment:scroll;
}

.km-health-page{
padding:32px 16px 28px;
}

.km-health-section,
.km-health-summary,
.km-health-diagnosis{
padding:18px;
}

.km-health-section-head{
flex-direction:column;
}

.km-health-section-head .km-health-btn{
width:100%;
}

.km-health-source{
grid-template-columns:auto 1fr;
}

.km-health-source-count{
grid-column:2;
text-align:left;
}

.km-health-dashboard{
grid-template-columns:1fr;
}

}