:root{color-scheme:light;--ink:#19302d;--green:#226752;--paper:#f3f3ef;--line:#d8dfd8;--muted:#5b6862}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{background:#fff;border-bottom:1px solid var(--line);padding:23px max(24px,calc((100vw - 1060px)/2));display:flex;justify-content:space-between;gap:12px;align-items:center}.brand{color:var(--ink);font-size:21px;letter-spacing:-.6px;text-decoration:none;font-weight:750}.brand span{font-weight:400}header small{color:var(--muted)}main{max-width:1000px;padding:34px 24px 60px;margin:auto}h1{font-size:34px;letter-spacing:-1.2px;margin:8px 0 25px}h2{font-size:23px;line-height:1.3;margin:0 0 16px;letter-spacing:-.4px}h3{font-size:19px}section{background:#fff;border:1px solid var(--line);border-radius:15px;padding:28px;margin:0 0 22px;box-shadow:0 3px 18px #19302d04}label{display:block;font-weight:600;margin:15px 0 8px}input,textarea,button,.button{font:inherit}input:not([type=checkbox]),textarea{display:block;width:100%;border:1px solid #aab9af;border-radius:7px;padding:11px 12px;background:#fff;color:var(--ink);margin:7px 0 5px}textarea{resize:vertical}input[type=file]{padding:10px;font-size:14px}input:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #92bea9;outline-offset:2px}button,.button{display:inline-block;border:1px solid var(--green);border-radius:7px;padding:11px 18px;background:var(--green);color:white;text-decoration:none;cursor:pointer;font-weight:650;line-height:1.4;margin-top:12px}button:hover,.button:hover{filter:brightness(.93)}button:disabled{opacity:.55;cursor:wait}.secondary{background:#fff;color:var(--ink);border-color:#aab9af}a{color:var(--green);text-underline-offset:3px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;margin:20px 0}.check input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--green);margin:2px 0}.declaration{padding:20px;background:#f6f6f2;border-left:3px solid #91ae9d;margin:20px 0;font-size:15px}.hint,small{font-size:13px;color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:12px}.badge{display:inline-block;background:#e9f1eb;padding:4px 11px;border-radius:20px;font-size:13px;white-space:nowrap}dl{display:grid;grid-template-columns:190px 1fr;gap:10px;margin:24px 0}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}code{font-size:12px;overflow-wrap:anywhere}iframe{width:100%;height:520px;border:1px solid var(--line);border-radius:8px;margin:12px 0}details{margin:18px 0}summary{cursor:pointer;font-weight:600}canvas{display:block;width:100%;height:auto;aspect-ratio:1000/320;border:2px dashed #91ae9d;border-radius:8px;background:#fafcf9;touch-action:none}.qr{padding:16px;background:white;width:max-content;max-width:100%;margin:16px 0}.qr img{max-width:100%;height:auto}nav,.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}nav form,.actions form{margin:0}hr{border:0;border-top:1px solid var(--line);margin:32px 0}.notice{background:#e6efc7;border-radius:8px;padding:18px;margin-bottom:22px}.error{background:#ffe4dd}.success{border-color:#82b29a}.narrow{max-width:480px}.job{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.job small{display:block}blockquote{padding:15px;margin:20px 0;background:#fff3df;border-left:3px solid #c69c50}.history{padding-left:22px}.history time{font-size:12px;color:var(--muted)}.history p{margin:2px 0 16px;overflow-wrap:anywhere}footer{text-align:center;color:var(--muted);font-size:12px;padding:25px;border-top:1px solid var(--line)}#signature-error{color:#9b3324}body,section{overflow-wrap:anywhere}@media(max-width:650px){header{padding:17px 18px}header small{display:none}.brand{font-size:17px}main{padding:22px 14px 35px}h1{font-size:28px}section{padding:20px 16px;border-radius:11px}.columns{grid-template-columns:1fr;gap:0}dl{grid-template-columns:1fr;gap:3px}dd{margin-bottom:10px}iframe{height:380px}.job{align-items:flex-start;flex-direction:column}button,.button{width:100%;text-align:center}.actions,.actions form{width:100%}nav{align-items:stretch}nav a,nav form{flex:1}nav button{margin-top:12px}.qr{margin:auto}canvas{aspect-ratio:2.5/1}}

/* Brand refresh: small wordmark, clean typography and the website contact panel. */
:root{--ink:#151515;--green:#181818;--paper:#f7f7f5;--line:#e1e1de;--muted:#6a6a67}
body{min-height:100vh;display:flex;flex-direction:column;letter-spacing:-.1px}
header{padding:28px max(24px,calc((100vw - 1060px)/2));min-height:88px;border-bottom:1px solid var(--line);gap:24px}
.brand{display:flex;align-items:center;min-width:0;text-decoration:none;flex-shrink:0}
.brand-logo{display:block;width:180px;height:auto;max-width:100%}
.header-title{font-size:20px;line-height:1.2;font-weight:450;letter-spacing:-.5px;text-align:right}
main{width:100%;padding-top:44px;padding-bottom:64px;flex:1}
h1{font-size:32px;font-weight:600;letter-spacing:-1px;margin-bottom:28px}
h2{font-size:22px;font-weight:600;letter-spacing:-.45px}
section{border-radius:10px;padding:30px;box-shadow:none;margin-bottom:24px}
label{font-size:14px;font-weight:550;margin-top:18px}
input:not([type=checkbox]),textarea{border-color:#cececa;border-radius:5px;padding:12px 13px;font-size:16px;transition:border-color .15s,box-shadow .15s}
input:focus,textarea:focus{outline:0;border-color:#333;box-shadow:0 0 0 3px #00000008}
button,.button{border-radius:5px;font-size:14px;letter-spacing:0;font-weight:550;padding:12px 18px}
.secondary{border-color:#d3d3cf}.badge{background:#efefeb;color:#333;padding:5px 12px}
.declaration{background:#f6f6f3;border-left:2px solid #b7b7ae;padding:24px;line-height:1.75}
.check{font-size:15px;font-weight:400}.hint{line-height:1.6}.success{border-color:#bac7b2}.notice{background:#edf4e6}.error{background:#ffe4dd}
canvas{border:1px dashed #aaa;background:#fcfcfa;border-radius:5px}
footer.contact-footer{padding:0;border:0;background:#ddd;color:#666;text-align:center;font:14px/1.65 Arial,Helvetica,sans-serif;letter-spacing:0}
.contact{margin:0}.contact summary{display:block;list-style:none;cursor:pointer;padding:7px 20px;font-size:14px;font-weight:400;line-height:22px;color:#666}
.contact summary::-webkit-details-marker{display:none}.contact summary::marker{content:''}
.contact summary:hover{color:#111}.contact-content{padding:13px 20px 16px}.contact-content p{margin:0}.contact-content a{color:#111;text-decoration:none}.contact-content a:hover{text-decoration:underline}
@media(max-width:650px){header{padding:22px 20px;min-height:75px;gap:14px}.brand-logo{width:150px}.header-title{font-size:17px;letter-spacing:-.35px}main{padding:28px 16px 44px}h1{font-size:27px}section{padding:22px 18px}.declaration{padding:18px}.contact-content{padding:12px 16px 18px;font-size:13px}.contact-content p+p{margin-top:3px}}
@media(max-width:350px){.brand-logo{width:130px}.header-title{font-size:15px}header{padding-inline:16px}}
/* Kontakt öffnet über der Leiste, ohne die Seite zu verlängern. */
.contact-footer{position:relative;z-index:30}
.contact{position:relative}
.contact-content{position:absolute;bottom:100%;left:0;right:0;z-index:31;background:#ddd;box-shadow:0 -8px 24px #0000000c;max-height:min(50vh,280px);overflow:auto;padding:20px 20px 18px}
.contact[open] summary{background:#ddd;color:#111}
@media(max-width:650px){.contact-content{padding:18px 16px 16px}}
[hidden]{display:none!important}
select{display:block;width:100%;font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1px solid #cececa;border-radius:5px;padding:12px;margin-top:7px;min-height:48px}
select:focus{outline:3px solid #ddd;outline-offset:2px}
.spec-group{border:1px solid var(--line);border-radius:8px;padding:20px;margin:26px 0}
.spec-group legend{font-weight:600;font-size:17px;padding:0 8px}
.spec-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.print-specs{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin:28px 0}
.print-specs>div{padding:15px 0;border-bottom:1px solid var(--line);min-width:0}
.print-specs dt{font-size:12px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.print-specs dd{font-size:16px;line-height:1.55;margin:0;white-space:normal}
.card-title{font-size:30px;line-height:1.25;margin-bottom:18px;letter-spacing:-.8px}.primary-cta{padding:15px 24px;font-size:16px}
.mobile-handoff{display:grid;grid-template-columns:1fr 180px;gap:24px;align-items:center;background:#f1f2ed;border:1px solid #d8dbd1;border-radius:8px;padding:24px;margin:26px 0}
.mobile-handoff strong{font-size:19px}.mobile-handoff p{margin:10px 0}.mobile-handoff .qr{margin:0;padding:12px;max-width:180px}.mobile-handoff .qr img,.mobile-handoff .qr canvas{width:156px;height:156px;border:0;max-width:100%}.mobile-sign-hint{display:none}
.signature-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:30px}.signature-heading span{font-size:12px;color:var(--muted)}
#signature{width:100%;max-width:640px;aspect-ratio:1000/440;height:auto;margin-top:12px}
#signature.is-accepted{border:2px solid #67815e;background:#f7faf5;cursor:default}.signature-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
#send-approval{margin-top:12px}.share-card{display:flex;flex-direction:column;gap:5px;text-decoration:none;padding:20px 22px;border:1px solid #ccc;border-radius:7px;margin:20px 0;color:var(--ink);background:#fafaf7}.share-card strong{font-size:20px}.share-card span{font-size:14px;color:var(--muted)}
@media(max-width:650px){.spec-input-grid{grid-template-columns:1fr}.spec-group{padding:16px}.print-specs{gap:0 18px}.print-specs dt{font-size:11px}.print-specs dd{font-size:14px}.card-title{font-size:26px}.mobile-handoff{display:none}.mobile-sign-hint{display:block;padding:18px;background:#f1f2ed;border-left:3px solid #8a9a7f;margin:22px 0}.mobile-sign-hint p{font-size:14px;margin:8px 0 0}.signature-heading{display:block}.signature-heading span{display:block;margin-top:6px}.signature-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.signature-actions button{font-size:12px;padding:12px 8px;margin-top:8px}}
@media(pointer:coarse){.mobile-handoff{display:none}.mobile-sign-hint{display:block;padding:18px;background:#f1f2ed;border-left:3px solid #8a9a7f;margin:22px 0}.mobile-sign-hint p{font-size:14px;margin:8px 0 0}}
/* Mobile Signatur: geschützter Zeichenmodus mit Querformat-Hinweis. */
#signature{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:contain}
body.signature-editor-open{overflow:hidden;overscroll-behavior:none}
.signature-editor{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));border:0;background:#f7f7f5;color:#151515;overflow:hidden;display:none;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.signature-editor[open]{display:grid}.signature-editor::backdrop{background:#f7f7f5}
.signature-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:16px}
.signature-editor-header button{width:auto;margin:0;padding:8px 14px;font-size:13px}
.signature-pad-area{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;touch-action:none;overflow:hidden}
.signature-editor #signature{max-width:none;max-height:100%;margin:0;flex:none;background:#fff;border:2px dashed #aaa;touch-action:none}
.signature-editor-controls{min-height:0}.signature-editor .signature-actions{display:flex;justify-content:center;gap:12px;margin:0}
.signature-editor .signature-actions button{width:auto;margin:0;padding:11px 16px;font-size:14px}.signature-editor #signature-error{margin:4px 0 0;text-align:center;font-size:13px}
.signature-rotate-hint{grid-row:2;align-self:center;justify-self:center;text-align:center;max-width:430px;padding:18px}
.signature-rotate-hint>span{font-size:56px;line-height:1.2;display:block}.signature-rotate-hint h2{margin:18px 0 12px;font-size:25px}.signature-rotate-hint p{font-size:16px;line-height:1.6}.signature-rotate-hint button{width:auto;margin-top:16px;font-size:13px}
@media(max-height:420px){.signature-editor{padding-block:8px;gap:6px}.signature-editor-controls .signature-actions button{padding:8px 14px}.signature-editor-header{font-size:14px}}
/* Ampelfarben bleiben durch klare Statusbeschriftungen auch ohne Farberkennung verständlich. */
.badge{display:inline-flex;gap:7px;align-items:center}
.badge::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.badge--approved{background:#dff1e3;color:#23633b}
.badge--pending{background:#fff2c9;color:#735600}
.badge--changes{background:#ffead4;color:#914b10}
.badge--revoked{background:#fbe3e1;color:#9d302b}
.badge--superseded{background:#ececea;color:#686865}
.status-panel{border-left:4px solid #deded8}
.status--approved{border-color:#bdd9c4;border-left-color:#3c8b56;background:#f6fbf7}
.status--pending{border-left-color:#d9ac20}
.status--changes{border-left-color:#d8842c}
.status--revoked{border-left-color:#c34c47}
.job{padding:18px 14px;border-radius:7px;margin-bottom:5px;border-left:4px solid #deded8}
.job--approved{background:#edf7ef;border-color:#cce2d1;border-left-color:#3c8b56}
.job--pending{border-left-color:#d9ac20}
.job--changes{background:#fff7ee;border-left-color:#d8842c}
.job--revoked{background:#fff5f4;border-left-color:#c34c47}
.link-access-help{font-size:14px;background:#f6f6f3;padding:14px 16px;border-radius:6px}
/* Zentriertes Login und einzeilige, gut erreichbare Smartphone-Buttons. */
.login-page{min-height:100vh;min-height:100svh}
.login-page main{max-width:480px;display:flex;flex-direction:column;justify-content:center;margin:0 auto;padding:36px 24px}
.login-page h1{text-align:center;font-size:29px;line-height:1.25;margin:0 0 25px}
.login-page .narrow{width:100%;max-width:none;margin:0;padding:28px}
.login-page .narrow button{width:100%;margin-top:22px}
button,.button{white-space:nowrap;overflow-wrap:normal;word-break:normal}
@media(max-width:650px){
 button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;font-size:13px;padding:12px 14px;max-width:100%;white-space:nowrap;overflow-wrap:normal}
 nav{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
 nav a,nav form{width:100%;min-width:0}
 nav .button,nav button{margin-top:0}
 .signature-actions{grid-template-columns:minmax(0,1fr);gap:8px}
 .signature-actions button{width:100%;font-size:13px;margin-top:0;padding:12px 14px}
 .signature-editor .signature-actions{display:flex;flex-wrap:wrap}
 .signature-editor .signature-actions button{width:auto;font-size:13px;padding:10px 14px}
 .login-page main{max-width:440px;padding:28px 20px}
 .login-page h1{font-size:26px;margin-bottom:22px}
 .login-page .narrow{padding:24px 20px}
 .login-page input{font-size:16px}
}
/* Querformat: fast die gesamte nutzbare Fläche, nur eine kompakte Werkzeugleiste. */
.signature-editor-back-wide{display:none}
@media(orientation:landscape){
 .signature-editor{grid-template-rows:minmax(0,1fr) auto;padding-top:max(6px,env(safe-area-inset-top));padding-bottom:max(6px,env(safe-area-inset-bottom));gap:6px}
 .signature-editor-header{display:none}
 .signature-pad-area{grid-row:1}
 .signature-editor-controls{grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}
 .signature-editor-back-wide{display:inline-flex;width:auto;margin:0;min-height:40px;padding:8px 14px;font-size:13px}
 .signature-editor .signature-actions{display:flex;justify-content:flex-end;flex-wrap:nowrap;gap:8px;min-width:0}
 .signature-editor .signature-actions button{min-height:40px;margin:0;padding:8px 14px;font-size:13px}
 .signature-editor #signature-error{grid-column:1/-1}
 .signature-editor #signature-error:empty{display:none}
}
