*{box-sizing:border-box}
:root{
 --green:#1f7338;--green2:#2f914b;--green-soft:#edf7ef;
 --blue:#1478bd;--blue-soft:#eef7fd;
 --orange:#f38a16;--orange-soft:#fff6e9;
 --purple:#8355bd;--purple-soft:#f7f0fd;
 --teal:#15869a;--red:#d84949;--yellow:#d99100;
 --ink:#25342d;--muted:#68766f;--line:#dfe7e2;--bg:#f5f8f6;
 --shadow:0 8px 28px rgba(36,73,51,.08);
}
html,body{margin:0;padding:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue)}button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}
.sidebar-brand{padding:18px 14px 14px;border-bottom:1px solid var(--line)}
.sidebar-logo{width:100%;height:auto;display:block}
.sidebar-nav{padding:14px 12px;overflow:auto;flex:1}
.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a978f;padding:15px 12px 7px}
.nav-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;text-decoration:none;color:#34423b;margin:2px 0;font-size:14px}
.nav-link:hover{background:#f3f7f4;color:var(--green)}
.nav-link.active{background:#e9f4eb;color:var(--green);font-weight:700}
.nav-icon{font-size:20px;width:24px;text-align:center}
.sidebar-security{margin:10px 12px 12px;padding:13px;border:1px solid #cee5d3;background:#f2faf4;border-radius:12px;font-size:12px;line-height:1.45}
.sidebar-logout{padding:0 12px 14px}.sidebar-logout a{display:block;text-align:center;background:var(--green);color:#fff;padding:11px;border-radius:9px;text-decoration:none;font-weight:700}
.main-area{grid-column:2;min-width:0}
.topbar{height:145px;background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 30px}
.topbar-center{text-align:center}.topbar-center h1{margin:0;color:var(--green);font-size:30px}.topbar-center p{margin:8px 0 0;font-size:19px;color:#56645d}
.topbar-user{text-align:right;font-size:14px}.topbar-user strong{color:var(--green)}
.content{padding:24px;max-width:1500px;margin:auto}
.quick-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:18px}
.quick-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;min-height:155px;box-shadow:var(--shadow)}
.quick-card.green{border-color:#acd8b5;background:linear-gradient(150deg,#fff,#f4fbf5)}
.quick-card.blue{border-color:#a6d3f1;background:linear-gradient(150deg,#fff,#f3f9fd)}
.quick-card.orange{border-color:#f3c48c;background:linear-gradient(150deg,#fff,#fff8ef)}
.quick-card.purple{border-color:#ccb2e8;background:linear-gradient(150deg,#fff,#faf6fe)}
.quick-card.teal{border-color:#a4d4dc;background:linear-gradient(150deg,#fff,#f3fbfc)}
.quick-head{display:flex;gap:14px;align-items:flex-start}.quick-icon{font-size:37px;line-height:1}.quick-card h3{font-size:15px;margin:2px 0 8px}.quick-card p{font-size:13px;line-height:1.45;margin:0;color:#4d5b54}.quick-card .btn{margin-top:auto;width:100%;text-align:center}
.btn{display:inline-block;border:0;border-radius:8px;padding:10px 16px;text-decoration:none;font-weight:700;cursor:pointer}
.btn-primary{background:var(--green);color:#fff}.btn-blue{background:var(--blue);color:#fff}.btn-orange{background:var(--orange);color:#fff}.btn-purple{background:var(--purple);color:#fff}.btn-teal{background:var(--teal);color:#fff}.btn-secondary{background:#64736b;color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-light{background:#f1f5f2;color:#324239;border:1px solid #dce5df}
.welcome{background:#fff;border:1px solid #b8dcc0;border-radius:14px;padding:18px;margin-bottom:18px;display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:center}
.welcome h2{font-size:18px;color:var(--green);margin:0 0 10px}.welcome p{margin:5px 0;font-size:14px}
.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.metric{text-align:center;padding:10px}.metric strong{display:block;font-size:24px;margin-top:5px}.metric span{font-size:12px;color:#55655d}.metric-icon{font-size:24px}
.dashboard-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow);margin-bottom:16px}.panel h2{font-size:16px;margin:0 0 15px}.panel h1{color:var(--green);margin-top:0}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:10px 8px;border-bottom:1px solid #edf1ee;text-align:left;vertical-align:top}.data-table th{color:#4b5a52;background:#f8faf9;white-space:nowrap}.data-table tr:hover td{background:#fbfdfc}
.badge{display:inline-block;border-radius:7px;padding:4px 9px;font-size:11px;font-weight:700}.badge-success{background:#dff2df;color:#246b31}.badge-warning{background:#fff0c8;color:#885f00}.badge-danger{background:#fbdcdc;color:#a02d2d}.badge-info{background:#e5f0fb;color:#2264a1}.badge-muted{background:#edf1ef;color:#5b6861}
.task-line{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid #edf1ee}.task-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--green)}.task-dot.overdue{background:#e82424}.task-dot.soon{background:var(--orange)}
.privacy-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;background:#fff9eb;border:1px solid #f0ce86;border-radius:14px;padding:17px;margin-top:2px}.privacy-icon{font-size:37px}.signature{font-style:italic;font-size:17px}
.footer{background:#17662f;color:#fff;text-align:center;padding:14px;font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
label{display:block;font-size:13px;font-weight:700;color:#3f4d46}input,select,textarea{width:100%;border:1px solid #cbd7d0;border-radius:8px;padding:10px;background:#fff;margin-top:5px;color:#26352d}textarea{min-height:95px;resize:vertical}
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check{padding:9px;background:#f7faf8;border:1px solid #e4ebe7;border-radius:8px;font-weight:400}.check input{width:auto;margin:0 7px 0 0}
.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:12px 0}
.alert{padding:13px 15px;border-radius:9px;margin:12px 0}.alert-success{background:#e2f4e5;color:#235f2d}.alert-danger{background:#fde1e1;color:#9a2525}.alert-warning{background:#fff3d5;color:#725300}.alert-info{background:#eaf5fc;color:#205d84}
.progress{height:9px;background:#e0e9e3;border-radius:9px;overflow:hidden}.progress span{display:block;height:100%;background:var(--green)}
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.kpi-card strong{display:block;font-size:25px;color:var(--green)}
.public-body{background:linear-gradient(135deg,#f6faf7,#edf5ef);padding:24px}.public-wrap{max-width:980px;margin:auto}.public-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.public-logo{width:min(100%,760px);height:auto}.public-card h1{color:var(--green)}.clean-list{line-height:1.8}
.signature-canvas{width:100%;height:180px;border:2px dashed #a5b8ae;border-radius:10px;background:#fff;touch-action:none}
.page-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:14px}.page-title h1{margin:0;color:var(--green)}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card-link{color:inherit;text-decoration:none}
@media(max-width:1200px){.quick-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:880px){.app-shell{display:block}.sidebar{position:static;width:auto}.sidebar-nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-security{display:none}.main-area{grid-column:auto}.topbar{height:auto;grid-template-columns:1fr;padding:18px}.topbar-user{display:none}.content{padding:14px}.quick-grid,.dashboard-grid,.welcome,.two-column,.kpi-row{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.form-grid.three,.check-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.no-print,.footer{display:none!important}.app-shell{display:block}.main-area{display:block}.content{padding:0;max-width:none}.panel{box-shadow:none;border:0;padding:0}.data-table{font-size:10px}@page{size:A4;margin:12mm}}

/* Formular-Kompatibilität und striktes DIN-A4-Drucklayout */
.wrap{max-width:1180px;margin:auto;padding:24px}.narrow{max-width:940px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin:16px 0;box-shadow:var(--shadow)}
.grid{display:grid;gap:15px}.grid.two,.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three,.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.checkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.steps .step{display:none}.steps .step.active{display:block}.sig{width:100%;height:180px;border:2px dashed #a5b8ae;border-radius:10px;background:#fff;touch-action:none}
.success{background:#e2f4e5;color:#235f2d;padding:13px 15px;border-radius:9px}.error{background:#fde1e1;color:#9a2525;padding:13px 15px;border-radius:9px}.notice{background:#fff3d5;color:#725300;padding:13px 15px;border-radius:9px}.button,.secondary{display:inline-block;border:0;border-radius:8px;padding:10px 16px;text-decoration:none;font-weight:700;cursor:pointer;background:var(--green);color:#fff}.secondary{background:#64736b}.required:after{content:" *";color:#c33}
.registration-form{max-width:1050px}.form-header{margin-bottom:15px}.form-header-row{display:flex;justify-content:space-between;gap:20px;align-items:center}.form-header h1{margin:8px 0;color:var(--green)}.form-footer{text-align:center;padding:18px;color:#617067;font-size:12px}
.confirmation-a4{max-width:210mm;margin:0 auto}.confirmation-page{background:#fff;width:210mm;min-height:297mm;padding:15mm;box-shadow:var(--shadow)}.confirmation-logo{width:100%;max-height:42mm;object-fit:contain;object-position:left}.confirmation-page h1{color:var(--green)}.confirmation-table{width:100%;border-collapse:collapse;margin:15px 0}.confirmation-table th,.confirmation-table td{border-bottom:1px solid #dfe7e2;padding:9px;text-align:left;vertical-align:top}.confirmation-table th{width:36%;background:#f4f8f5}.confirmation-note{margin-top:25px}.confirmation-page footer{margin-top:35px;border-top:1px solid #dfe7e2;padding-top:10px;font-size:11px;color:#68766f}
@media(max-width:880px){.grid.two,.grid.three,.checkgrid{grid-template-columns:1fr}.form-header-row{display:block}.confirmation-page{width:100%;min-height:auto;padding:18px}}
@media print{
 body.public-body{background:#fff!important;padding:0!important}
 .registration-form{max-width:none!important;margin:0!important}
 .form-header,.registration-form .card,.registration-form .step{box-shadow:none!important}
 .registration-form .steps .step{display:block!important;page-break-before:always}
 .registration-form .steps .step:first-child{page-break-before:auto}
 .registration-form .card{break-inside:avoid;border:1px solid #cfd9d3!important;margin:0 0 7mm;padding:7mm}
 .registration-form .progress,.registration-form .toolbar.no-print{display:none!important}
 .registration-form input,.registration-form textarea,.registration-form select{border:0!important;border-bottom:1px solid #777!important;border-radius:0!important;background:transparent!important}
 .registration-form .check{border:0!important;background:transparent!important}
 .form-header{border:0!important;padding:0!important;margin-bottom:7mm!important}
 .form-footer{position:fixed;bottom:4mm;left:0;right:0}
 .confirmation-a4{max-width:none;margin:0}
 .confirmation-page{width:210mm;min-height:297mm;padding:15mm;box-shadow:none}
 @page{size:A4 portrait;margin:10mm}
}

/* Persönliche Einladungsseite Version 3.2 */
.invitation-body{background:linear-gradient(145deg,#f4faf5,#eef6fb);padding:28px}
.invitation-wrap{max-width:980px}
.invitation-card{padding:30px}
.invitation-personal{text-align:center;margin:18px 0 24px}
.invitation-personal h1{font-size:31px;margin:14px 0 8px;color:var(--green)}
.invitation-badge{display:inline-block;background:#e4f3e7;color:#226637;border:1px solid #b9dabc;border-radius:999px;padding:7px 13px;font-weight:700;font-size:13px}
.invitation-section{border-radius:14px;padding:19px;margin:15px 0;border:1px solid var(--line)}
.invitation-section h2{margin:0 0 10px;font-size:19px}
.green-box{background:#f2faf4;border-color:#b8dabc}.green-box h2{color:var(--green)}
.blue-box{background:#f1f8fd;border-color:#b6d8ef}.blue-box h2{color:var(--blue)}
.purple-box{background:#f8f3fc;border-color:#d5bfea}.purple-box h2{color:var(--purple)}
.orange-box{background:#fff7ed;border-color:#efcca1}.orange-box h2{color:#c86c06}
.invitation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.invitation-grid>div{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:10px;padding:13px;line-height:1.5}
.privacy-points{margin:0;padding-left:22px;line-height:1.65}
.privacy-points li{margin:7px 0}
.invitation-confirm{background:#fff;border:2px solid #aed0b6;border-radius:14px;padding:20px;margin-top:20px;text-align:center}
.invitation-check{display:flex;gap:11px;text-align:left;align-items:flex-start;font-size:15px;line-height:1.5}
.invitation-check input{width:20px;height:20px;flex:0 0 auto;margin-top:2px}
.disabled-link{opacity:.42;pointer-events:none}
.invitation-help{margin-top:18px;padding:15px;border-left:5px solid var(--blue);background:#f4f9fc;border-radius:8px;line-height:1.5}
@media(max-width:700px){.invitation-body{padding:10px}.invitation-card{padding:18px}.invitation-grid{grid-template-columns:1fr}.invitation-personal h1{font-size:24px}}
@media print{.invitation-body{padding:0}.invitation-card{box-shadow:none;border:0}.invitation-confirm{display:none}.invitation-section{break-inside:avoid}@page{size:A4 portrait;margin:12mm}}
