/* ==========================================================================
   Lichtpunkte-Netzwerk - Designrichtlinien & CSS Core (stil.css)
   GemÃ¤ÃŸ "2. Technische Grundvorgaben und Designrichtlinien fÃ¼r die Programmierung"
   ========================================================================== */

:root {
  /* 3. Farbpalette (Hex-Codes) */
  --color-bg: #FFFFFF;          /* Seitenhintergrund */
  --color-primary: #1DC1B8;     /* PrimÃ¤rfarbe & TÃ¼rkis */
  --color-secondary: #F9D44D;   /* SekundÃ¤rfarbe */
  --color-accent: #B4771E;      /* Akzentfarbe */
  --color-text: #784503;        /* Allgemeine Schriftfarbe (Braun) */
  --color-additional: #BFE3DF;  /* ZusÃ¤tzliche Elemente */

  /* 4. Buttons und Elemente */
  --btn-green: #2F9E44;         /* GrÃ¼ner Button */
  --btn-turquoise: #1DC1B8;     /* TÃ¼rkiser Button */
  --btn-red: #B03B3B;           /* Roter Button */
  --btn-text: #FFFFFF;          /* Schriftfarbe auf Buttons (Immer WeiÃŸ) */

  /* Globaler Radius (Exakt 25 Pixel) */
  --border-radius: 25px;
}

/* Base Body Styles */
body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: Arial, sans-serif;
  font-size: 20px;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}

/* FlieÃŸtext / AbsÃ¤tze in Blocksatz */
p {
  text-align: justify;
}

/* 5. Typografie und Ãœberschriftenstruktur */
h1 {
  font-size: 42px;
  
  color: var(--color-primary);
  margin-top: 0;
}

h2 {
  font-size: 34px;
  
  color: var(--color-primary);
  margin-top: 0;
}

h3 {
  font-size: 28px;
  
  color: var(--color-primary);
  margin-top: 0;
}

h4 {
  font-size: 22px;
  font-weight: normal;
  color: var(--color-primary);
  margin-top: 0;
}

h5 {
  font-size: 20px;
  font-weight: normal;
  color: var(--color-primary);
}

/* 4. Radius fÃ¼r ausnahmslos alle Elemente (25px) */
img, form, .modal, .box, button, .btn, input, textarea, select, .admin-box {
  border-radius: var(--border-radius);
}

/* Formulare & Eingabefelder */
input, textarea, select {
  border: 2px solid var(--color-additional);
  padding: 12px 18px;
  font-size: 20px;
  color: var(--color-text);
  background-color: #FCFCFC;
  box-sizing: border-box;
  width: 100%;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* Formular-Validierung Styles */
.input-wrapper {
  position: relative;
  margin-bottom: 15px;
  width: 100%;
}

input.is-valid, textarea.is-valid, select.is-valid {
  border-color: var(--btn-green) !important;
  background-color: #E8F8F5 !important;
}

input.is-invalid, textarea.is-invalid, select.is-invalid {
  border-color: var(--btn-red) !important;
  background-color: #FDF2F2 !important;
}

.valid-icon {
  position: absolute;
  right: 15px;
  top: 16px;
  color: #0284C7;
  font-size: 20px;
  pointer-events: none;
}

.error-message {
  display: block;
  color: var(--btn-red);
  font-size: 14px;
  margin-top: 4px;
  padding-left: 5px;
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 12px 28px;
  border: none;
  cursor: pointer;
  color: var(--btn-text) !important;
  font-size: 20px;
  text-decoration: none;
  text-align: center;
  
}

@keyframes pulse-shake {
  0% { transform: translate(1px, 1px) rotate(0deg); box-shadow: 0 0 0 0 rgba(29, 193, 184, 0.7); }
  10% { transform: translate(-1px, -2px) rotate(-1deg); }
  20% { transform: translate(-3px, 0px) rotate(1deg); }
  30% { transform: translate(3px, 2px) rotate(0deg); box-shadow: 0 0 0 15px rgba(29, 193, 184, 0); }
  40% { transform: translate(1px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, 2px) rotate(-1deg); box-shadow: 0 0 0 0 rgba(29, 193, 184, 0); }
  60% { transform: translate(-3px, 1px) rotate(0deg); }
  70% { transform: translate(3px, 1px) rotate(-1deg); }
  80% { transform: translate(-1px, -1px) rotate(1deg); box-shadow: 0 0 0 15px rgba(29, 193, 184, 0); }
  90% { transform: translate(1px, 2px) rotate(0deg); }
  100% { transform: translate(1px, -2px) rotate(-1deg); box-shadow: 0 0 0 0 rgba(29, 193, 184, 0); }
}

.btn:hover {
  animation: pulse-shake 0.4s 1;
}

.btn-green {
  background-color: var(--btn-green);
}

.btn-turquoise {
  background-color: var(--btn-turquoise);
}

.btn-red {
  background-color: var(--btn-red);
}

/* Layout Hilfsklassen */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

.header-logo {
  max-width: 200px;
  display: block;
  margin: 20px auto;
}

.box {
  background: #FFFFFF;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  border: 1px solid var(--color-additional);
}

/* ==========================================================================
   Responsive Typografie & Layout fÃ¼r mobile GerÃ¤te (Displays unter 888px)
   ========================================================================== */
@media (max-width: 888px) {
  body {
    font-size: 18px;
    line-height: 1.5;
  }

  p {
    text-align: justify;
    hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
  }

  /* ca. 10% Reduktion der Ãœberschriften auf mobilen GerÃ¤ten */
  h1 {
    font-size: 38px;
    line-height: 1.25;
    margin-bottom: 0.5em;
  }

  h2 {
    font-size: 30px;
    line-height: 1.3;
    margin-bottom: 0.5em;
  }

  h3 {
    font-size: 25px;
    line-height: 1.35;
    margin-bottom: 0.5em;
  }

  h4 {
    font-size: 20px;
    line-height: 1.4;
    margin-bottom: 0.5em;
  }

  h5 {
    font-size: 18px;
    line-height: 1.4;
  }

  .container {
    padding: 15px;
  }

  .box, .login-container {
    padding: 20px;
  }

  input, textarea, select {
    font-size: 18px;
    padding: 10px 14px;
  }

  .btn {
    font-size: 18px;
    padding: 10px 20px;
  }
}

/* ==========================================================================
   Profil, Formulare & Lightbox
   ========================================================================== */

/* Lightbox */
.lightbox-overlay {
    display: none;
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.8);
    z-index: 10000;
    justify-content: center;
    align-items: center;
    animation: fadeIn 0.3s ease;
}
.lightbox-content {
    max-width: 90%; max-height: 90%;
    border-radius: var(--border-radius);
    box-shadow: 0 5px 25px rgba(0,0,0,0.5);
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* Formulardesign & Profil */
.profile-form-group {
    margin-bottom: 20px;
}
.profile-form-group label {
    display: block;
    
    color: var(--color-primary);
    margin-bottom: 5px;
}
.profile-box {
    background: var(--color-bg);
    padding: 30px;
    border-radius: var(--border-radius);
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.profile-header {
    text-align: center;
    margin-bottom: 30px;
}
.profile-img-btn {
    cursor: pointer;
    border-radius: var(--border-radius);
    width: 150px; height: 150px;
    object-fit: cover;
    border: 3px solid var(--color-primary);
}

/* Fieldset Styles */
fieldset {
    border: 1px solid var(--color-additional);
    border-radius: var(--border-radius);
    padding: 20px;
    margin-bottom: 30px;
    background: var(--color-bg);
}
legend {
    color: var(--color-primary);
    
    font-size: 1.1em;
    background: var(--color-bg);
    padding: 0 10px;
    border: 1px solid var(--color-additional);
    border-radius: var(--border-radius);
}

/* CSS Toggle Switch */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
    vertical-align: middle;
    margin-right: 15px;
}
.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: var(--border-radius);
}
.toggle-slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}
input:checked + .toggle-slider {
    background-color: var(--btn-green);
}
input:checked + .toggle-slider:before {
    transform: translateX(26px);
}
.toggle-label-text {
    vertical-align: middle;
    font-weight: normal !important;
}

/* ==========================================================================
   Globale Links
   ========================================================================== */
a {
    color: var(--btn-green);
    text-decoration: underline;
}

a:hover {
    color: var(--color-text);
    text-decoration: none;
}

/* ==========================================================================
   Webkit Scrollbalken (Chrome, Edge, Safari)
   ========================================================================== */
::-webkit-scrollbar {
    width: 14px;
    height: 14px;
}

::-webkit-scrollbar-track {
    background: var(--color-secondary); /* Die Basis ist Gelb */
}

::-webkit-scrollbar-thumb {
    background: var(--btn-green); /* GrÃ¼n */
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary); /* TÃ¼rkis bei Hover */
}

::-webkit-scrollbar-button {
    background-color: var(--btn-green); /* GrÃ¼n */
    display: block;
    height: 14px;
    width: 14px;
    background-repeat: no-repeat;
    background-position: center center;
}

/* Gelbe Pfeile (SVG) fÃ¼r Webkit Scrollbar */
::-webkit-scrollbar-button:single-button:vertical:decrement {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M7 3 L12 9 L2 9 Z' fill='%23F9D44D'/></svg>");
}
::-webkit-scrollbar-button:single-button:vertical:increment {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M2 5 L12 5 L7 11 Z' fill='%23F9D44D'/></svg>");
}

/* ==========================================================================
   Profil Hinweise (Guthaben und Warnung)
   ========================================================================== */
.profil-warnhinweis { background-color: var(--color-bg); color: var(--btn-red); font-weight: bold;
    
    text-align: center;
    border-radius: var(--border-radius);
    padding: 15px;
    margin-bottom: 20px;
    
}

.profil-guthabenhinweis {
    background-color: var(--color-bg);
    color: var(--color-text);
    
    text-align: center;
    border-radius: var(--border-radius);
    padding: 15px;
    margin-bottom: 20px;
    
}

/* Helferklasse für türkise Hervorhebungen (Plan 111) */
.text-tuerkis-fett { color: var(--color-primary); font-weight: bold;
    
}


/* ==========================================================================
   Account Lschen Formular (Plan 116)
   ========================================================================== */
.form-danger {
    border: 2px solid var(--btn-red) !important;
}
.form-danger legend {
    color: var(--btn-red) !important;
    border-color: var(--btn-red) !important;
    font-weight: bold !important;
}
.form-danger p,
.form-danger label {
    color: var(--btn-red) !important;
    font-weight: bold !important;
}
.form-danger input {
    border-color: var(--btn-red) !important;
}

