:root{
  --fg:#1c2430; --muted:#6b7280; --line:#e3e7ee; --accent:#1f5c8b; --accent-dk:#174667;
  --bg:#eef1f5; --card:#ffffff; --radius:14px; --shadow:0 1px 3px rgba(20,30,50,.06),0 8px 24px rgba(20,30,50,.06);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.55;}
.wrap{max-width:880px;margin:0 auto;padding:8px 18px 72px;}
h1{font-size:1.55rem;margin:.2em 0 .4em;letter-spacing:-.01em;}
h2{font-size:1.12rem;margin:1.5em 0 .5em;}
.lead{color:var(--muted);font-size:.97rem;}

.brandbar{display:flex;align-items:center;gap:14px;padding:18px 0 14px;margin-bottom:18px;border-bottom:1px solid var(--line);}
.brandbar img{height:40px;width:auto;max-width:240px;object-fit:contain;}
.brandname{font-weight:600;color:#374151;font-size:1rem;}

.alert{background:#fdecec;border:1px solid #f3c4c4;color:#8a1f1f;padding:11px 15px;border-radius:10px;}
.ok{background:#e8f6ee;border:1px solid #bfe4cc;color:#1d5b32;padding:11px 15px;border-radius:10px;}

.contract{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;
  max-height:440px;overflow-y:auto;font-size:.9rem;box-shadow:var(--shadow);}
.contract h1{font-size:1.15rem;text-align:center;} .contract h2{font-size:1rem;} .contract h3{font-size:.95rem;}
.contract .center{text-align:center;}
.contract table.scope{width:100%;border-collapse:collapse;margin:6px 0;}
.contract table.scope td{border:1px solid #d7dde6;padding:5px 8px;}
.contract table.scope td.k{background:#f1f5f9;font-weight:600;width:42%;}
.contract .pagebreak{border-top:2px solid var(--line);padding-top:12px;margin-top:20px;}
.contract .amend{background:#f4f8fc;border:1px solid #d6e4f0;padding:7px 10px;border-radius:8px;}

.form,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;margin-top:22px;box-shadow:var(--shadow);}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
label{display:flex;flex-direction:column;font-size:.9rem;gap:5px;color:#374151;}
label.full,label.consent{grid-column:1 / -1;}
input[type=text],input[type=email],input[type=number],input[type=date],textarea,select{
  padding:11px 12px;border:1px solid #cfd6e0;border-radius:10px;font-size:1rem;font-family:inherit;background:#fff;color:var(--fg);}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,92,139,.12);}
.consent{flex-direction:row;align-items:flex-start;gap:10px;margin-top:14px;font-size:.92rem;}
.consent input{margin-top:3px;}

.sigbox{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
#sigCanvas{border:1.5px dashed #b7c0cc;border-radius:12px;background:#fff;touch-action:none;width:100%;max-width:600px;height:auto;}

.btn{display:inline-block;background:var(--accent);color:#fff;border:0;padding:12px 22px;border-radius:10px;
  font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;margin-top:18px;transition:background .15s,transform .05s;}
.btn:hover{background:var(--accent-dk);}
.btn:active{transform:translateY(1px);}
.btn-secondary{display:inline-block;background:#eef2f7;border:1px solid #d3dbe6;color:var(--fg);
  padding:8px 14px;border-radius:10px;cursor:pointer;text-decoration:none;font-size:.9rem;}
.btn-secondary:hover{background:#e3e9f1;}

.meta{color:var(--muted);font-size:.82rem;}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden;}

table.list{border-collapse:separate;border-spacing:0;width:100%;font-size:.86rem;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
table.list th,table.list td{border-bottom:1px solid var(--line);padding:9px 11px;text-align:left;vertical-align:top;}
table.list tr:last-child td{border-bottom:0;}
table.list th{background:#f1f5f9;font-weight:600;}
.tag{display:inline-block;padding:2px 9px;border-radius:11px;font-size:.74rem;font-weight:600;text-transform:capitalize;}
.tag.entwurf{background:#eceff3;color:#52607a;} .tag.versendet{background:#fdebcd;color:#8a5a12;}
.tag.signiert{background:#d7f0df;color:#1d6b37;} .tag.ersetzt{background:#e6e6e6;color:#7a7a7a;} .tag.storniert{background:#f6d4d4;color:#8a2222;}
.topbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 18px;}
.topbar a{text-decoration:none;}

@media (max-width:560px){.grid{grid-template-columns:1fr;}}
