* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, Segoe UI, sans-serif; color: #1f2937; background: #f3f5f8; }
header { background: #172554; color: white; padding: 1rem 1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
header a { color:white; }
main { width: 100%; margin: 2rem auto; padding: 0 1rem; }
h1 { margin-top:0; font-size:1.8rem; }
.card { background:white; padding:1.25rem; border-radius:12px; box-shadow:0 2px 12px #0f172a0d; margin-bottom:1rem; }
table { width:100%; border-collapse:collapse; background:white; }
th, td { text-align:left; padding:.75rem; border-bottom:1px solid #e5e7eb; vertical-align:top; }
th { background:#f8fafc; }
label { display:block; font-weight:600; margin:.8rem 0 .3rem; }
input, select, textarea { width:100%; padding:.7rem; border:1px solid #cbd5e1; border-radius:7px; font:inherit; }
button, .button { display:inline-block; border:0; border-radius:7px; padding: .8rem; padding-top:.2rem; padding-bottom:.3rem; background:#1d4ed8; color:white; font:inherit; cursor:pointer; text-decoration:none; }
button.secondary, .button.secondary { background:#475569; }
.notice { padding:.8rem 1rem; border-radius:8px; margin-bottom:1rem; background:#dbeafe; }
.notice.error { background:#fee2e2; color:#991b1b; }
.muted { color:#64748b; }
.actions { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
@media (max-width:650px) { table { font-size:.9rem; } th,td { padding:.5rem; } header { align-items:flex-start; flex-direction:column; } }

/* Suche und Filter (Version 2) */
.filter-form { display:grid; grid-template-columns:minmax(220px,2fr) minmax(200px,1.5fr) minmax(150px,1fr); gap:0 1rem; align-items:end; }
.filter-field { min-width:0; }
.filter-search { grid-column:auto; }
.filter-actions { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; grid-column:1 / -1; margin-top:1rem; }
.filter-actions .button { text-align:center; }
.result-count { margin-top:0; }
.table-wrap { width:100%; overflow-x:auto; }
@media (max-width:760px) { .filter-form { grid-template-columns:1fr; } .filter-actions { grid-column:auto; } }

.page-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
code { background:#f1f5f9; padding:.15rem .35rem; border-radius:4px; }
.requirements-row { display:flex; flex-wrap:wrap; align-items:center; gap:0.75rem 1.5rem; }
.requirements-row label { display:inline-flex; align-items:center; gap:.45rem; margin:0; }

/* Aktionen im Kopfbereich */
.heading-actions { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.button.danger, button.danger { background:#b91c1c; color:#fff; }
.button.danger:hover, button.danger:hover { background:#991b1b; }

/* Öffentlicher digitaler Unterschriftsablauf */
.copy-link-row { margin-bottom:.6rem; }
.copy-link-row input { width:100%; min-width:0; }
.status-list { list-style:none; margin:0; padding:0; }
.status-list li { display:flex; gap:.65rem; align-items:flex-start; padding:.15rem 0; }
.status-mark { display:inline-flex; align-items:center; justify-content:center; width:1.45rem; height:1.45rem; flex:0 0 1.45rem; border-radius:50%; background:#e2e8f0; color:#475569; font-weight:700; }
.status-list li.is-done .status-mark { background:#dcfce7; color:#166534; }
.status-list li.is-done { color:#166534; }
.declaration-frame { display:block; width:100%; height:360px; border:1px solid #cbd5e1; border-radius:8px; background:white; margin:1rem 0; }
.signature-pad { display:block; width:100%; height:180px; background:#fff; border:2px dashed #94a3b8; border-radius:8px; touch-action:none; cursor:crosshair; }
.signature-form { margin-top:1rem; }
.bank-details { display:grid; grid-template-columns:minmax(130px, .6fr) minmax(0, 1.4fr); gap:.45rem 1rem; }
.bank-details dt { font-weight:700; }
.bank-details dd { margin:0; overflow-wrap:anywhere; }
button:disabled { opacity:.5; cursor:not-allowed; }
.notice.success { background:#dcfce7; color:#166534; }
@media (max-width:650px) {
  .copy-link-row { flex-direction:column; }
  .copy-link-row button { width:100%; }
  .bank-details { grid-template-columns:1fr; gap:.15rem; }
  .bank-details dd { margin-bottom:.6rem; }
}

.stored-signature-wrap { margin-top:1rem; padding:1rem; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
.stored-signature { display:block; max-width:100%; width:360px; height:auto; max-height:130px; object-fit:contain; object-position:left center; background:white; border-bottom:1px solid #94a3b8; margin-top:.5rem; }


/* Signaturstatus in Adminansichten */
.signature-check { display:inline-flex; align-items:center; justify-content:center; width:1.25rem; height:1.25rem; margin-left:.2rem; border-radius:50%; background:#dcfce7; color:#166534; font-weight:800; line-height:1; vertical-align:middle; }
.signature-pending-mark { display:inline-flex; align-items:center; justify-content:center; width:1.25rem; height:1.25rem; color:#64748b; font-size:1.15rem; font-weight:700; line-height:1; }
.signature-status { display:inline-flex; align-items:center; gap:.4rem; font-weight:500; }
.signature-status.is-signed { color:#166534; }
.signature-status.is-pending { color:#475569; }
.public-link-inline { margin-top:-.65rem; margin-bottom:1.2rem; font-size:.9rem; overflow-wrap:anywhere; }
.public-link-inline a { color:#475569; text-decoration:underline; }
.ticket-action-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; flex-wrap:wrap; }
.ticket-action-group { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.ticket-action-group form { margin:0; }
.ticket-action-right { margin-left:auto; }
@media (max-width:900px) {
  .ticket-action-bar { align-items:flex-start; }
  .ticket-action-right { margin-left:0; }
}
@media (max-width:650px) {
  .ticket-action-bar, .ticket-action-group { width:100%; }
  .ticket-action-group form, .ticket-action-group .button, .ticket-action-group button { max-width:100%; }
}
