:root{
  --bg:#0e1310;
  --panel:#151c17;
  --panel-2:#1b241e;
  --border:#2b3a30;
  --text:#edf7ef;
  --muted:#9caf9f;
  --accent:#76e08a;
  --accent-2:#3fbf67;
  --danger:#ff6b6b;
  --warn:#ffc95c;
  --blue:#73b5ff;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
  background:
    radial-gradient(circle at top right, rgba(63,191,103,.09), transparent 30%),
    var(--bg);
  color:var(--text);
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.topbar{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:14px 28px;
  background:rgba(14,19,16,.94);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(12px)
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:42px;height:42px;border-radius:12px;
  display:grid;place-items:center;font-weight:900;
  color:#0a120c;background:linear-gradient(135deg,var(--accent),var(--accent-2))
}
.brand strong{display:block}
.brand small{display:block;color:var(--muted);margin-top:2px}
nav{display:flex;gap:8px;flex-wrap:wrap}
nav a{padding:9px 12px;border-radius:9px;color:var(--muted)}
nav a:hover{background:var(--panel-2);color:var(--text)}
.container{width:min(1180px,calc(100% - 28px));margin:28px auto 60px}
h1,h2,h3{margin-top:0}
h1{font-size:clamp(1.7rem,3vw,2.35rem);margin-bottom:8px}
h2{font-size:1.15rem}
.muted{color:var(--muted)}
.card{
  background:linear-gradient(180deg,rgba(27,36,30,.95),rgba(21,28,23,.97));
  border:1px solid var(--border);
  border-radius:16px;
  padding:20px;
  box-shadow:0 12px 35px rgba(0,0,0,.16)
}
.hero-row,.page-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  margin-bottom:20px
}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.stat{
  padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:var(--panel)
}
.stat span{display:block;color:var(--muted);font-size:.9rem}
.stat strong{display:block;font-size:1.75rem;margin-top:3px}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:10px}
input,textarea,select{
  width:100%;border:1px solid var(--border);border-radius:10px;
  background:#0f1511;color:var(--text);padding:11px 12px;outline:none
}
textarea{resize:vertical;line-height:1.5}
input:focus,textarea:focus,select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(63,191,103,.12)}
label{display:grid;gap:7px;color:var(--muted);font-size:.93rem}
.board{display:grid;gap:12px;margin-top:16px}
.ticket{display:block;transition:.18s ease}
.ticket:hover{transform:translateY(-2px);border-color:#3d5747}
.ticket h3{margin:12px 0 8px}
.ticket p{color:#c9d7cc;white-space:pre-line}
.ticket-top{display:flex;gap:8px;flex-wrap:wrap}
.badge{
  display:inline-flex;padding:5px 9px;border-radius:999px;
  border:1px solid var(--border);background:#101612;font-size:.78rem;font-weight:700
}
.type-bug{color:#ff9e9e}
.type-idee{color:#a8d2ff}
.type-mitteilung{color:#c3efca}
.priority-kritisch{color:#ff7c7c}
.priority-hoch{color:#ffb66e}
.priority-normal{color:#d7dfd9}
.priority-niedrig{color:#9eb1a1}
.ticket-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;margin-top:14px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--border);border-radius:10px;
  background:var(--panel-2);color:var(--text);
  padding:10px 14px;cursor:pointer
}
.btn:hover{filter:brightness(1.08)}
.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#071009;border:none;font-weight:800}
.btn.ghost{background:transparent}
.btn.danger{border-color:#6b2e31;color:#ff9d9d;background:#2a1517}
.btn.small{padding:7px 10px;font-size:.85rem}
.form-grid{display:grid;gap:16px}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.detail-card{margin-bottom:16px}
.post-body{white-space:pre-wrap;line-height:1.65;color:#dbe8de}
.comment-form{display:grid;gap:10px}
.comments{display:grid;gap:10px;margin-top:18px}
.comment{padding:14px;border:1px solid var(--border);border-radius:12px;background:#101612}
.comment-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}
.comment-meta span{color:var(--muted);font-size:.82rem}
.danger-zone{margin-top:16px}
.login-shell{min-height:65vh;display:grid;place-items:center}
.login-card{width:min(430px,100%)}
.split{display:grid;grid-template-columns:360px 1fr;gap:16px}
.user-list{display:grid;gap:8px}
.user-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px;border:1px solid var(--border);border-radius:10px;background:#101612
}
.user-row small{display:block;color:var(--muted);margin-top:3px}
.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:9px}
.check input{width:auto}
.empty{text-align:center;padding:38px}
.flash-wrap{display:grid;gap:8px;margin-bottom:16px}
.flash{padding:11px 13px;border-radius:10px;border:1px solid var(--border);background:var(--panel)}
.flash.success{border-color:#2d6b3b;color:#bdf4c6}
.flash.error{border-color:#6f3434;color:#ffc0c0}

@media(max-width:800px){
  .topbar{align-items:flex-start;flex-direction:column;padding:14px}
  nav{width:100%}
  .container{width:min(100% - 18px,1180px);margin-top:18px}
  .hero-row,.page-head{flex-direction:column}
  .stats{grid-template-columns:1fr 1fr}
  .filters,.inline-form,.form-two,.split{grid-template-columns:1fr}
  .btn{width:100%}
}
/* Projektboard 0.2 – Änderung, Admin-Aktion & Dateianhänge */
.type-änderung{
  color:#e7c4ff;
}

.status-badge{
  color:#bcebc5;
}

.admin-action-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  padding:16px 18px;
  border:1px solid #3a6946;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(63,191,103,.12),rgba(21,28,23,.96));
}

.admin-action-card strong{
  display:block;
  margin-bottom:3px;
}

.admin-action-card span{
  color:var(--muted);
  font-size:.9rem;
}

.section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.section-head h2{
  margin-bottom:4px;
}

.attachment-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;
  margin:16px 0;
}

.attachment-item{
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:12px;
  background:#101612;
}

.attachment-preview{
  display:block;
  aspect-ratio:16/9;
  background:#0b0f0c;
  overflow:hidden;
}

.attachment-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.attachment-file-icon{
  height:120px;
  display:grid;
  place-items:center;
  font-size:2.5rem;
  background:#0b0f0c;
}

.attachment-info{
  padding:12px;
  min-width:0;
}

.attachment-info strong{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.attachment-info small{
  display:block;
  color:var(--muted);
  margin-top:5px;
  line-height:1.4;
}

.attachment-actions{
  display:flex;
  gap:8px;
  padding:0 12px 12px;
}

.attachment-actions form{
  margin:0;
}

.attachment-upload{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:end;
  padding-top:16px;
  margin-top:16px;
  border-top:1px solid var(--border);
}

@media(max-width:800px){
  .admin-action-card{
    flex-direction:column;
    align-items:stretch;
  }

  .attachment-upload{
    grid-template-columns:1fr;
  }

  .attachment-actions{
    flex-direction:column;
  }
}


/* Bild-Lightbox */
.attachment-preview{
  width:100%;
  padding:0;
  border:0;
  cursor:zoom-in;
}

.image-lightbox[hidden]{
  display:none;
}

.image-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  padding:24px;
}

.image-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(5px);
}

.image-lightbox-dialog{
  position:relative;
  z-index:1;
  width:min(1100px,96vw);
  max-height:94vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:16px;
  background:#101612;
  box-shadow:0 24px 80px rgba(0,0,0,.65);
}

.image-lightbox-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 16px;
  border-bottom:1px solid var(--border);
}

.image-lightbox-head strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.image-lightbox-close{
  flex:0 0 auto;
  width:38px;
  height:38px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#182019;
  color:var(--text);
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.image-lightbox-content{
  min-height:0;
  overflow:auto;
  display:grid;
  place-items:center;
  padding:14px;
}

.image-lightbox-content img{
  display:block;
  max-width:100%;
  max-height:calc(94vh - 90px);
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:10px;
}

body.lightbox-open{
  overflow:hidden;
}
