    :root{
      /* an das Banner-Gelb angelehnt */
      --bg: #e2b100;
      --text: #0b0b0b;
      --card: rgba(255,255,255,0.14);
      --border: rgba(0,0,0,0.35);
      --shadow: rgba(0,0,0,0.25);
      --link: #000;
      --anth:#2b2b2b;
      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }

    *{ box-sizing:border-box; }

  body{
    margin:0;
    min-height:100vh;
    background: var(--bg);
    color: var(--text);
    font-family: var(--mono);
    display:flex;
    flex-direction:column;
    padding-top: 56px; /* HÃ¶he der Nav */
  }


  main.page{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
  }

    .stack{
width: min(1100px, 92vw);
      display:flex;
      flex-direction:column;
      gap: 22px;
      align-items:center;
    }

    section{
      width:100%;
  max-width: 1100px;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 18px;
      box-shadow: 0 10px 30px var(--shadow);
      backdrop-filter: blur(6px);
    }

    h1{ 
	margin:0 0 6px 0; 
	font-size: 20px; 
	text-transform: uppercase; 
	letter-spacing: .4px; 
}

    h2{
      margin: 0 0 12px 0;
      font-size: 18px;
      letter-spacing: 0.4px;
      text-transform: uppercase;
    }

    p{
      margin: 0;
      line-height: 1.5;
      font-size: 14px;
      text-align: left;
      max-width: 900px;
      margin-inline: auto;
    }

    /* Logo / Banner */
    .banner-wrap{
      display:flex;
      justify-content:center;
    }

    .banner{
      width:100%;
      max-width: 980px;
      border-radius: 14px;
      border: 1px solid var(--border);
      box-shadow: 0 10px 26px var(--shadow);
      overflow:hidden;
      background: rgba(0,0,0,0.08);
    }

    .banner img{
      display:block;
      width:100%;
      height:auto;
    }

    .form{
      display:flex;
      flex-wrap:wrap;
      gap: 10px;
      justify-content:center;
      align-items:center;
      margin-top: 10px;
    }

    input[type="text"]{
      width:min(520px, 100%);
      padding: 12px 12px;
      border-radius: 12px;
      border: 1px solid rgba(0,0,0,0.45);
      background: rgba(255,255,255,0.20);
      color: #000;
      font-family: var(--mono);
      font-size: 14px;
      outline: none;
    }

    input[type="text"]:focus{
      border-color: rgba(0,0,0,0.70);
      background: rgba(255,255,255,0.26);
    }

    button{
      padding: 12px 14px;
      border-radius: 12px;
      border: 1px solid rgba(0,0,0,0.55);
      background: rgba(0,0,0,0.08);
      color:#000;
      font-family: var(--mono);
      font-size: 14px;
      cursor:pointer;
      transition: background 120ms linear, color 120ms linear, border-color 120ms linear;
    }
    button:hover{
      background: rgba(0,0,0,0.14);
      border-color: rgba(0,0,0,0.75);
      color: var(--anth);
    }

    .msg{
      max-width: 900px;
      margin: 10px auto 0 auto;
      text-align:left;
      padding: 10px 12px;
      border-radius: 12px;
      border: 1px solid rgba(0,0,0,0.35);
      background: rgba(255,255,255,0.14);
      font-size: 13px;
    }

    .msg.err{
      border-color: rgba(0,0,0,0.55);
      background: rgba(0,0,0,0.06);
    }


    /* Tabelle */
    .table-wrap{
      overflow:auto;
      border-radius: 12px;
      border: 1px solid var(--border);
      background: rgba(255,255,255,0.08);
 	margin-top: 10px;
    }

    table{
      width:100%;
      border-collapse: collapse;
      min-width: 920px;

    }

    th, td{
      padding: 12px 10px;
      border-bottom: 1px solid rgba(0,0,0,0.22);
      vertical-align: top;
      text-align:left;
      font-size: 13px;
    }

/* optional: feste Breite für die Spalte Verwendungszweck */
td.verwendungszweck,
th.verwendungszweck{
  width: 32%;
  white-space: normal;
}

    th{
      position: sticky;
      top: 0;
      background: rgba(255,255,255,0.18);
      border-bottom: 1px solid rgba(0,0,0,0.35);
      text-transform: uppercase;
      letter-spacing: 0.4px;
      font-size: 12px;
    }

    td small{
      opacity: 0.9;
    }

    details{
      margin-top: 6px;
    }
    pre{
      white-space: pre-wrap;
      word-break: break-word;
      margin: 8px 0 0 0;
      padding: 10px;
      border-radius: 10px;
      border: 1px solid rgba(0,0,0,0.25);
      background: rgba(0,0,0,0.06);
      font-size: 12px;
    }


    a{
      color: var(--link);
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .badge{
      display:inline-block;
      padding: 2px 8px;
      border: 1px solid var(--border);
      border-radius: 999px;
      background: rgba(0,0,0,0.06);
      font-size: 12px;
      white-space: nowrap;
    }

    footer{
      opacity: 0.85;
      font-size: 12px;
      margin-top: 6px;
    }

    @media (max-width: 720px){
      section{ padding: 16px; }
      p{ font-size: 13px; }
      h2{ font-size: 16px; }
    }

  /* Footer */

  footer.site-footer .inner{
    max-width:1100px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    gap: 10px 18px;
    justify-content:center;
    align-items:center;
  }

  footer.site-footer a{
    color:#000;
    text-decoration:underline;
    text-underline-offset:2px;
  }

  /* Globale Link-Styles */
  a{
    color:#000;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 120ms linear;
  }

  a:hover{
    color:#2b2b2b; /* Anthrazit */
  }

  /* Footer Ã¼berschreibt bewusst die globalen Farben */
  footer.site-footer{
    width:100%;
    border-top: 1px solid rgba(255,255,0,0.35);
    background:#000;
    color:#e2b100;
    text-align:center;
    padding: 14px 10px;
    font-size: 12px;
  }

  footer.site-footer .inner{
    max-width:1100px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    gap: 10px 18px;
    justify-content:center;
    align-items:center;
  }

  footer.site-footer a{
    color:#e2b100;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 120ms linear;
  }

  footer.site-footer a:hover{
    color:#2b2b2b; /* Anthrazit */
  }

  nav.site-nav{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 56px;
    z-index: 1000;

    background: #000;
    color: #e2b100;
    border-bottom: 1px solid rgba(255,255,0,0.35);

    display: flex;
    align-items: center;
    justify-content: center;
  }

  nav.site-nav .inner{
    width: min(1100px, 92vw);
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: center;
  }

  nav.site-nav a{
    color: #e2b100;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    transition: color 120ms linear;
  }

  nav.site-nav a:hover{
    color: #2b2b2b; /* Anthrazit */
  }

/* Einheitliche Tabellenstruktur für alle IR-Phasen */
.ir-table{
  width:100%;
  border-collapse: collapse;
  table-layout: fixed; /* zwingend */
}

.ir-table th,
.ir-table td{
  padding:10px;
  border-bottom:1px solid rgba(0,0,0,0.22);
  vertical-align: top;
  text-align:left;
  font-size:13px;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Feste Spaltenbreiten */
.ir-table .col-help{
  width: 28%;          /* fix, überall gleich */
}

.ir-table .col-desc{
  width: 72%;          /* Rest */
}

.ir-table th{
  background: rgba(255,255,255,0.18);
  text-transform: uppercase;
  font-size:12px;
}
