/* Herkunft: eluent-spot public/assets/eluent.css, dort webapptrading public/assets/eluent.css @ 8697c56 (Kopie, unveraendert).
   Aenderungen an der Marke gehoeren dorthin; Ergaenzungen fuer spot in spot.css. */
/* ============================================================
   eluent. — Business in solution.
   Stylesheet der Handels-App nach dem Markenpaket
   design/brand/eluent/ (README.md ist die Uebergabedoku).

   Grundsaetze aus dem Brand-Board:
   - Laborpalette, benannt nach dem Labor (Kolben, Reagenz, Braunglas ...)
   - scharfe Kanten, keine Rundungen, keine Schatten-Spielereien
   - Archivo fuer Wortmarke/Titel, IBM Plex Sans fuer Fliesstext,
     IBM Plex Mono fuer Chargen, Belege, Betraege und technische Labels
   ============================================================ */
:root{
  --kolben:#0E2B36;        /* Grundton dunkel */
  --reagenz:#1D5A6C;       /* Primaerfarbe */
  --braunglas:#C98F2A;     /* Akzent, Aktionen */
  --braunglas-tief:#A9761F;/* Hover auf Akzent */
  --indikator:#4FAE7E;     /* Erfolg, sparsam */
  --aktivkohle:#14191F;    /* Text */
  --graphit:#55606B;       /* Nebentext */
  --linie:#E3E0D8;         /* Rahmen, Trenner */
  --filterpapier:#F6F5F1;  /* Flaechen */
  --weiss:#FFFFFF;

  --schrift-titel:'Archivo',system-ui,sans-serif;
  --schrift-text:'IBM Plex Sans',system-ui,sans-serif;
  --schrift-mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--schrift-text);color:var(--aktivkohle);background:var(--filterpapier);
     line-height:1.6;font-size:15px;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
h1,h2,h3{font-family:var(--schrift-titel);color:var(--aktivkohle)}
img{max-width:100%}
a{color:var(--braunglas)}
a:hover{color:var(--braunglas-tief)}
:focus-visible{outline:3px solid var(--reagenz);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;width:100%}

/* Technisches Label: Mono, versal, gesperrt (Muster der Artboards) */
.tech{font-family:var(--schrift-mono);font-size:11px;letter-spacing:.14em;
      text-transform:uppercase;color:var(--graphit)}

/* ---------- Wortmarke ---------- */
.wortmarke{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap}
.wortmarke svg{display:block;flex-shrink:0}
.wortmarke .name{font-family:var(--schrift-titel);font-weight:700;font-size:24px;
                 letter-spacing:-.02em;color:var(--filterpapier)}
.wortmarke .punkt{color:var(--braunglas)}

/* ---------- Kopfleiste (Anwendungsseiten) ---------- */
header.topbar{background:var(--kolben);border-bottom:3px solid var(--braunglas)}
.topbar .nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:64px}
.topbar .modul{font-family:var(--schrift-mono);font-size:11px;letter-spacing:.14em;
               text-transform:uppercase;color:#7FA8B5}
.nav-user{display:flex;align-items:center;gap:14px;font-size:13px;color:#B8CCD4;white-space:nowrap}
.nav-user b{color:var(--filterpapier);font-weight:600;max-width:220px;overflow:hidden;
            text-overflow:ellipsis;white-space:nowrap}
.nav-user a{color:var(--braunglas);text-decoration:none;font-weight:600}
.nav-user a:hover{color:#E0B054;text-decoration:underline}

/* ---------- Seitenkopf ---------- */
.seitenkopf{background:var(--weiss);border-bottom:1px solid var(--linie);padding:36px 0 30px}
.seitenkopf h1{font-weight:700;font-size:clamp(24px,3.5vw,34px);letter-spacing:-.015em;line-height:1.15}
.seitenkopf .sub{margin-top:8px;font-size:15px;color:var(--graphit);max-width:62ch}

/* ---------- Kennzahlen ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{background:var(--weiss);border:1px solid var(--linie);padding:18px 20px}
.stat b{display:block;font-family:var(--schrift-titel);font-weight:800;
        font-size:clamp(24px,2.8vw,32px);color:var(--kolben);line-height:1.1}
.stat span{display:block;margin-top:4px;font-family:var(--schrift-mono);font-size:11px;
           letter-spacing:.1em;text-transform:uppercase;color:var(--graphit)}

/* ---------- Tabellen ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--linie);background:var(--weiss)}
.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.tbl th{font-family:var(--schrift-mono);font-weight:500;font-size:11px;letter-spacing:.1em;
        text-transform:uppercase;color:var(--graphit);text-align:left;
        padding:12px 14px;border-bottom:2px solid var(--kolben);white-space:nowrap;background:var(--weiss)}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--linie);color:var(--aktivkohle);
        line-height:1.5;vertical-align:top}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr:hover td{background:var(--filterpapier)}
.tbl .num{text-align:right;white-space:nowrap}
.tbl .mono,.mono{font-family:var(--schrift-mono);font-size:13px}
.tbl .neben{color:var(--graphit);font-size:12px}

/* ---------- Status-Badges ---------- */
.badge{display:inline-block;padding:3px 10px;font-family:var(--schrift-mono);font-size:11px;
       letter-spacing:.06em;font-weight:500;white-space:nowrap;border:1px solid transparent}
.badge-open{background:#EDEFF1;color:var(--graphit);border-color:#DDE1E5}
.badge-warn{background:#F8EEDC;color:#8A5E14;border-color:#EBD8B2}
.badge-progress{background:#E2EDF1;color:var(--reagenz);border-color:#C6DBE2}
.badge-done{background:#E6F4EC;color:#2E7D57;border-color:#C4E4D2}
.badge-locked{background:var(--kolben);color:var(--filterpapier);border-color:var(--kolben)}

/* Status-Legende */
.st-legend{margin-top:26px;background:var(--weiss);border:1px solid var(--linie);
           padding:14px 18px;max-width:900px}
.st-legend summary{cursor:pointer;font-family:var(--schrift-titel);font-weight:600;
                   color:var(--kolben);font-size:14.5px}
.st-legend-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin-top:14px;align-items:start}
.st-legend-badge{white-space:nowrap}
.st-legend-text{font-size:13.5px;color:var(--graphit);line-height:1.5;padding-top:2px}
.st-legend-note{margin-top:12px;font-size:13px;color:var(--reagenz)}
@media(max-width:600px){.st-legend-grid{grid-template-columns:1fr;gap:2px}.st-legend-text{margin-bottom:8px}}

/* ---------- Meldungen ---------- */
.msg{padding:12px 16px;font-size:14px;margin-bottom:18px;line-height:1.6;border:1px solid;border-left-width:3px}
.msg-ok{background:#E6F4EC;color:#2E7D57;border-color:#C4E4D2;border-left-color:var(--indikator)}
.msg-err{background:#FBEAE6;color:#A03B24;border-color:#F0CCC2;border-left-color:#A03B24}
.msg-warn{background:#F8EEDC;color:#8A5E14;border-color:#EBD8B2;border-left-color:var(--braunglas)}

/* ---------- Formulare ---------- */
.formular{display:flex;flex-direction:column;gap:20px}
.formular label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:var(--aktivkohle)}
.formular input{height:48px;border:1px solid var(--linie);background:var(--filterpapier);
                padding:0 14px;font-family:var(--schrift-text);font-size:16px;color:var(--aktivkohle);
                font-weight:400;width:100%}
.formular input:focus{outline:none;border-color:var(--reagenz)}
.formular input::placeholder{color:#9AA4AD}
.code-input{font-family:var(--schrift-mono);letter-spacing:.4em;text-align:center;
            font-size:22px !important;font-weight:500}

.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;
     background:var(--braunglas);color:var(--aktivkohle);font-family:var(--schrift-titel);
     font-weight:700;font-size:16px;border:none;cursor:pointer;text-decoration:none;width:100%}
.btn:hover{background:var(--braunglas-tief);color:var(--aktivkohle)}
.btn.neben{background:transparent;border:1px solid var(--linie);color:var(--graphit);
           font-size:13px;height:38px;width:auto}
.btn.neben:hover{border-color:var(--graphit);background:var(--filterpapier);color:var(--aktivkohle)}

/* ---------- Anmeldeseiten: geteiltes Layout (Vorlage Login.dc.html) ---------- */
.auth-split{flex:1;display:flex;min-height:100vh}
.auth-marke{width:360px;flex-shrink:0;background:var(--kolben);display:flex;flex-direction:column;
            justify-content:space-between;padding:44px 40px;position:relative;overflow:hidden}
.auth-marke .kurve{position:absolute;left:-110px;bottom:-50px;opacity:.08;pointer-events:none}
.auth-marke .tagline{font-family:var(--schrift-titel);font-weight:600;font-size:24px;
                     letter-spacing:-.01em;color:var(--braunglas);position:relative}
.auth-marke .claim{margin-top:10px;font-size:14px;line-height:1.6;color:#B8CCD4;position:relative}
.auth-marke .absender{font-family:var(--schrift-mono);font-size:11px;letter-spacing:.14em;
                      line-height:1.9;color:#7FA8B5;position:relative}
.auth-buehne{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.auth-karte{width:100%;max-width:400px;background:var(--weiss);border:1px solid var(--linie);
            padding:36px;display:flex;flex-direction:column;gap:20px}
.auth-karte h1{font-weight:700;font-size:24px;letter-spacing:-.015em}
.auth-karte .sub{font-size:14px;color:var(--graphit);margin-top:6px}
.auth-fuss{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Schmale Bildschirme: aus der Seitenflaeche wird ein kompakter
   Markenkopf UEBER dem Formular - die Marke bleibt sichtbar. */
@media(max-width:860px){
  .auth-split{flex-direction:column}
  .auth-marke{width:100%;justify-content:flex-start;gap:14px;padding:22px 24px 24px;min-height:0}
  .auth-marke .kurve{width:360px;height:200px;left:auto;right:-70px;bottom:-46px;opacity:.1}
  .auth-marke .tagline{font-size:19px}
  .auth-marke .claim{margin-top:6px;font-size:13px}
  .auth-marke .absender{display:none}
  .auth-buehne{align-items:flex-start;padding:28px 16px 40px}
}

/* ---------- Fusszeile ---------- */
footer{border-top:1px solid var(--linie);padding:20px 0;margin-top:40px}
footer .fineprint{font-family:var(--schrift-mono);font-size:11px;letter-spacing:.08em;
                  text-transform:uppercase;color:var(--graphit)}
footer a{color:var(--graphit);text-decoration:underline}
footer a:hover{color:var(--braunglas-tief)}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .nav-user b{display:none}
}
@media(max-width:700px){
  .topbar .modul{display:none}
  .wortmarke .name{font-size:21px}
}
@media(max-width:560px){
  .stats{grid-template-columns:1fr}
  .auth-karte{padding:26px 20px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
