/* ===========================
    Basis / Reset
    =========================== */
:root{
--bg: #f7f7f8;
--card: #ffffff;
--muted: #6b7280;
--accent: #0f172a; /* dunkelblau/grau */
--accent-2: #0f4c81; /* dezenter Akzent */
--glass: rgba(15,23,42,0.04);
--success: #1e7e34;
--danger: #b02a37;
--radius: 12px;
--shadow: 0 6px 18px rgba(12,20,40,0.08);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
background: linear-gradient(180deg, var(--bg), #ffffff 120%);
color:var(--accent);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
padding:32px;
display:flex;
align-items:flex-start;
justify-content:center;
}

/* ===========================
    Layout
    =========================== */
.container{
width:100%;
max-width:1080px;
display:grid;
grid-template-columns: 1fr 420px;
gap:28px;
}

@media (max-width:1000px){
.container{ grid-template-columns: 1fr; padding:0 12px }
}

header{
grid-column: 1 / -1;
margin-bottom: 4px;
}

h1{
margin:0 0 6px 0;
font-size:20px;
letter-spacing: -0.2px;
}
p.lead{
margin:0;
color:var(--muted);
font-size:13px;
}

/* ===========================
    Rechnerkarte (links)
    =========================== */
.card{
background:var(--card);
border-radius:var(--radius);
box-shadow:var(--shadow);
padding:20px;
}

.card.large{
padding:28px;
}

.form-row{
display:flex;
gap:12px;
align-items:center;
margin-bottom:14px;
}

.form-row.col{
flex-direction:column;
align-items:stretch;
}

label{
display:block;
font-size:13px;
font-weight:600;
color:var(--accent);
margin-bottom:6px;
}

.input-group{
display:flex;
gap:8px;
align-items:center;
}

input[type="number"], input[type="text"], select{
-webkit-appearance:none;
appearance:none;
border:1px solid rgba(12,20,40,0.06);
padding:10px 12px;
border-radius:10px;
background:transparent;
outline:none;
font-size:14px;
color:var(--accent);
width:100%;
}

select{ padding-right:8px }

.unit-select{
min-width:110px;
}

.controls{
display:flex;
gap:8px;
align-items:center;
}

.btn{
background:var(--glass);
border:none;
padding:10px 12px;
border-radius:10px;
font-weight:600;
cursor:pointer;
color:var(--accent-2);
transition: all .12s ease;
font-size:13px;
}
.btn:hover{ 
background:linear-gradient(180deg,var(--accent-2),#093756);
color: #fff;

}

.btn.primary{
background:linear-gradient(180deg,var(--accent-2),#093756);
color: #fff;

}

/* ===========================
    Ergebnis-Panel (rechts)
    =========================== */
.panel{
position:sticky;
top:32px;
align-self:start;
}

.result-list{
display:grid;
gap:10px;
}

.result{
padding:12px;
border-radius:10px;
background:linear-gradient(180deg, rgba(60, 72, 98, 0.02rgba(89, 96, 112, 0.01)01));
border:1px solid rgba(12,20,40,0.04);
}
.result .title{
font-size:12px;
color:var(--muted);
margin-bottom:6px;
}
.result .value{
font-size:16px;
font-weight:700;
color:var(--accent);
}
.muted{
color:var(--muted);
font-size:13px;
}

/* ===========================
    Extras: Formelhervorhebung, explanation
    =========================== */
.formula{
background:linear-gradient(90deg, rgba(15,76,129,0.03), transparent);
border-radius:8px;
padding:12px;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;
font-size:13px;
color:var(--accent);
border:1px dashed rgba(15,23,42,0.04);
}

.small{
font-size:12px;
}

footer{
grid-column: 1 / -1;
margin-top:14px;
color:var(--muted);
font-size:13px;
}

.row{
display:flex;
gap:12px;
align-items:center;
justify-content:space-between;
}

/* slider style */
.range{
-webkit-appearance:none;
appearance:none;
height:8px;
border-radius:999px;
background:linear-gradient(90deg,var(--accent-2),rgba(15,76,129,0.5));
}

/* helper */
.note{ color:var(--muted); font-size:12px }

.kbd{
background:#eef2ff;
color:var(--accent-2);
font-weight:700;
padding:6px 8px;
border-radius:8px;
font-size:12px;
}

/* group labels for calc target */
.calc-target{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.chip{
padding:8px 12px;
border-radius:999px;
background:transparent;
border:1px solid rgba(12,20,40,0.06);
font-weight:600;
font-size:13px;
cursor:pointer;
}

.chip:hover{
background: linear-gradient(90deg,var(--accent-2),#0b608f);
color:white;

}

.chip.active{
background: linear-gradient(90deg,var(--accent-2),#0b608f);
color:white;

}

/* responsive tweaks */
@media (max-width:600px){
.form-row{ gap:8px }
.card.large{ padding:18px }
}