/* Styles des CRA-Meldeformulars. Ausgelagert, damit die Content-Security-
   Policy ohne 'unsafe-inline' auskommt. */

  html,body{margin:0;padding:0;}
  /* Transparent so the host page's section colour shows through the iframe. */
  body{background:transparent;}

  .tcra{
    --navy:#112B6E; --navy-deep:#0b1f52; --cyan:#11F0E4;
    --border:#DCDFE3; --card:#F6F7F8; --text:#1A1A1A; --mid:#4A4A4A; --muted:#7A7A7A;
    --err:#B3261E;
    font-family:'Montserrat',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    font-weight:300; font-size:16px; line-height:1.65; color:var(--text);
  }
  .tcra *,.tcra *::before,.tcra *::after{box-sizing:border-box;}
  .tcra__card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:40px;}
  @media (max-width:600px){.tcra__card{padding:24px 20px;}}

  .tcra__head{margin-bottom:30px;}
  .tcra__head h3{font-size:19px;font-weight:700;color:#000;margin:0 0 6px;line-height:1.25;}
  .tcra__head p{font-size:12.5px;color:var(--muted);margin:0;}

  .tcra__legend{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;color:#000;margin:34px 0 16px;
    padding-bottom:10px;border-bottom:1px solid var(--border);}
  .tcra__legend:first-of-type{margin-top:0;}
  .tcra__bar{display:inline-block;width:16px;height:2px;background:#000;flex-shrink:0;}

  .tcra__row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
  .tcra__row--single{grid-template-columns:1fr;}
  @media (max-width:780px){.tcra__row{grid-template-columns:1fr;}}

  .tcra__field label{display:block;font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:7px;}
  .tcra__opt{font-weight:400;color:var(--muted);}
  .tcra input[type=text],.tcra input[type=email],.tcra input[type=date],.tcra select,.tcra textarea{
    width:100%;border:1px solid var(--border);border-radius:7px;padding:11px 13px;
    font-family:inherit;font-size:13.5px;font-weight:300;color:var(--text);background:#fff;
    transition:border-color .2s ease;}
  .tcra input:focus,.tcra select:focus,.tcra textarea:focus{outline:none;border-color:var(--cyan);}
  .tcra input::placeholder,.tcra textarea::placeholder{color:#A8ACB2;}
  .tcra textarea{resize:vertical;min-height:90px;}

  .tcra__pills{display:flex;gap:14px;flex-wrap:wrap;}
  .tcra__pill{display:flex;align-items:center;gap:8px;border:1px solid var(--border);
    border-radius:8px;padding:11px 18px;font-size:13.5px;cursor:pointer;transition:border-color .2s ease;}
  .tcra__pill:hover{border-color:var(--cyan);}
  .tcra__pill input{accent-color:var(--navy);margin:0;}
  .tcra__pill:has(input:checked){border-color:var(--navy);}

  .tcra__file{border:1px dashed var(--border);border-radius:7px;padding:12px 14px;}
  .tcra__file input[type=file]{font-size:13px;color:var(--mid);font-family:inherit;max-width:100%;}
  .tcra__files{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted);}
  .tcra__files li{margin:2px 0;}
  .tcra__files li.is-bad{color:var(--err);}
  .tcra__drop{margin-left:8px;padding:0;border:0;background:none;font:inherit;
    color:var(--muted);text-decoration:underline;cursor:pointer;}
  .tcra__drop:hover{color:var(--err);}

  .tcra__hint{font-size:11.5px;color:var(--muted);margin:6px 0 0;line-height:1.6;}
  .tcra__hint strong{font-weight:600;color:var(--mid);}
  .tcra__err{display:none;font-size:12px;color:var(--err);margin:6px 0 0;}
  .tcra__err.is-shown{display:block;}
  /* Die Sammelmeldung direkt ueber dem Knopf — deutlicher als eine
     Feldmeldung, weil sie erklaert, warum das Absenden nicht passiert ist. */
  .tcra__err--form{font-size:13px;font-weight:600;border:1px solid var(--err);
    border-radius:6px;padding:9px 11px;margin:0 0 12px;}
  .tcra .is-invalid{border-color:var(--err);}

  .tcra__legal{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-bottom:14px;}
  .tcra__legal summary{cursor:pointer;padding:12px 16px;font-size:12.5px;font-weight:600;color:var(--navy);}
  .tcra__legal-body{padding:0 16px 14px;font-size:12px;color:var(--mid);line-height:1.7;}
  .tcra__legal-body h4{font-size:12px;font-weight:700;color:var(--text);margin:12px 0 3px;}
  .tcra__legal-body h4:first-child{margin-top:0;}
  .tcra__legal-body p{margin:0 0 4px;}
  .tcra__legal-body a,.tcra__consent a{color:var(--navy);font-weight:600;}

  .tcra__consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--mid);line-height:1.6;}
  .tcra__consent input{width:auto;margin-top:3px;accent-color:var(--navy);flex-shrink:0;}
  /* Ein Kasten hat keinen Rahmen, den die allgemeine Fehlerregel faerben
     koennte — hier braucht es einen eigenen Umriss, sonst sieht der Melder
     die Fehlermeldung, aber nicht das Feld dazu. */
  .tcra__consent input.is-invalid{outline:2px solid var(--err);outline-offset:2px;}
  /* Das einzige Pflichtfeld im Formular — deshalb ausgeschrieben statt als
     Sternchen, fuer das es keine Legende gaebe. */
  .tcra__req{color:var(--err);font-weight:600;white-space:nowrap;}

  .tcra__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;
    flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--border);}
  .tcra__note{font-size:11.5px;color:var(--muted);margin:0;max-width:420px;}
  .tcra__submit{background:var(--navy);color:#fff;border:none;border-radius:30px;
    padding:14px 30px;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;
    text-transform:uppercase;cursor:pointer;transition:background .2s ease;}
  .tcra__submit:hover{background:var(--navy-deep);}
  .tcra__submit:disabled{opacity:.6;cursor:progress;}

  .tcra__result{display:none;margin-top:22px;padding:16px 18px;border-radius:10px;
    border:1px solid var(--border);font-size:13px;color:var(--mid);}
  .tcra__result.is-shown{display:block;}
  .tcra__result.is-ok{border-color:var(--cyan);background:rgba(17,240,228,.07);}
  .tcra__result.is-fail{border-color:var(--err);background:#fdf3f2;}
  .tcra__result h4{margin:0 0 5px;font-size:14px;font-weight:700;color:#000;}
  .tcra__result p{margin:0;}
  .tcra__ref{margin-top:8px!important;font-weight:700;color:var(--navy);
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}

  .tcra__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* Ersetzt fruehere style-Attribute im Markup, damit die CSP keine
   Inline-Styles erlauben muss. */
.tcra .tcra__textarea--tall{min-height:200px;}
.tcra #tcraTurnstile{margin-top:18px;}
.tcra .tcra__result p{margin:0;}

/* Folgeabsatz im Ergebnisfeld, z. B. der Hinweis auf verworfene Anhaenge. */
.tcra .tcra__result-more{margin-top:10px!important;}
