/* Ascent Kundenportal – ergänzt assets/ascent.css */

.portal-main{padding-top:8rem;padding-bottom:4rem;min-height:70vh;max-width:1100px}
.portal-footer{padding:2rem 3.5rem;border-top:1px solid var(--border);color:var(--muted);font-size:.85rem;max-width:1100px}
.portal-footer a{color:var(--accent);text-decoration:none}

.portal h1{font-family:'Unbounded',sans-serif;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:900;margin-bottom:.4rem}
.portal h2{font-family:'Unbounded',sans-serif;font-size:1.05rem;font-weight:700;margin:2.2rem 0 .9rem}
.portal .sub{color:var(--muted);margin-bottom:2rem}

.flash{background:rgba(122,101,224,.15);border:1px solid var(--border);color:var(--text);padding:.8rem 1.1rem;border-radius:4px;margin-bottom:1.5rem}

/* Karten */
.card{background:var(--ink3);border:1px solid var(--border);border-radius:6px;padding:1.5rem;margin-bottom:1.2rem}
.card a.card-link{color:var(--text);text-decoration:none;font-weight:700;font-size:1.05rem}
.card a.card-link:hover{color:var(--accent)}
a.card-click{display:block;text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s}
a.card-click:hover,a.card-click:focus-visible{border-color:var(--accent)}
.card-titel{font-weight:700;font-size:1.05rem}
a.card-click:hover .card-titel{color:var(--accent)}
.card-msg{margin-top:.9rem;padding-top:.7rem;border-top:1px solid rgba(122,101,224,.14);font-size:.85rem;color:var(--muted);line-height:1.5}
.card-msg strong{color:var(--accent);font-weight:500}
.card-msg-zeit{font-size:.72rem;color:var(--muted);opacity:.7}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.card-grid .card{margin:0}

/* Status-Badges */
.badge{display:inline-block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .7rem;border-radius:99px;border:1px solid var(--border);color:var(--muted)}
.badge.in_arbeit{color:#9fd4ff;border-color:rgba(120,180,255,.4)}
.badge.review{color:#ffd89f;border-color:rgba(255,200,120,.4)}
.badge.abgeschlossen{color:#a4f0c0;border-color:rgba(120,230,160,.4)}
.badge.pausiert{color:#ff9f9f;border-color:rgba(255,120,120,.4)}

/* Fortschritt */
.progress{background:rgba(255,255,255,.07);border-radius:99px;height:8px;overflow:hidden;margin:.7rem 0 .3rem}
.progress span{display:block;height:100%;background:linear-gradient(135deg,var(--blue),var(--purple2));border-radius:99px}
.progress-label{font-size:.78rem;color:var(--muted)}

/* Formulare */
.form{max-width:440px}
.form-wide{max-width:100%}
label{display:block;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:1rem 0 .35rem}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{
  width:100%;background:var(--ink2);border:1px solid var(--border);color:var(--text);
  padding:.7rem .9rem;border-radius:4px;font-family:'Space Grotesk',sans-serif;font-size:.95rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
textarea{min-height:110px;resize:vertical}
.btn-sm{padding:.55rem 1.2rem;font-size:.78rem}
.form .btn,.btn-row .btn{margin-top:1.4rem}
.btn-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}

/* Tabellen */
table.liste{width:100%;border-collapse:collapse;font-size:.92rem}
.liste th{text-align:left;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);padding:.6rem .8rem;border-bottom:1px solid var(--border)}
.liste td{padding:.7rem .8rem;border-bottom:1px solid rgba(122,101,224,.14);color:var(--text)}
.liste a{color:var(--accent);text-decoration:none}
.liste a:hover{text-decoration:underline}

/* Meilensteine */
.milestones{list-style:none;padding:0}
.milestones li{display:flex;align-items:center;gap:.8rem;padding:.6rem 0;border-bottom:1px solid rgba(122,101,224,.14)}
.milestones .dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem}
.milestones li.done .dot{background:linear-gradient(135deg,var(--blue),var(--purple2));border-color:transparent;color:#fff}
.milestones li.done .m-titel{color:var(--muted);text-decoration:line-through}
.milestones .m-datum{margin-left:auto;color:var(--muted);font-size:.8rem;flex:none}
.milestones .m-freigabe{display:inline;margin-left:.6rem}
.milestones li{flex-wrap:wrap}

/* Nachrichten */
.msgs{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1.5rem}
.msg{max-width:75%;background:var(--ink3);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}
.msg.eigene{align-self:flex-end;background:rgba(70,49,197,.25)}
.msg .m-meta{font-size:.72rem;color:var(--muted);margin-bottom:.3rem}
.msg p{white-space:pre-line}

/* Login */
.login-box{max-width:400px;margin:3rem auto;background:var(--ink3);border:1px solid var(--border);border-radius:8px;padding:2.5rem}
.login-box h1{text-align:center;margin-bottom:1.5rem}
.login-box .btn{width:100%;text-align:center;margin-top:1.8rem}
.fehler{color:#ff9f9f;margin-top:1rem}

@media(max-width:700px){
  .portal-main{padding-left:1.3rem;padding-right:1.3rem;padding-top:7rem}
  .portal-footer{padding:1.5rem 1.3rem}
  .msg{max-width:95%}
  .liste .opt{display:none}
}
