/* Bewusst immer dunkel (Anthrazit); Vertragsseiten und Unterschriftsfeld bleiben weiß wie Papier */
:root{color-scheme:dark;--bg:#17181a;--card:#212326;--ink:#ededed;--muted:#a4a8ae;--line:#34373c;--brand:#c8a97e;--brand-d:#dcc39f;--brand-ink:#17181a;--soft:#2a2c30;--field:#1b1d1f;--ok:#8fd1a8;--ok-bg:#1d3226;--err:#ff8a80;--err-bg:#3a1f1c;--warn:#f3d68a;--warn-bg:#3a2f12;--sage:#8fc0b6;--sage-bg:#1f312d}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--brand-d)}
h1{font-size:1.6rem;margin:.6rem 0 1rem}h2{font-size:1.15rem;margin:0 0 .7rem}h3{font-size:1rem;margin:1.2rem 0 .5rem}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px;margin:0 auto;padding:24px 16px 40px}
.top{background:var(--card);border-bottom:1px solid var(--line);margin-bottom:20px}
.top .row{padding:10px 16px}
.brand{font-weight:700;color:var(--brand-d);text-decoration:none;margin-right:24px}
nav a{margin-right:16px;color:var(--muted);text-decoration:none}nav a:hover{color:var(--ink)}
.row{display:flex;align-items:center}.gap{gap:10px}.between{justify-content:space-between}.push{margin-left:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:18px}
.hero{border-color:#41444a}
.stack>*+*{margin-top:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.grid2>.full,.grid2 .full{grid-column:1/-1}.grid2.stack>*+*{margin-top:0}
label{display:block;font-size:.9rem;font-weight:600;color:var(--ink)}
label input,label select{margin-top:4px}
input,select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:7px;font:inherit;background:var(--field);color:var(--ink)}
input[type=checkbox]{width:auto;margin:3px 8px 0 0}
input:focus,select:focus{outline:2px solid var(--sage);border-color:var(--brand)}
.row input{width:auto;flex:1;min-width:150px}
.check{display:flex;align-items:flex-start;font-weight:400}
.btn{display:inline-block;padding:9px 16px;border-radius:7px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--brand-d)}.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--brand-d);border-color:var(--line)}.btn.ghost:hover{background:var(--soft)}
.btn.danger{background:transparent;color:var(--err);border-color:#6b3631}
.btn.big{padding:13px 22px;font-size:1.05rem}
.linkbtn{background:none;border:0;color:var(--err);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.inline{display:inline}
.note{padding:10px 14px;border-radius:7px;background:var(--ok-bg);color:var(--ok);margin:0 0 14px}
.note.error{background:var(--err-bg);color:var(--err)}.note.warn{background:var(--warn-bg);color:var(--warn)}.note.ok{background:var(--ok-bg);color:var(--ok)}
.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.85rem}
.ok{color:var(--ok)}.err{color:var(--err)}
.testbar{background:var(--warn-bg);color:var(--warn);text-align:center;font-size:.8rem;padding:4px}
.newlink{margin-top:16px;padding:14px;border:1px dashed var(--brand);background:var(--soft);border-radius:8px}.newlink input{margin-top:10px}
.links ul{padding-left:18px}.links li{margin:4px 0}
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#1d1f22}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:600;background:var(--line)}
.badge.pruefung{background:var(--warn-bg);color:var(--warn)}.badge.zur_unterschrift{background:var(--soft);color:var(--brand-d)}.badge.unterschrieben{background:var(--sage);color:#14231f}.badge.storniert{background:var(--err-bg);color:var(--err)}
dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0}dt{color:var(--muted)}dd{margin:0}
.pdf{width:100%;height:75vh;border:1px solid var(--line);border-radius:8px;margin:14px 0;background:#fff}
.box{border:1px solid var(--line);background:var(--soft);border-radius:8px;padding:14px;margin:12px 0}
.dangerzone{border-color:#6b3631}
.sigpreview{max-height:70px;max-width:280px;border:1px dashed var(--line);padding:6px;background:#fff}
.qr{width:180px;height:180px;background:#fff}
.code{max-width:140px;font-family:ui-monospace,Menlo,monospace;letter-spacing:.2em}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--brand)}
.padwrap{border:2px dashed var(--line);border-radius:10px;background:#fff;margin-top:6px;touch-action:none}
#pad{width:100%;height:auto;display:block;cursor:crosshair;touch-action:none}
.label{font-size:.9rem;font-weight:600}
.footer{margin-top:30px}
@media (max-width:720px){.grid2{grid-template-columns:1fr}.wrapmobile{flex-wrap:wrap}.top .row{flex-wrap:wrap;gap:6px}h1{font-size:1.35rem}}
.pdfview{border:1px solid var(--line);border-radius:8px;background:#2c2e32;padding:8px;margin:14px 0;max-height:80vh;overflow-y:auto}
.pdfview canvas{display:block;width:100%;height:auto;background:#fff;margin:0 auto 8px;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.check span{flex:1}
.intro{display:grid;gap:10px;margin-bottom:18px}.intro p{margin:0}
.intro .greeting{font-size:1.15rem;font-weight:600;color:var(--brand-d)}
.hint{color:var(--warn);font-weight:500}
/* Terminbuchung */
textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:7px;font:inherit;background:var(--field);color:var(--ink);margin-top:4px;resize:vertical}
textarea:focus{outline:2px solid var(--sage);border-color:var(--brand)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.typelist{display:grid;gap:12px}
.typecard{display:grid;gap:4px;text-decoration:none;color:var(--ink);margin:0;transition:border-color .15s}
.typecard:hover{border-color:var(--brand)}.typecard strong{font-size:1.1rem;color:var(--brand-d)}
.calhead{margin-bottom:12px}.calhead strong{font-size:1.05rem}
.calhead [data-off]{opacity:.3;cursor:default}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.calwd{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-bottom:4px}
.calday{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:50%;max-width:46px;width:100%;margin:0 auto;font-weight:600;text-decoration:none}
.calday.none{color:#5c6066;font-weight:400}
.calday.free{background:var(--soft);color:var(--brand-d);border:1px solid #4a4d52}
.calday.free:hover{border-color:var(--brand)}
.calday.sel{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.slot{text-align:center}
.chosen{font-size:1.05rem;margin:0 0 14px}
.hours{display:grid;gap:6px;margin-top:6px}
.hourrow{align-items:center;gap:8px;flex-wrap:wrap}.hourrow .wd{min-width:96px;flex:0}
.hourrow input[type=time]{width:auto;margin:0}
.msg{white-space:normal;max-width:280px}
.topgap{margin-top:10px}
.linkbtn.plain{color:var(--brand-d)}
td.actions{text-align:right}td.actions .btn{padding:5px 10px;margin-right:8px}
.greeting-line{color:var(--brand-d);font-weight:500}
/* Paar-Seite */
.timeline{list-style:none;padding:0;margin:20px 0 24px;position:relative}
.timeline::before{content:"";position:absolute;left:13px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl{display:flex;gap:14px;position:relative;padding:0 0 22px}
.tl .dot{flex:0 0 28px;height:28px;border-radius:50%;background:var(--bg);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;z-index:1}
.tl.done .dot{background:var(--sage);border-color:var(--sage);color:#14231f}
.tl.current .dot{border-color:var(--brand);background:var(--brand);box-shadow:0 0 0 5px rgba(200,169,126,.18)}
.tl.todo strong,.tl.todo .tlbody p{color:var(--muted)}
.tlbody{flex:1;padding-top:3px}.tlbody p{margin:6px 0 0}.tlbody .row{margin-top:10px}
.notecard{border-color:var(--brand)}
.plainlist{list-style:none;padding:0;margin:0}.plainlist li{padding:8px 0;border-bottom:1px solid var(--line)}.plainlist li:last-child{border:0}
.stagepick{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px}.stagepick input{width:auto}
.pagehead{margin-top:0}
.agenda{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:6px}.agenda .card{margin-bottom:12px}
@media (max-width:900px){.agenda{grid-template-columns:1fr}}
.contactcard{display:grid;gap:12px}.contactcard h2{margin:0}.contactcard .phone{font-size:1.35rem;font-weight:700;letter-spacing:.03em;color:var(--brand-d);font-variant-numeric:tabular-nums;margin:0}
