@import url('/assets/fonts.css');
:root{
  --cas-bg:#f6f5f3;
  --cas-bg-soft:#fbfaf8;
  --cas-bg-card:#ffffff;
  --cas-sand:#d0c6bb;
  --cas-sand-tief:#a89b8e;
  --cas-gelb:#ffba60;
  --cas-lachs:#f2a094;
  --cas-text:#1f1f1f;
  --cas-text-mute:#666666;
  --cas-line:#e7e3dd;
  --cas-link:#a07b3f;
  --cas-akt:#7a5a26;
  --cas-gruen:#4a6e3a;--cas-rot:#a13a2c;--cas-gruen-bg:#e6efdc;--cas-rot-bg:#f7e3df;--cas-blau-bg:#e6ecf2;--cas-gruen-tief:#2f4a25;--cas-rot-tief:#7f2a20;
  --cas-radius:.4rem;
  --cas-shadow:0 1px 2px rgba(31,31,31,.05),0 8px 24px rgba(31,31,31,.06);
  --serif:'DM Serif Text', Georgia, serif;
  --sans:'Montserrat', 'Source Sans 3', system-ui, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);color:var(--cas-text);background:var(--cas-bg);line-height:1.6;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--serif);color:var(--cas-text);margin:0 0 .8rem;font-weight:400;line-height:1.2;letter-spacing:.005em}
h1{font-size:clamp(2rem, 4vw, 3rem);margin-top:.5rem}
h2{font-size:clamp(1.5rem, 2.6vw, 2.1rem);margin-top:2rem}
h3{font-size:1.3rem;margin-top:1.6rem}
h4{font-size:1.05rem;font-family:var(--sans);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--cas-text-mute);margin-top:1.4rem}
p{margin:.6rem 0;font-size:1rem}
a{color:var(--cas-link);text-decoration:none;transition:color .15s}
a:hover{color:var(--cas-akt)}

header.kopf{background:#fff;border-bottom:1px solid var(--cas-line);position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(8px)}
header.kopf .innen{max-width:1180px;margin:0 auto;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
header.kopf a.marke{display:flex;align-items:center;gap:.6rem;color:var(--cas-text);font-family:var(--serif);font-size:1.3rem;border-bottom:none}
header.kopf a.marke img{height:40px;width:auto}
header.kopf nav{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem 1.4rem}
header.kopf nav a{color:var(--cas-text);font-family:var(--sans);font-weight:500;font-size:.95rem;letter-spacing:.02em;border-bottom:none;padding:.4rem .25rem}
header.kopf nav a:hover{color:var(--cas-akt)}
header.kopf nav a.aktiv{color:var(--cas-akt);font-weight:600}
header.kopf .user-name{font-size:.85rem;color:var(--cas-text-mute);margin-right:.4rem}

main{max-width:1180px;margin:2.5rem auto 4rem;padding:0 1.25rem}
section{margin:3rem 0}

.hero{background:linear-gradient(180deg,var(--cas-bg-soft) 0%, var(--cas-bg) 100%);padding:3rem 1.25rem 2rem;border-radius:var(--cas-radius);text-align:center;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.4rem,5vw,3.6rem)}
.hero .lead{font-size:1.15rem;color:var(--cas-text-mute);max-width:42rem;margin:0 auto 1.6rem}
.hero::after{content:"";display:block;height:34px;margin:2rem -1.25rem -2rem;background:url('/assets/img/welle.png') center bottom/auto 34px repeat-x}

.btns{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1rem 0}
a.btn,button,input[type="submit"]{display:inline-block;padding:.7rem 1.3rem;background:var(--cas-gruen-bg);color:var(--cas-gruen-tief);border:1px solid var(--cas-gruen-tief);border-radius:.4rem;cursor:pointer;text-decoration:none;font-family:var(--sans);font-size:.92rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;transition:background .15s,border-color .15s}
a.btn:hover,button:hover,input[type="submit"]:hover{background:#d6e7c4;color:var(--cas-gruen-tief);border-color:var(--cas-gruen-tief)}
a.btn.sek,button.sek{background:transparent;color:var(--cas-gruen-tief);border:1px solid var(--cas-gruen-tief)}
a.btn.sek:hover,button.sek:hover{background:var(--cas-gruen-bg);color:var(--cas-gruen-tief)}
a.btn.akzent,button.akzent{background:var(--cas-gelb);color:var(--cas-text);border:1px solid var(--cas-akt)}
a.btn.akzent:hover,button.akzent:hover{background:#ffcf8a;color:var(--cas-text)}
a.btn.gefahr,button.gefahr,a.btn.rot,button.rot{background:var(--cas-rot-bg);color:var(--cas-rot-tief);border-color:var(--cas-rot-tief)}
a.btn.gefahr:hover,button.gefahr:hover,a.btn.rot:hover,button.rot:hover{background:#f2d2cc;color:var(--cas-rot-tief)}
a:focus-visible,button:focus-visible,input[type="submit"]:focus-visible{outline:2px solid var(--cas-gruen-tief);outline-offset:2px}

.karte{display:block;background:var(--cas-bg-card);border:1px solid var(--cas-line);border-radius:var(--cas-radius);padding:1.5rem;margin:1rem 0;box-shadow:var(--cas-shadow)}
.karte h2,.karte h3{margin-top:0}
a.karte{color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s}
a.karte:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(31,31,31,.08),0 12px 28px rgba(31,31,31,.08)}
a.karte strong{display:block;font-family:var(--serif);font-size:1.15rem;margin-bottom:.4rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin:1.5rem 0}
.cards .karte{margin:0}
.aktion-bestaetigen{background:var(--cas-bg-soft);border:1px solid var(--cas-line);border-radius:var(--cas-radius);padding:1rem 1.2rem;margin-top:.8rem}
.aktion-bestaetigen p{margin:0 0 .8rem}
.aktion-bestaetigen .btns{justify-content:flex-start;margin:0}
.profil-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin:1.5rem 0}
.profil-grid .karte{margin:0}
.feld-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 1.25rem}
.profil-karte{max-width:46rem;margin:1.5rem 0}
.profil-karte input{max-width:none}
.profil-karte fieldset{margin:0 0 1.3rem}
.profil-karte legend{margin-bottom:.6rem}
.karte-aktionen{display:flex;justify-content:flex-end;border-top:1px solid var(--cas-line);padding-top:1.1rem;margin-top:.2rem}
.email-liste{list-style:none;padding:0;margin:.5rem 0 1rem}
.email-liste li{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;border:1px solid var(--cas-line);border-radius:var(--cas-radius);margin-bottom:.4rem;background:var(--cas-bg-soft);font-size:.95rem}
.email-liste form{margin:0}
.email-liste button{padding:.3rem .7rem;font-size:.78rem;background:transparent;color:var(--cas-text-mute);border:1px solid var(--cas-line);text-transform:none;letter-spacing:0}
.email-liste button:hover{background:var(--cas-rot-bg);color:var(--cas-rot);border-color:var(--cas-rot-bg)}

.kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin:1.5rem 0}
.kpi .box{background:var(--cas-bg-card);padding:1.2rem;border-radius:var(--cas-radius);box-shadow:var(--cas-shadow)}
.kpi strong{display:block;font-size:1.7rem;font-family:var(--serif);color:var(--cas-text)}
.kpi label{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cas-text-mute);margin-top:.2rem}

table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:var(--cas-bg-card);border-radius:var(--cas-radius);overflow:hidden;box-shadow:var(--cas-shadow)}
th,td{padding:.85rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--cas-line);font-size:.95rem}
th{background:var(--cas-bg-soft);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cas-text-mute)}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--cas-bg-soft)}

fieldset{border:none;padding:0;margin:0 0 1.4rem}
legend{padding:0;margin-bottom:.4rem;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cas-text-mute)}
label{display:inline-block;margin-right:1rem;cursor:pointer;font-size:.95rem}
label.block{display:block;margin:.9rem 0}
label.check{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;font-size:.92rem;color:var(--cas-text-mute)}
input[type="text"],input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="search"],input[type="url"],select,textarea{width:100%;max-width:32rem;padding:.7rem .8rem;border:1px solid var(--cas-line);border-radius:var(--cas-radius);font-family:var(--sans);font-size:1rem;background:#fff;transition:border-color .15s,box-shadow .15s;color:var(--cas-text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cas-sand-tief);box-shadow:0 0 0 3px rgba(208,198,187,.35)}
textarea{min-height:6rem;resize:vertical}
.email-liste form input,.email-liste form select{max-width:none;width:auto}
.feld-versteckt{display:none}
.dok-grid{display:grid;grid-template-columns:240px 1fr;gap:1.25rem;margin-top:1rem}
.dok-ordner{margin:0}
.dok-ordnerliste{list-style:none;padding:0;margin:.6rem 0}
.dok-ordnerliste li{padding:.3rem .5rem;border-radius:var(--cas-radius);font-size:.92rem}
.dok-ordnerliste li.aktiv{background:var(--cas-bg-soft);font-weight:600}
.dok-ordnerliste a{color:var(--cas-text);text-decoration:none}
.dok-mini{font-size:.75rem;padding:.1rem .4rem;color:var(--cas-text-mute);text-transform:none;letter-spacing:0;background:transparent;border:1px solid transparent}
.dok-mini:hover{color:var(--cas-akt);border-color:var(--cas-line)}
.dok-umbenennen{display:flex;gap:.3rem;align-items:center;margin:0}
.dok-umbenennen input{flex:1;max-width:none;padding:.3rem .5rem;font-size:.85rem}
.dok-umbenennen button{padding:.3rem .6rem;font-size:.75rem}
.dok-umbenennen a{padding:.2rem .4rem;color:var(--cas-text-mute)}
.bulk-bar{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;background:var(--cas-bg-soft);border-radius:var(--cas-radius);margin-top:.6rem;flex-wrap:wrap}
.bulk-anzahl{font-size:.85rem;color:var(--cas-text-mute);font-weight:600}
.bulk-bar select{max-width:14rem}
.bulk-bar button{margin-left:auto}
.dok-bereich{margin:0}
.ki-grid{display:grid;grid-template-columns:240px 1fr;gap:1.25rem;margin-top:1rem}
.ki-seitenleiste{margin:0}
.ki-threadliste{list-style:none;padding:0;margin:.6rem 0}
.ki-threadliste li{padding:.3rem .5rem;border-radius:var(--cas-radius);font-size:.92rem}
.ki-threadliste li.aktiv{background:var(--cas-bg-soft);font-weight:600}
.ki-threadliste a{color:var(--cas-text);text-decoration:none}
.ki-dialog{margin:0;display:flex;flex-direction:column;gap:1rem}
.ki-nachrichten{display:flex;flex-direction:column;gap:.8rem;max-height:60vh;overflow-y:auto}
.ki-nachricht{padding:.8rem 1rem;border-radius:var(--cas-radius);background:var(--cas-bg-soft)}
.ki-mensch{background:var(--cas-bg-card);align-self:flex-end;max-width:80%}
.ki-assistent{background:var(--cas-bg-soft);align-self:flex-start;max-width:80%}
.ki-rolle{font-size:.78rem;color:var(--cas-text-mute);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.ki-quellen{margin-top:.5rem;font-size:.85rem}
.ki-frage{display:flex;gap:.6rem;align-items:flex-end}
.ki-frage textarea{flex:1;max-width:none}
@media(max-width:760px){.dok-grid,.ki-grid{grid-template-columns:1fr}}
section.auth{max-width:32rem;margin:2rem auto}
section.auth h1{text-align:center}
section.auth .lead{text-align:center;color:var(--cas-text-mute)}
.hero-stimme{display:flex;align-items:center;gap:1.4rem;max-width:42rem;margin:2rem auto 0;padding:1.4rem;background:var(--cas-bg-card);border-radius:var(--cas-radius);box-shadow:var(--cas-shadow);text-align:left}
.hero-stimme blockquote{margin:0}
.hero-stimme blockquote p{margin:0 0 .4rem;font-family:var(--serif);font-size:1.1rem;line-height:1.4;color:var(--cas-text)}
.hero-stimme figcaption{font-size:.9rem;color:var(--cas-text-mute)}
.home-hero__portrait{flex-shrink:0;display:block}
.home-hero__portrait img,.rounded-portrait{width:120px;height:120px;border-radius:50%;object-fit:cover;display:block}
@media(max-width:560px){.hero-stimme{flex-direction:column;text-align:center;gap:1rem}.hero-stimme blockquote p{font-size:1rem}}

.badge{display:inline-block;padding:.18rem .55rem;background:var(--cas-sand);color:var(--cas-text);border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.04em}
.badge.gruen{background:var(--cas-gruen-bg);color:var(--cas-gruen)}
.badge.rot{background:var(--cas-rot-bg);color:var(--cas-rot)}

.meta{color:var(--cas-text-mute);font-size:.9rem;margin-bottom:1.2rem}
.empty{color:var(--cas-text-mute);font-style:italic}
.danke{background:var(--cas-gruen-bg);color:var(--cas-gruen);padding:.8rem 1.1rem;border-radius:var(--cas-radius);margin:1rem 0}
.fehler{background:var(--cas-rot-bg);color:var(--cas-rot);padding:.8rem 1.1rem;border-radius:var(--cas-radius);margin:1rem 0}
.zahl{font-variant-numeric:tabular-nums}

footer.fuss{background:var(--cas-text);color:#e7e3dd;margin-top:5rem;padding:3rem 1.25rem 2rem}
footer.fuss::before{content:"";display:block;height:34px;margin:-3rem -1.25rem 2rem;background:url('/assets/img/welle.png') center top/auto 34px repeat-x;transform:rotate(180deg)}
footer.fuss .innen{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}
footer.fuss h4{color:#fff;margin-top:0;border-bottom:none}
footer.fuss a{color:#e7e3dd}
footer.fuss a:hover{color:#fff}
footer.fuss .marke-fuss img{height:60px;margin-bottom:1rem}
footer.fuss .copy{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;margin-top:1rem;font-size:.85rem;color:#a8a39a;text-align:center}

@media (max-width:760px){
  header.kopf .innen{flex-direction:column;align-items:flex-start;gap:.6rem}
  header.kopf nav{gap:.3rem .8rem}
  .hero{padding:2rem 1rem 1.5rem}
}

/* Ergaenzungen Neusystem (Task 17504): generierte Sichten nutzen schlichtes Markup. */
main label{display:block;margin:.9rem 0}
main li form{display:inline}
p[role="status"]{background:var(--cas-blau-bg);color:var(--cas-text);padding:.8rem 1.1rem;border-radius:var(--cas-radius);margin:1rem 0}
main textarea{min-height:6rem}
.profil-nav ul{display:flex;gap:.4rem;margin:.6rem 0 1.4rem;flex-wrap:wrap;list-style:none;padding:0}
.profil-nav li{margin:0}
.profil-nav a{display:inline-block;padding:.35rem .85rem;border:1px solid var(--cas-line);color:var(--cas-text-mute);text-decoration:none;font-size:.85rem;border-radius:.4rem}
.profil-nav a:hover{border-color:var(--cas-gruen-tief);color:var(--cas-gruen-tief)}
.profil-nav a.aktiv{border-color:var(--cas-gruen-tief);color:var(--cas-gruen-tief);background:var(--cas-gruen-bg);font-weight:600}
