:root{
  --blue:#0b3c5d; --navy:#05263d; --teal:#00897b; --teal-l:#00bfae;
  --ok:#2e7d32; --ok-bg:#e8f5e9; --ok-b:#66bb6a;
  --wa:#e65100; --wa-bg:#fff3e0; --wa-b:#ffa726;
  --re:#c62828; --re-bg:#ffebee; --re-b:#ef5350;
  --bd:#d1dce6; --bg:#f0f4f8; --tx:#1a2634; --mu:#607d8b;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Tahoma,sans-serif;background:var(--bg);color:var(--tx);font-size:14px;line-height:1.5}
header{background:linear-gradient(90deg,var(--navy),var(--blue));padding:14px 22px;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.sitename{font-size:21px;font-weight:700;color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.sitename img{height:28px}
.bread{margin-top:6px;font-size:11px;color:#b0c4d8}
.bread a{color:#e0eaf4;text-decoration:none}
.wrap{max-width:860px;margin:24px auto;padding:0 16px}
.back{display:inline-block;margin-bottom:12px;color:var(--blue);font-size:13px;font-weight:700;text-decoration:none}

/* Cards */
.card{background:#fff;border:1px solid var(--bd);border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);margin-bottom:16px;overflow:hidden}
.card-head{background:var(--blue);color:#fff;padding:10px 18px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.card-body{padding:20px 22px}

/* Form */
.row{display:grid;gap:12px;margin-bottom:12px}
.r2{grid-template-columns:1fr 1fr}
.r3{grid-template-columns:1fr 1fr 1fr}
.r4{grid-template-columns:1fr 1fr 1fr 1fr}
label{display:block;font-size:11.5px;font-weight:600;color:var(--mu);margin-bottom:3px}
input,select{width:100%;padding:8px 10px;border:1px solid var(--bd);border-radius:5px;font-size:14px;color:var(--tx);background:#fff;transition:border-color .15s}
input:focus,select:focus{outline:none;border-color:var(--teal-l);box-shadow:0 0 0 2px rgba(0,191,174,.15)}
input[readonly]{background:#f5f8fa;color:var(--mu)}
.hint{font-size:11px;color:var(--mu);margin-top:3px}

/* SD-Lock indicator */
.sd-lock-row{display:flex;align-items:center;gap:6px;margin-top:5px}
.sd-lock-row input[type=checkbox]{width:auto;padding:0}
.sd-lock-label{font-size:11px;color:var(--mu);cursor:pointer;user-select:none}
.sd-lock-label.locked{color:var(--wa);font-weight:700}

/* Limits bar */
.limits{background:#f5f8fa;border:1px solid var(--bd);border-radius:5px;padding:8px 12px;font-size:12.5px;margin-top:4px;line-height:1.8}
.lw{color:var(--wa);font-weight:700}
.lr{color:var(--re);font-weight:700}

/* Action box */
.action-box{background:linear-gradient(135deg,#e6f7fb,#edfaf5);border:2px solid var(--teal-l);border-radius:8px;padding:16px 18px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:700;transition:all .15s}
.btn-go{background:var(--teal);color:#fff;font-size:15px;padding:12px 28px}
.btn-go:hover{background:var(--teal-l);box-shadow:0 3px 8px rgba(0,137,123,.3)}
.btn-sm{background:#607d8b;color:#fff;font-size:12px;padding:7px 14px}
.btn-sm:hover{background:#455a64}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}

/* Result */
.result{margin-top:14px;padding:16px 20px;border-radius:7px;display:none;border:2px solid}
.result.ok{background:var(--ok-bg);border-color:var(--ok-b);display:block}
.result.wa{background:var(--wa-bg);border-color:var(--wa-b);display:block}
.result.re{background:var(--re-bg);border-color:var(--re-b);display:block}
.rtitle{font-size:17px;font-weight:700;margin-bottom:6px}
.ok .rtitle{color:var(--ok)} .wa .rtitle{color:var(--wa)} .re .rtitle{color:var(--re)}
.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700;margin:2px}
.b-ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-b)}
.b-wa{background:var(--wa-bg);color:var(--wa);border:1px solid var(--wa-b)}
.b-re{background:var(--re-bg);color:var(--re);border:1px solid var(--re-b)}

/* Chart */
canvas{width:100%;border:1px solid var(--bd);border-radius:6px;display:block;background:#fff}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--mu);margin-top:6px;justify-content:center;align-items:center}
.legend span{display:flex;align-items:center;gap:4px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.1)}
.dia{width:10px;height:10px;display:inline-block;border:1px solid rgba(0,0,0,.15);
  transform:rotate(45deg);vertical-align:middle;margin:0 2px}
.dl-row{display:flex;gap:8px;margin-top:10px;justify-content:flex-end;flex-wrap:wrap}

/* History table */
.htable{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px}
.htable th{background:#4a5c6a;color:#fff;padding:6px 8px;text-align:left;font-size:11px;white-space:nowrap}
.htable td{padding:5px 8px;border-bottom:1px solid #e8ecf0}
.htable tr:nth-child(even) td{background:#f7fafd}
.c-ok{color:var(--ok);font-weight:700} .c-wa{color:var(--wa);font-weight:700} .c-re{color:var(--re);font-weight:700}

/* Qualab ref */
.rtable{width:100%;border-collapse:collapse;font-size:12.5px}
.rtable th{background:#4a5c6a;color:#fff;padding:7px 10px;text-align:left}
.rtable td{padding:6px 10px;border-bottom:1px solid #eee;vertical-align:top}
.rtable tr:nth-child(even) td{background:#f7fafd}
.tr{background:var(--re-bg);color:var(--re);padding:1px 7px;border-radius:10px;font-size:10.5px;font-weight:700;white-space:nowrap}
.tw{background:var(--wa-bg);color:var(--wa);padding:1px 7px;border-radius:10px;font-size:10.5px;font-weight:700;white-space:nowrap}

.note{background:#f0f9ff;border:1px solid #b3d9f5;border-radius:5px;padding:9px 13px;font-size:12.5px;color:#1a3c5a;margin-top:10px}
.disc{background:var(--wa-bg);border:1px solid var(--wa-b);border-radius:5px;padding:11px 16px;font-size:12.5px;color:#5a3000}
.qb{display:inline-flex;align-items:center;background:#e8f0fe;border:1px solid #91b4f0;border-radius:10px;padding:2px 9px;font-size:11px;font-weight:700;color:#1a3c8a}

footer{text-align:center;font-size:12px;color:#64748b;margin-top:32px;padding-bottom:24px}
footer a{color:var(--blue);text-decoration:none;margin:0 7px}

@media(max-width:580px){
  .r2,.r3,.r4{grid-template-columns:1fr}
  .btn-go{width:100%;justify-content:center}
}

/* ============================================================
   Etappe 2 – Utility-Klassen (ersetzen ehemalige Inline-Styles)
   ============================================================ */
.intro{background:linear-gradient(90deg,#e7f3fd,#f4faff);border-left:4px solid var(--blue);padding:14px 18px;border-radius:4px;margin-bottom:16px}
.intro-title{color:var(--blue);font-size:16px;font-weight:700}
.intro-sub{font-size:12.5px;color:#555}

.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:6px}
.feat{border-radius:8px;padding:12px 14px;min-width:170px}
.feat-h{font-weight:700;color:var(--blue);margin-bottom:4px}
.feat-b{font-size:13px;color:#071e2e;line-height:1.5}
.feat-1{background:#e3f2fd;border:1px solid #1565a0}
.feat-2{background:#e8f5e9;border:1px solid #00897b}
.feat-3{background:#e0f7fa;border:1px solid #00bfae}

/* Rechtlicher Block */
.legal-body{font-size:12.5px;line-height:1.6;color:#37474f}
.legal-body p{margin-bottom:10px}
.legal-body .disc{margin-bottom:14px}
.legal-body .note{margin-top:4px}
.footnote{font-size:12px;color:#8a9eb0;margin-top:14px;line-height:1.6}

/* Resultat / Massnahmen */
.muted{color:var(--mu)}
.res-info{margin:0 0 8px;font-size:13px}
.res-badges{margin-bottom:6px}
.res-rules{font-size:12px;margin:0}
.res-ok{font-size:12px;margin:0;color:var(--ok)}
.act{font-size:12.5px;margin-top:8px}
.act-re{color:var(--re)}
.act-wa{color:var(--wa);margin-top:6px}

/* Historientabelle – Spalten-Styles */
.htable .idx{color:var(--mu);font-size:11px}
.htable .rule{font-size:11px;color:var(--mu)}
.htable .rule.re{color:var(--re)}
.htable .rem{font-size:11px;color:var(--mu)}

.opt{font-weight:400;font-size:10px}

/* Etappe 2 – restliche Inline-Styles als Klassen */
.span2{grid-column:span 2}
.is-hidden{display:none}
.tbl-wrap{margin-top:16px;overflow-x:auto}
.nodata{text-align:center;font-size:12.5px;margin:10px 0}
.legend-sep{border-left:1px solid #ccc;padding-left:12px}
.dot-re{background:#ef5350}
.dot-wa{background:#ffc107}
.dot-teal{background:#00897b}
.dot-ok{background:#2e7d32}
.dot-warn{background:#f57f17}
.note-mb{margin-bottom:12px}
