/* Eigenständige, feldnahe Profiloberfläche. */
.profil-kopf{margin:0 0 var(--a-4);padding:var(--a-5);background:linear-gradient(135deg,#fff,var(--cas-bg-soft));border:1px solid var(--cas-line);border-radius:calc(var(--cas-radius) * 2)}
.profil-kopf h1{margin:0}
.profil-kopf p{margin:var(--a-1) 0 0;color:var(--cas-text-mute)}
.profil-kennung-ende{margin:var(--a-3) var(--a-1) 0;text-align:right;font-size:var(--t-xs);letter-spacing:.04em;color:var(--cas-text-mute)}
.profil-bereichsnavigation nav{margin-top:var(--a-4);padding-top:var(--a-3);border-top:1px solid var(--cas-line)}
.profil-bereichsnavigation ul{display:flex;flex-wrap:wrap;gap:var(--a-1);margin:0;padding:0;list-style:none}
.profil-bereichsnavigation li{margin:0}
.profil-bereichsnavigation a{display:inline-flex;padding:var(--a-1) var(--a-2);border:1px solid var(--cas-line);border-radius:999px;background:#fff;font-size:var(--t-s);white-space:nowrap}
.profil-raster{display:grid;grid-template-columns:1fr;align-items:start;gap:var(--a-4)}
.profil-karte{justify-self:start;width:100%;max-width:46rem;min-width:0;margin:0;padding:var(--a-5);background:#fff;border:1px solid var(--cas-line);border-radius:calc(var(--cas-radius) * 2);box-shadow:0 1px 2px rgba(31,31,31,.03)}
.profil-karte-breit{grid-column:1/-1;max-width:none}
.profil-karte>header{padding-bottom:var(--a-3);margin-bottom:var(--a-4);border-bottom:1px solid var(--cas-line)}
.profil-karte>header h2{margin:0;font-size:var(--t-xl)}
.profil-karte>header p{margin:var(--a-1) 0 0;color:var(--cas-text-mute);font-size:var(--t-m)}
.profil-karte fieldset+fieldset,.profil-karte form+form{margin-top:var(--a-4);padding-top:var(--a-4);border-top:1px solid var(--cas-line)}
.profil-feldraster,.profil-plz-ort{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--a-3)}
.profil-namen{grid-template-columns:repeat(2,minmax(0,1fr))}
.profil-anschrift>.profil-feld,.profil-anschrift>.profil-firmenfelder{width:100%}
.profil-firmenfelder{padding:var(--a-3);margin:0 0 var(--a-3);border-radius:var(--cas-radius);background:var(--cas-bg-soft)}
.profil-feld{min-width:0;margin:0 0 var(--a-3)}
.profil-feld>label{display:block;max-width:none;margin:0 0 var(--a-1);font-size:var(--t-s);font-weight:600;color:var(--cas-text)}
.profil-eingabe{display:flex;align-items:flex-start;gap:var(--a-2);min-width:0}
.profil-eingabe>input:not([type=checkbox]):not([type=radio]),.profil-eingabe>select,.profil-eingabe>textarea{flex:1;min-width:0;max-width:none;border-color:#86a879;background:#fcfff9}
.profil-hinweis{display:block;margin-top:var(--a-1);color:var(--cas-text-mute);font-size:var(--t-xs);line-height:1.4}
.profil-feldstatus{display:inline-flex;align-items:flex-start;gap:var(--a-1);min-height:2rem;max-width:17rem;color:var(--cas-rot-tief);font-size:var(--t-xs);line-height:1.35}
.profil-feldstatus>span{padding-top:.25rem}
.profil-statuszeichen{width:1.25rem;height:1.25rem;flex:0 0 1.25rem;margin-top:.35rem}
.profil-statuszeichen-fehler path:first-child{fill:var(--cas-rot);stroke:var(--cas-rot-tief);stroke-width:1}
.profil-statuszeichen-fehler path:last-child{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.profil-statuszeichen-erfolg circle{fill:#63a64b;stroke:var(--cas-gruen-tief);stroke-width:1}
.profil-statuszeichen-erfolg path{fill:none;stroke:#111;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.profil-eingabe>.profil-tippt{border-color:#8c8c8c!important;background:#fff!important;box-shadow:0 0 0 2px rgba(80,80,80,.12)!important}
.profil-eingabe>.profil-ist-ok{border-color:#86a879!important;background:#fcfff9!important}
.profil-eingabe>.profil-ist-fehler{border-color:var(--cas-rot)!important;background:#fffafa!important}
@keyframes profil-fehler-glow{0%,100%{box-shadow:0 0 0 0 rgba(161,58,44,0)}50%{box-shadow:0 0 0 5px rgba(161,58,44,.38)}}
@keyframes profil-erfolg-glow{0%{box-shadow:0 0 0 1px rgba(47,74,37,.9)}45%{box-shadow:0 0 0 6px rgba(47,74,37,.5)}100%{box-shadow:0 0 0 0 rgba(47,74,37,0)}}
.profil-eingabe>.profil-fehler-glow{animation:profil-fehler-glow .38s ease 2}
.profil-eingabe>.profil-erfolg-glow{animation:profil-erfolg-glow .75s ease-out 1}
.profil-schalter{display:flex!important;flex:1;max-width:none!important;min-height:2.5rem;margin:0!important;padding:var(--a-2) var(--a-3);flex-direction:row!important;align-items:center!important;gap:var(--a-2)!important;border:1px solid #86a879;border-radius:var(--cas-radius);background:#fcfff9;color:var(--cas-text)!important;font-size:var(--t-m)!important;font-weight:500;cursor:pointer}
.profil-schalter input{flex:0 0 auto}
.profil-schalter.profil-tippt{border-color:#8c8c8c;background:#fff;box-shadow:0 0 0 2px rgba(80,80,80,.12)}
.profil-schalter.profil-ist-fehler{border-color:var(--cas-rot);background:#fffafa}
.profil-schalter.profil-fehler-glow{animation:profil-fehler-glow .38s ease 2}
.profil-schalter.profil-erfolg-glow{animation:profil-erfolg-glow .75s ease-out 1}
.profil-notfallkontakt>.profil-loeschen-form,.profil-karte .profil-email .profil-loeschen-form,.profil-karte .profil-email-einladung>.profil-loeschen-form{margin:var(--a-1) 0 0;padding:0;border:0}
.profil-loeschen-form>.profil-feldstatus{min-height:0}
.profil-loeschen-details>summary{list-style:none}
.profil-loeschen-details>summary::-webkit-details-marker{display:none}
.profil-loeschen-schalter{display:inline-flex;align-items:center;gap:var(--a-2);color:var(--cas-text-mute);font-size:var(--t-xs);font-weight:400;cursor:pointer}
.profil-loeschen-schalter:hover,.profil-loeschen-schalter:focus-visible{color:var(--cas-rot-tief)}
.profil-loeschen-schalter:focus-visible{outline:2px solid var(--cas-gruen-tief);outline-offset:2px}
.profil-loeschen-kreis{display:inline-grid;width:1.15rem;height:1.15rem;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.9rem;line-height:1}
.profil-loeschen-bestaetigung{display:flex;align-items:center;flex-wrap:wrap;gap:var(--a-2);margin-top:var(--a-2);font-size:var(--t-s)}
.profil-loeschen-ja{min-height:2rem;padding:0 var(--a-2);border-color:var(--cas-rot);background:var(--cas-rot-bg);color:var(--cas-rot-tief);font-size:var(--t-s)}
.profil-loeschen-nein{font-size:var(--t-s)}
.profil-versand-gebunden{padding:var(--a-3);border-radius:var(--cas-radius);background:var(--cas-bg-soft)}
.profil-versand-gebunden input[readonly],.profil-versand-gebunden select:disabled{border-color:var(--cas-line);background:#f1f1ed;color:var(--cas-text-mute);opacity:1}
.profil-einwilligungen{display:grid;grid-template-columns:1fr;gap:var(--a-4)}
.profil-einwilligungen form+form{margin:0;padding:0;border:0}
.profil-kleingedruckt{margin-top:var(--a-3);font-size:var(--t-s)}
.profil-steuerhinweis{min-height:1.5rem;margin:calc(-1 * var(--a-2)) 0 var(--a-3);padding:var(--a-2);border-left:3px solid var(--cas-gelb);background:#fffaf0;color:var(--cas-text-mute);font-size:var(--t-xs)}
.profil-email-liste{display:flex;flex-direction:column;gap:var(--a-2);margin-bottom:var(--a-4)}
.profil-email{display:flex;align-items:center;justify-content:space-between;gap:var(--a-3);padding:var(--a-2) var(--a-3);border:1px solid var(--cas-line);border-radius:var(--cas-radius);background:var(--cas-bg-soft);color:var(--cas-text)}
.profil-email-login{border-color:var(--cas-gruen-tief);background:var(--cas-gruen-bg)}
.profil-email-login .profil-email-adresse strong,.profil-email-login .profil-email-adresse small{color:var(--cas-gruen-tief)}
.profil-email>span{min-width:0;overflow-wrap:anywhere}
.profil-email strong,.profil-email small{display:block}
.profil-email small{color:var(--cas-text-mute)}
.profil-email-aktionen{display:flex;align-items:center;justify-content:flex-end;gap:var(--a-2);flex-wrap:wrap}
.profil-email form{flex:0 0 auto;margin:0}
.profil-email form .profil-feld{margin:0}
.profil-email form .profil-hinweis{display:none}
.profil-email-einladung{margin-top:var(--a-4);padding:var(--a-4);border:1px solid var(--cas-line);border-radius:var(--cas-radius);background:var(--cas-bg-soft)}
.profil-email-einladung form{margin:0}
.profil-email-einladung input[readonly]{border-color:var(--cas-line);background:#f1f1ed;color:var(--cas-text-mute)}
.profil-login-form{display:flex;align-items:center;gap:var(--a-2)}
.profil-login-knopf{min-height:2.25rem;margin:0;white-space:nowrap}
.profil-login-knopf[disabled]{cursor:default;opacity:.62}
.profil-email-login .profil-login-knopf[disabled]{border-color:var(--cas-gruen-tief);background:transparent;color:var(--cas-gruen-tief)}
.profil-login-status{min-height:0}
[data-gesundheit-felder][disabled]{opacity:.58}
[data-gesundheit-felder][disabled]::before{content:"Aktiviere zuerst die Einwilligung zu Gesundheitsangaben.";display:block;margin-bottom:var(--a-3);color:var(--cas-text-mute);font-size:var(--t-s)}
.profil-karte [hidden]{display:none!important}
.profil-werte{display:grid;gap:var(--a-2);margin:0}
.profil-werte>div{display:grid;grid-template-columns:minmax(7rem,.7fr) minmax(0,1.3fr);gap:var(--a-3);padding-bottom:var(--a-2);border-bottom:1px solid var(--cas-line)}
.profil-werte>div:last-child{padding-bottom:0;border-bottom:0}
.profil-werte dt{color:var(--cas-text-mute);font-size:var(--t-s)}
.profil-werte dd{margin:0;overflow-wrap:anywhere}
.profil-anschriften{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--a-5)}
.profil-anschriften h3{margin:0 0 var(--a-3);font-family:var(--sans);font-size:var(--t-m)}
@media (max-width:56rem){
  .profil-raster{grid-template-columns:1fr}
  .profil-karte-breit{grid-column:auto}
  .profil-einwilligungen{grid-template-columns:1fr}
}
@media (max-width:36rem){
  .profil-kopf,.profil-karte{padding:var(--a-3)}
  .profil-bereichsnavigation ul{max-width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--a-1)}
  .profil-feldraster,.profil-plz-ort,.profil-namen{grid-template-columns:1fr}
  .profil-eingabe{flex-wrap:wrap}
  .profil-feldstatus{max-width:none;width:100%;min-height:0}
  .profil-email{align-items:flex-start;flex-direction:column}
  .profil-email-aktionen{align-items:flex-start;justify-content:flex-start}
  .profil-anschriften{grid-template-columns:1fr}
  .profil-werte>div{grid-template-columns:1fr;gap:var(--a-1)}
}
@media (prefers-reduced-motion:reduce){
  .profil-fehler-glow,.profil-erfolg-glow{animation:none!important}
}
/* Blaettern durch die Tagesreihe einer Adresse: die Historie reicht Jahre
   zurueck, darum steht ueber der ersten Reihe eine eigene Leiste. */
.wirkung-blaettern{display:flex;flex-wrap:wrap;gap:var(--a-2) var(--a-4);align-items:center;margin:0 0 var(--a-3)}
.wirkung-blaettern .wirkung-aus{opacity:.45}

/* ---------- Teilnehmer-Analyse ---------- *
 * Das Balkendiagramm ist reines SVG: die Sicherheitsregel laesst nur
 * eigene Skripte zu, und ein Balken braucht ohnehin kein Programm.
 * Die Farben sind die des Hauses; der Balken traegt keine Bedeutung
 * ueber seine Laenge hinaus, darum genuegt eine Farbe.
 */
.tn-balken { margin: 0 0 1rem; }

.tn-balken > figcaption {
  margin-bottom: .5rem;
  color: var(--cas-text-mute);
  font-size: .875rem;
}

.tn-balken svg { width: 100%; height: auto; }

.tnb-balken { fill: var(--cas-sand-tief); }

.tnb-marke,
.tnb-zahl {
  fill: var(--cas-text);
  font-size: 13px;
}

.tnb-anteil { fill: var(--cas-text-mute); }

.tn-filter {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tn-filter > li { padding: .25rem 0; }

.tn-filter-aktiv { color: var(--cas-akt); }

.tn-hinweis {
  margin: .75rem 0 0;
  color: var(--cas-text-mute);
  font-size: .875rem;
}
