:root{--accent:#d50c2f;--accent-dark:#b90b29;--ink:#252b31;--muted:#6f7882;--line:#e2e6ea;--bg:#f5f6f8;--card:#fff;--success:#2f7d4a;--warning:#9b6a16;--sidebar:#2f353b}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:210px 1fr}.sidebar{background:var(--sidebar);color:#fff;padding:26px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-weight:650;margin:0 8px 32px}.brand-mark{background:var(--accent);padding:6px 8px;border-radius:7px;font-size:12px;letter-spacing:.06em}.sidebar nav{display:grid;gap:6px}.sidebar nav a,.side-foot a{text-decoration:none;padding:10px 12px;border-radius:8px;color:#dfe3e8}.sidebar nav a:hover,.sidebar nav a.active{background:#3d444b;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--accent)}.side-foot{margin-top:auto}.topbar{height:106px;background:#fff;border-bottom:1px solid var(--line);padding:24px 34px;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--accent);font-weight:700}.topbar h1{margin:2px 0 0;font-size:24px}.userchip{background:#f7f8fa;border:1px solid var(--line);border-radius:20px;padding:8px 13px;color:#4d555d}.content{padding:30px 34px;max-width:1320px}.welcome{margin-bottom:24px}.welcome h2{margin:0 0 5px;font-size:22px}.muted{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0 28px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,.025)}.metric strong{display:block;font-size:28px;margin-top:5px}.metric span{color:var(--muted);font-size:13px}.section-head{display:flex;align-items:end;justify-content:space-between;margin:0 0 12px}.section-head h2{margin:0;font-size:18px}.btn{display:inline-block;border:0;border-radius:8px;background:var(--accent);color:#fff;text-decoration:none;padding:9px 13px;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent-dark)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #edf0f2}th{font-size:12px;color:var(--muted);background:#fafbfc;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.amount{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:4px 9px;border-radius:20px;font-size:12px;font-weight:650;background:#f0f2f4}.badge.open{color:var(--warning);background:#fff7e8}.badge.paid{color:var(--success);background:#edf8f1}.badge.cancelled{color:var(--accent);background:#fff0f3}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail{padding:12px 0;border-bottom:1px solid #edf0f2}.detail small{display:block;color:var(--muted);margin-bottom:2px}.notice{padding:13px 15px;border-radius:9px;background:#fff7e8;border:1px solid #f1dfba;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:grid;gap:6px;font-weight:600;font-size:13px}input,textarea{width:100%;border:1px solid #cfd5da;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}textarea{min-height:100px}.actions{margin-top:18px;display:flex;gap:10px}footer{padding:10px 34px 25px;color:#9299a1;font-size:12px}@media(max-width:800px){.shell{display:block}.sidebar{padding:14px;display:block}.brand{margin:0 0 12px}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.side-foot{display:none}.topbar{height:auto;padding:18px 20px}.userchip{display:none}.content{padding:20px}.cards,.detail-grid,.form-grid{grid-template-columns:1fr}table,thead,tbody,tr,th,td{display:block}thead{display:none}tr{padding:10px;border-bottom:1px solid var(--line)}td{border:0;padding:4px 10px}.amount{text-align:left}}
.login-page{background:linear-gradient(135deg,#f5f6f8 0%,#eef0f3 100%)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);padding:32px}.login-brand{color:var(--ink);margin:0 0 28px}.login-intro h1{font-size:26px;margin:3px 0 6px}.login-card label+label{margin-top:14px}.login-note{font-size:12px;margin:18px 0 0;text-align:center}.btn.full{width:100%}.alert{padding:13px 15px;border-radius:9px;margin-bottom:18px}.alert.error{background:#fff0f3;border:1px solid #f1c8d0;color:#8f1630}.alert.success{background:#edf8f1;border:1px solid #cce7d5;color:#2f6f46}.card-title{margin-top:0}.field-spaced{margin-top:14px}.request-head{margin-top:28px}.empty-state{color:var(--muted)}select{width:100%;border:1px solid #cfd5da;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}.badge.request-open{color:var(--warning);background:#fff7e8}.badge.request-accepted{color:#315d8b;background:#eef5fb}.badge.request-rejected{color:var(--accent);background:#fff0f3}.badge.request-done{color:var(--success);background:#edf8f1}.userchip{display:grid;gap:1px}.userchip small{font-size:10px;color:var(--muted);text-align:right}.portal-version{margin-top:24px;color:#a1a7ad;font-size:11px}

.section-card{margin-top:18px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-list{display:grid;gap:14px}.admin-user-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.admin-inline{display:grid;grid-template-columns:1fr 1.4fr 1.2fr 1.5fr auto;gap:10px;align-items:end}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.admin-actions form{margin:0}.reset-form{display:flex;gap:8px}.reset-form input{width:220px}.btn:disabled{opacity:.45;cursor:not-allowed}.status-form select{min-width:120px}@media(max-width:1000px){.admin-grid,.admin-inline{grid-template-columns:1fr 1fr}}@media(max-width:800px){.admin-grid,.admin-inline{grid-template-columns:1fr}.admin-user-head{display:block}.admin-user-head>div+div{margin-top:8px}.reset-form{width:100%}.reset-form input{width:100%}}


/* v0.6 */
.list-searchbar{display:flex;gap:10px;align-items:center;margin:0 0 18px;flex-wrap:wrap}.list-searchbar input[type=search]{flex:1 1 320px;min-width:220px;padding:11px 13px;border:1px solid #d8dce4;border-radius:10px;background:#fff;font:inherit}.table-wrap{overflow-x:auto}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:18px}.pagination span{color:#68707c;font-size:.92rem}.tariff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tariff-card{margin:0}.tariff-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.tariff-head h2{margin:4px 0 0;font-size:1.15rem}.tariff-description{white-space:normal;color:#4f5865;line-height:1.55;border-top:1px solid #eceef2;padding-top:14px}.tariff-details{margin-top:16px}.badge.active{background:#edf8f0;color:#25733d}.badge.inactive{background:#f1f2f4;color:#616874}.badge.cancelled{background:#fff0f2;color:#a51d35}.notice.subtle{margin-bottom:16px;background:#f7f8fa;color:#5e6672}@media(max-width:820px){.tariff-grid{grid-template-columns:1fr}.pagination{justify-content:space-between}.list-searchbar .btn{flex:0 0 auto}}

/* v0.7 */
.invoice-link{color:var(--ink);text-decoration:none;border-bottom:1px dotted #9ca3aa}.invoice-link:hover{color:var(--accent);border-color:var(--accent)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.contract-list{display:grid;gap:20px}.contract-card{padding:24px}.contract-head,.contract-item-head,.management-title,.invoice-detail-head,.detail-page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.contract-head h2,.invoice-detail-head h2{margin:4px 0 0}.contract-meta{margin-top:12px}.highlight-detail strong{color:var(--accent)}.contract-note,.invoice-note{margin-top:16px;padding:14px 16px;background:#f7f8fa;border-radius:9px}.subheading{margin:24px 0 12px;font-size:16px}.contract-items{display:grid;gap:14px}.contract-item{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fbfcfd}.contract-item-head small{display:block;color:var(--muted);margin-top:3px}.contract-item p{color:#525b65}.mini-grid{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px}.mini-grid b{color:var(--ink);font-weight:650}.management-box{margin-top:14px;border-top:1px solid #e7eaed;padding-top:14px}.compact-details{margin-top:8px}.compact-details .detail{padding:8px 0}.detail-page-head{align-items:center;margin-bottom:16px}.back-link{text-decoration:none;color:var(--muted)}.back-link:hover{color:var(--accent)}.invoice-detail-card{max-width:1050px}.invoice-totals{margin:18px 0 0 auto;max-width:360px}.invoice-totals>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf0f2}.invoice-totals .grand{font-size:18px;border-top:2px solid var(--ink);border-bottom:0;margin-top:4px;padding-top:12px}@media(max-width:800px){.contract-head,.contract-item-head,.management-title,.invoice-detail-head,.detail-page-head{display:block}.contract-head>.badge,.invoice-detail-head>.badge{margin-top:10px}.detail-page-head .btn{margin-top:12px}.row-actions{margin-top:5px}.mini-grid{display:grid;gap:5px}}


/* v0.8 */
.contract-collapsible{padding:0;overflow:hidden}.contract-summary{list-style:none;cursor:pointer;padding:22px 24px;display:flex;justify-content:space-between;gap:18px;align-items:center}.contract-summary::-webkit-details-marker{display:none}.contract-summary h2{margin:4px 0 5px}.contract-summary-right{display:flex;align-items:center;gap:12px}.summary-chevron{font-size:24px;color:var(--muted);transition:transform .2s ease}.contract-collapsible[open] .summary-chevron{transform:rotate(180deg)}.contract-body{padding:0 24px 24px;border-top:1px solid var(--line)}.bank-change-card{margin-top:18px;background:linear-gradient(135deg,#fff8f9,#fff);border-color:#f1cbd2}.bank-change-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.bank-lock{font-size:12px;font-weight:700;color:#8f1630;background:#fff0f3;border:1px solid #efc8d0;padding:7px 10px;border-radius:999px}.readonly-field{background:#f1f3f5!important;color:#68707a;cursor:not-allowed}.field-help{font-size:11px;color:var(--muted);font-weight:400;line-height:1.35}.admin-dashboard-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{display:grid;gap:5px}.metric>span{color:var(--muted);font-size:13px}.metric>strong{font-size:30px}.metric>small{color:var(--muted)}@media(max-width:800px){.contract-summary,.bank-change-head{display:block}.contract-summary-right{margin-top:10px}.admin-dashboard-cards{grid-template-columns:1fr}}

/* v0.9 */
.invoice-filterbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0 0 18px}.invoice-filterbar>label{min-width:110px}.invoice-filterbar select{min-width:110px}.invoice-live-search{margin:0;flex:1 1 320px;min-width:min(320px,100%)}.invoice-live-search input{width:100%;padding:11px 13px;border:1px solid #d8dce4;border-radius:10px;background:#fff;font:inherit}.homepage-message{color:#525b65;line-height:1.65}.homepage-message>:first-child{margin-top:0}.homepage-message>:last-child{margin-bottom:0}.homepage-message h2,.homepage-message h3,.homepage-message h4{color:var(--ink);margin-bottom:8px}.code-textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-height:220px}.setting-check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.setting-check input{width:auto}.preview-box{padding:16px;background:#f7f8fa;border:1px solid var(--line);border-radius:10px}.mandate-info{grid-column:1/-1;padding:14px 16px;background:#fff;border:1px solid #efc8d0;border-radius:9px}.mandate-info small,.mandate-info span{display:block}.mandate-info small{color:var(--muted);margin-bottom:3px}.mandate-info strong{font-size:16px}.mandate-info span{margin-top:5px;color:var(--muted);font-size:11px}.admin-profile-card{max-width:900px}@media(max-width:620px){.invoice-filterbar{display:grid;grid-template-columns:1fr}.invoice-filterbar>label,.invoice-filterbar select,.invoice-live-search{width:100%;min-width:0}}


/* v0.10 */
.admin-customer-toolbar{margin:0 0 16px}.admin-customer-toolbar .list-search{max-width:460px;margin:0}.admin-customer-toolbar input{width:100%}.customer-status-stack{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.customer-create-access{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end}.customer-access-form{grid-template-columns:minmax(260px,1fr) minmax(180px,.6fr) auto}.customer-login-meta{display:grid;gap:6px;padding-bottom:3px}.customer-login-meta small{color:var(--muted);font-size:11px}.compact-invoice-filter{align-items:end;gap:10px}.compact-invoice-filter .invoice-year-control{flex:0 0 116px;min-width:116px}.compact-invoice-filter .invoice-year-control select{width:116px;min-width:116px}.compact-invoice-filter .invoice-live-search{flex:1 1 360px;min-width:240px;margin:0}.invoice-clear{flex:0 0 auto}.invoice-clear[hidden]{display:none}.is-loading{opacity:.58;transition:opacity .12s}.pagination button:disabled{opacity:.4;cursor:not-allowed}
.modern-contract{border-color:#dde2e7;box-shadow:0 4px 18px rgba(24,32,40,.04)}.modern-contract .contract-summary{padding:20px 22px;background:linear-gradient(180deg,#fff,#fbfcfd)}.contract-summary-main{min-width:0;flex:1}.contract-title-row{display:flex;align-items:center;gap:10px;margin-bottom:5px}.contract-number{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:750}.modern-contract .contract-summary h2{font-size:18px;margin:0 0 12px}.contract-summary-meta{display:flex;gap:26px;flex-wrap:wrap}.contract-summary-meta span{display:grid;gap:1px}.contract-summary-meta small{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.contract-summary-meta strong{font-size:13px}.summary-toggle{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;font-weight:700}.summary-toggle b{font-size:21px;line-height:1;transition:transform .2s ease}.modern-contract[open] .summary-toggle b{transform:rotate(180deg)}.contract-cost-summary{display:flex;align-items:stretch;margin:18px 0 24px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fafbfc}.contract-cost-summary>div{flex:1;padding:14px 17px;display:grid;gap:3px;border-right:1px solid var(--line)}.contract-cost-summary>div:last-child{border-right:0}.contract-cost-summary small{color:var(--muted);font-size:11px}.contract-cost-summary strong{font-size:17px}.contract-cost-summary .gross{background:#fff6f8}.contract-cost-summary .gross strong{color:var(--accent)}.item-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.contract-item-head>div>small{display:block}.simplified-management{margin-top:12px}.item-costs{margin-top:12px}.management-box.simplified-management{border-top:1px solid #e7eaed}.modern-contract .contract-body{padding-top:4px}
@media(max-width:800px){.customer-create-access,.customer-access-form{grid-template-columns:1fr}.customer-status-stack{justify-content:flex-start;margin-top:9px}.compact-invoice-filter{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:end}.compact-invoice-filter .invoice-live-search{min-width:0}.compact-invoice-filter .invoice-clear{grid-column:1/-1;width:max-content}.contract-summary-meta{gap:12px 20px}.summary-toggle span{display:none}.contract-cost-summary{display:grid}.contract-cost-summary>div{border-right:0;border-bottom:1px solid var(--line)}.contract-cost-summary>div:last-child{border-bottom:0}}


/* v0.10.2 – Vertragsansicht */
.modern-contract .contract-summary{padding:24px 28px}
.modern-contract .contract-summary h2{font-size:20px;margin:2px 0 15px;line-height:1.3}
.contract-title-row{margin-bottom:8px}
.contract-summary-meta{gap:18px 34px}
.contract-summary-meta span{min-width:125px}
.contract-summary-meta small{margin-bottom:3px}
.contract-summary-meta strong{font-size:14px}
.modern-contract .contract-body{padding:24px 28px 30px}
.modern-contract .contract-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0 0 22px}
.modern-contract .contract-meta .detail{padding:14px 0}
.contract-cost-summary{margin:4px 0 30px}
.contract-cost-summary>div{padding:17px 20px}
.contract-cost-summary small{font-size:12px}
.contract-cost-summary strong{font-size:19px}
.modern-contract .subheading{margin:30px 0 14px;font-size:17px}
.modern-contract .contract-items{gap:16px}
.modern-contract .contract-item{padding:20px 22px;border-radius:12px;background:#fff}
.modern-contract .contract-item-head{margin-bottom:10px}
.modern-contract .item-title-line strong{font-size:15px}
.contract-item-description{margin:10px 0 16px;line-height:1.65;color:#4f5862}
.modern-contract .item-costs{padding:12px 0 2px;border-top:1px solid #edf0f2;gap:24px}
.modern-contract .simplified-management{margin-top:16px;padding-top:12px}
.modern-contract .compact-details{gap:0 26px}
@media(max-width:800px){
 .modern-contract .contract-summary,.modern-contract .contract-body{padding:20px}
 .modern-contract .contract-meta{grid-template-columns:1fr}
 .contract-summary-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
 .contract-summary-meta span{min-width:0}
}

/* v0.10.3 – Vertrag UI neu aufgebaut */
.dashboard-invoice-head{margin-top:24px}
.contract-ui{padding:0;overflow:hidden;border:1px solid #dfe4ea;border-radius:14px;box-shadow:0 5px 18px rgba(22,30,40,.045);background:#fff}
.contract-ui-summary{display:grid;grid-template-columns:44px minmax(0,1fr) 34px;gap:14px;align-items:center;padding:22px 24px;background:linear-gradient(180deg,#fff,#fbfcfd);cursor:pointer;list-style:none}
.contract-ui-summary::-webkit-details-marker{display:none}
.contract-summary-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#fff4f6;color:var(--accent);border:1px solid #f1d2d9}
.contract-summary-copy{min-width:0}
.contract-summary-titleline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.25}
.contract-summary-titleline>strong{font-size:17px}
.contract-summary-name{margin-top:4px;color:#5e6772;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contract-summary-chevron{display:grid;place-items:center;color:#59636e;transition:transform .2s ease}
.contract-ui[open] .contract-summary-chevron{transform:rotate(180deg)}
.contract-ui-body{padding:28px;border-top:1px solid #e8ebee;background:#fff}
.contract-keyfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;margin-bottom:18px}
.contract-fact{display:flex;align-items:center;gap:14px;padding:10px 0 16px;border-bottom:1px solid #eceff2}
.contract-fact-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#fff5f7;color:var(--accent);font-size:17px}
.contract-fact small,.contract-interval-box small,.contract-cost-grid small,.contract-item-price small,.contract-item-management small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.contract-fact strong{font-size:16px}
.contract-renewal{color:var(--accent)}
.contract-interval-box{margin:0 0 22px;padding:14px 16px;border:1px solid #e5e9ed;border-radius:10px;background:#fafbfc;max-width:320px}
.contract-interval-box strong{font-size:15px}
.contract-cost-box{margin:0 0 30px;border:1px solid #e2e6ea;border-radius:12px;background:#fafbfc;overflow:hidden}
.contract-section-title{display:flex;align-items:center;gap:9px;padding:15px 18px;border-bottom:1px solid #e6eaee;background:#fff}
.contract-section-title h3{margin:0;font-size:16px}
.section-icon{color:var(--accent);font-size:17px;line-height:1}.section-icon.cube{font-size:20px}
.contract-cost-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.contract-cost-grid>div{padding:18px 20px;border-right:1px solid #e1e5e9}
.contract-cost-grid>div:last-child{border-right:0}
.contract-cost-grid strong{font-size:20px}
.contract-cost-grid .gross{background:#fff7f8}
.contract-cost-grid .gross strong{color:var(--accent)}
.contract-details-title{padding:0 0 12px;border:0;background:transparent}
.contract-ui-items{display:grid;gap:14px}
.contract-ui-item{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;align-items:stretch;padding:20px 22px;border:1px solid #e1e6ea;border-radius:12px;background:#fff}
.contract-item-main{min-width:0}
.contract-item-main .item-title-line strong{font-size:16px}
.contract-item-description{margin:9px 0 0;color:#4f5862;line-height:1.55}
.contract-item-meta{margin-top:7px;color:#68727d;font-size:12px}
.contract-item-management{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #eef1f3}
.contract-item-management span{display:grid;gap:1px}
.contract-item-management strong{font-size:12px}
.contract-item-price{display:grid;grid-template-columns:1fr;align-content:center;gap:9px;padding-left:22px;border-left:1px solid #e7eaed}
.contract-item-price span{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:baseline}
.contract-item-price small{margin:0}
.contract-item-price strong{text-align:right;font-size:14px}
@media(max-width:900px){.contract-ui-item{grid-template-columns:1fr}.contract-item-price{border-left:0;border-top:1px solid #e7eaed;padding:14px 0 0;grid-template-columns:repeat(3,1fr);gap:12px}.contract-item-price span{display:block}.contract-item-price strong{text-align:left;display:block}.contract-cost-grid{grid-template-columns:1fr}.contract-cost-grid>div{border-right:0;border-bottom:1px solid #e1e5e9}.contract-cost-grid>div:last-child{border-bottom:0}}
@media(max-width:700px){.contract-ui-summary{grid-template-columns:38px minmax(0,1fr) 28px;padding:18px}.contract-ui-body{padding:20px}.contract-keyfacts{grid-template-columns:1fr}.contract-interval-box{max-width:none}.contract-summary-titleline>strong{font-size:15px}.contract-summary-name{font-size:13px}}


/* v0.10.5 – Benutzer-Dropdown wie Faktura */
.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-user-menu{position:relative}.topbar-user-menu>summary{list-style:none;cursor:pointer}.topbar-user-menu>summary::-webkit-details-marker{display:none}.topbar-user{min-height:42px;display:flex;align-items:center;gap:9px;padding:5px 11px 5px 6px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.02);user-select:none}.topbar-user:hover,.topbar-user-menu[open]>.topbar-user{border-color:#cfd5da;background:#f7f8fa}.topbar-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--sidebar);color:#fff;font-size:11px;font-weight:750}.topbar-user-copy{display:grid;min-width:0;text-align:left;line-height:1.15}.topbar-user-copy strong{font-size:12px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user-copy small{font-size:9px;color:var(--muted);margin-top:3px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-chevron{color:#8b939d;font-size:11px;transition:transform .15s ease}.topbar-user-menu[open] .topbar-chevron{transform:rotate(180deg)}.topbar-dropdown{position:absolute;right:0;top:49px;z-index:80;width:220px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(39,46,67,.13)}.topbar-dropdown a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:7px;color:var(--ink);text-decoration:none}.topbar-dropdown a:hover{background:#f5f6f8;color:var(--accent)}.topbar-dropdown a+a{border-top:1px solid #f0f1f3;border-top-left-radius:0;border-top-right-radius:0}.topbar-dropdown strong,.topbar-dropdown small{display:block}.topbar-dropdown strong{font-size:11px}.topbar-dropdown small{margin-top:2px;font-size:9px;font-weight:500;color:var(--muted)}.dropdown-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:7px;background:#fff0f3;color:var(--accent);font-size:12px}.profile-account-info{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 24px}.profile-account-info>div{padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.profile-account-info small,.profile-account-info strong{display:block}.profile-account-info small{font-size:11px;color:var(--muted);margin-bottom:3px}.account-profile-card{max-width:900px}
@media(max-width:620px){.topbar-user-copy{display:none}.topbar-chevron{display:none}.topbar-user{padding-right:6px}.topbar-dropdown{position:fixed;right:10px;top:72px;width:min(280px,calc(100vw - 20px))}.profile-account-info{grid-template-columns:1fr}}

/* v0.10.6 – konfigurierbares App-Branding */
.brand-copy{display:grid;gap:1px;line-height:1.2}.brand-copy strong{font:inherit;font-weight:650}.brand-copy small{font-size:11px;font-weight:400;color:#aeb5bc}.login-brand .brand-copy small{color:var(--muted)}footer{min-height:0}

/* v0.11 */
.notification-config-card{display:grid;gap:3px;margin:0 0 18px;background:#f8fafb}.notification-config-card small{color:var(--muted)}.notification-config-card strong{font-size:16px}.notification-config-card span{font-size:12px}


/* v0.12 Änderungswünsche */
.change-set-table td{vertical-align:top}.change-set-items{display:grid;gap:8px;min-width:360px}.change-set-item{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(120px,1fr) auto minmax(120px,1fr);gap:8px;align-items:start;padding:7px 0;border-bottom:1px solid #edf0f2}.change-set-item:last-child{border-bottom:0}.change-set-item strong{font-size:12px}.change-old{color:var(--muted)}.change-new{font-weight:650}.change-arrow{color:var(--accent)}.change-actions{display:flex;gap:8px;flex-wrap:wrap}.change-actions form{margin:0}@media(max-width:900px){.change-set-items{min-width:0}.change-set-item{grid-template-columns:1fr}.change-arrow{display:none}.change-old:before{content:'Bisher: ';font-weight:650}.change-new:before{content:'Neu: ';font-weight:650}}


/* v0.13 – System-Reset */
.btn.danger{background:#9f1730;color:#fff;border:1px solid #9f1730}.btn.danger:hover{background:#861228}.reset-overview-card{border-color:#efcbd2;background:linear-gradient(135deg,#fff8fa,#fff)}.reset-title-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.reset-title-row .card-title{margin:4px 0 6px}.reset-warning-badge{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:#fff0f3;color:#95162d;border:1px solid #efc5ce;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.reset-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.reset-stats>div{padding:15px 16px;border:1px solid #eadfe2;border-radius:10px;background:#fff}.reset-stats small,.reset-stats span,.reset-stats strong{display:block}.reset-stats small{color:var(--muted);font-size:11px}.reset-stats strong{font-size:25px;margin:2px 0}.reset-stats span{font-size:11px;color:#8a6068}.reset-preserve-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.reset-preserve-grid h3{margin-top:0}.reset-preserve-grid ul{margin:0;padding-left:19px}.reset-preserve-grid li+li{margin-top:7px}.reset-preserve-card{border-color:#cee4d5;background:#f7fcf8}.reset-delete-card{border-color:#efcbd2;background:#fff9fa}.reset-confirm-card{max-width:920px}.reset-form-grid{margin-top:18px}.reset-confirm-card code,.reset-preserve-grid code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f0f2f4;padding:2px 5px;border-radius:5px}@media(max-width:900px){.reset-stats{grid-template-columns:1fr 1fr}}@media(max-width:700px){.reset-title-row{display:block}.reset-warning-badge{display:inline-block;margin-top:10px}.reset-stats,.reset-preserve-grid{grid-template-columns:1fr}}
\n\n/* v0.14 – Audit-Log */\n.audit-filterbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 18px}.audit-filterbar>label{min-width:190px}.audit-filterbar .audit-search{flex:1 1 320px}.audit-filterbar input,.audit-filterbar select{width:100%}.audit-table td{vertical-align:top}.audit-table td small{color:var(--muted)}.audit-table .badge{margin-top:5px}.audit-info-card{margin-top:24px}.audit-info-card h3{margin-top:0}.audit-table-wrap{border-radius:12px}@media(max-width:800px){.audit-filterbar{display:grid;grid-template-columns:1fr}.audit-filterbar>label,.audit-filterbar .audit-search{min-width:0}.audit-filterbar .btn{width:max-content}.audit-table tr{padding:12px}.audit-table td{padding:5px 10px}}\n

/* v0.15 */
.login-helper{text-align:center;margin:14px 0 0;font-size:12px}.login-helper a{color:var(--muted);text-decoration:none}.login-helper a:hover{color:var(--accent)}
.email-template-card{margin-bottom:16px}.email-template-card h3{margin-top:0}.email-template-card textarea{min-height:190px}
.wizard-steps{display:flex;gap:8px;margin-bottom:22px}.wizard-steps span{flex:1;padding:8px 10px;border-radius:8px;background:#f0f2f4;color:var(--muted);font-size:12px;text-align:center;font-weight:700}.wizard-steps span.active{background:#fff0f3;color:var(--accent)}.choice-list{display:grid;gap:10px;margin:18px 0}.choice-card{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.choice-card input{width:auto;margin-top:3px}.choice-card span{display:grid;gap:3px}.choice-card small{color:var(--muted);font-weight:400}.cancellation-items{display:grid;gap:8px;margin:14px 0 4px;padding:14px;background:#fafbfc;border:1px solid var(--line);border-radius:10px}.cancellation-items label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.cancellation-items input{width:auto}.cancellation-summary{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:20px 0}.cancellation-summary>div{padding:12px 0;border-bottom:1px solid var(--line)}.cancellation-summary small,.cancellation-summary strong{display:block}.cancellation-summary small{color:var(--muted);font-size:11px}.danger-outline{border-color:#e5a8b4!important;color:#a31b35!important;background:#fff!important}.contract-cancel-actions{display:flex;justify-content:flex-end;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.contract-cancellation-notices{display:grid;gap:8px;margin-bottom:18px}.contract-cancellation-notice{display:flex;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid #edd4da;border-radius:9px;background:#fff8fa}.contract-cancellation-notice>div{display:grid;gap:2px}.contract-cancellation-notice span:not(.badge),.contract-cancellation-notice small{color:var(--muted);font-size:12px}.item-cancellation-note{display:inline-block;margin-top:8px;padding:5px 8px;border-radius:7px;background:#fff0f3;color:#95162d;font-size:11px;font-weight:650}.badge.cancellation-status-submitted,.cancellation-status-submitted{background:#fff7e8;color:#946316}.badge.cancellation-status-in_progress,.cancellation-status-in_progress{background:#eef5fb;color:#315d8b}.badge.cancellation-status-confirmed,.cancellation-status-confirmed{background:#edf8f1;color:#2f7d4a}.badge.cancellation-status-rejected,.cancellation-status-rejected{background:#fff0f3;color:#a51d35}.badge.cancellation-status-done,.cancellation-status-done{background:#edf8f1;color:#2f7d4a}.cancellation-admin-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.cancellation-admin-head h3{margin:3px 0 4px}.cancellation-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}.cancellation-admin-grid>div{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.cancellation-admin-grid small,.cancellation-admin-grid strong{display:block}.cancellation-admin-grid small{color:var(--muted);font-size:11px}.cancellation-item-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.cancellation-item-list span{padding:5px 8px;background:#f2f4f6;border-radius:7px;font-size:12px}.cancellation-status-form{display:flex;gap:10px;align-items:end}.cancellation-status-form label{min-width:200px}.cancellation-status-form select{width:100%}
@media(max-width:700px){.cancellation-summary,.cancellation-admin-grid{grid-template-columns:1fr}.contract-cancellation-notice,.cancellation-admin-head{display:block}.contract-cancellation-notice .badge,.cancellation-admin-head .badge{margin-top:8px}.cancellation-status-form{display:grid;grid-template-columns:1fr}.cancellation-status-form label{min-width:0}}
.admin-dashboard-cards{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1050px){.admin-dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.admin-dashboard-cards{grid-template-columns:1fr}}


/* v0.16 */
.signature-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.signature-choice-list{margin-top:14px}.email-signature-card{margin-bottom:20px}
.cancellation-product-list,.cancellation-included-list{display:grid;gap:12px;margin:14px 0 22px}.cancellation-product{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.cancellation-product:hover{border-color:#c8cdd3;background:#fbfcfd}.cancellation-product input{width:auto;margin-top:4px}.cancellation-product-copy,.cancellation-included-item{display:grid;gap:5px}.cancellation-product-copy>span,.cancellation-included-item>span{color:#535c66;line-height:1.55}.cancellation-product-copy small,.cancellation-included-item small{color:var(--muted)}.cancellation-included-item{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.cancellation-card>h3{margin-top:24px}.wizard-steps{flex-wrap:wrap}
@media(max-width:800px){.signature-columns{grid-template-columns:1fr}}


/* v0.16.2 – Kündigungspositionen im Admin */
.admin-cancellation-items{margin:18px 0 20px;border-top:1px solid var(--line);padding-top:16px}
.admin-cancellation-items-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px}
.admin-cancellation-items-head h4{margin:0;font-size:15px}
.admin-cancellation-items-head>span{color:var(--muted);font-size:12px}
.admin-cancellation-item{padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;margin-top:10px}
.admin-cancellation-item-main{display:grid;gap:7px}
.admin-cancellation-item-main p{margin:0;color:#535c66;line-height:1.55}
.admin-cancellation-item-meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:4px}
.admin-cancellation-item-meta span{display:grid;gap:2px}
.admin-cancellation-item-meta small{color:var(--muted);font-size:11px}
.admin-cancellation-item-meta strong{font-size:13px}
@media(max-width:800px){.admin-cancellation-items-head{align-items:flex-start}.admin-cancellation-item-meta{display:grid;gap:8px}}


/* v0.16.3 – Kündigung zurücksetzen */
.cancellation-admin-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px}
.cancellation-admin-actions .cancellation-status-form{margin:0}
.cancellation-reset-form{margin:0}
.btn.danger{background:#b4233d;color:#fff}
.btn.danger:hover{background:#941d33}
@media(max-width:800px){.cancellation-admin-actions{display:grid;grid-template-columns:1fr}.cancellation-reset-form .btn{width:100%}}


/* v0.16.4 */
.contract-billing-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:11px;background:#fafbfc;overflow:hidden;padding:0}
.contract-billing-box>div{padding:14px 18px;display:grid;gap:3px}
.contract-billing-box>div+div{border-left:1px solid var(--line)}
.contract-billing-box small{color:var(--muted);font-size:11px}
.contract-billing-box strong{font-size:15px}
.readonly-info{grid-column:1/-1;padding:14px 16px;background:#f6f7f9;border:1px solid var(--line);border-radius:9px}
.readonly-info small,.readonly-info span{display:block}.readonly-info small{color:var(--muted);margin-bottom:3px}.readonly-info strong{font-size:16px}.readonly-info span{margin-top:5px;color:var(--muted);font-size:11px}
@media(max-width:800px){.contract-billing-box{grid-template-columns:1fr}.contract-billing-box>div+div{border-left:0;border-top:1px solid var(--line)}}


/* v0.16.6 – Kündigungen auf der Kundenübersicht */
.dashboard-cancellation-head{margin-top:24px}
.dashboard-cancellations{display:grid;gap:12px;margin-bottom:26px}
.dashboard-cancellation-card{display:flex;align-items:center;justify-content:space-between;gap:18px}
.dashboard-cancellation-main{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) minmax(130px,.8fr);gap:24px;flex:1}
.dashboard-cancellation-main>div{display:grid;gap:4px}
.dashboard-cancellation-main small{color:var(--muted,#667085)}
@media(max-width:800px){.dashboard-cancellation-card{align-items:flex-start;flex-direction:column}.dashboard-cancellation-main{grid-template-columns:1fr;gap:12px;width:100%}}

/* v0.17 – Kontoaktivierung */
.activation-create-access{grid-template-columns:minmax(240px,1fr) minmax(280px,1.35fr) auto}
.activation-hint{display:grid;gap:3px;padding:8px 0 4px}
.activation-hint small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.activation-hint strong{font-size:13px;line-height:1.45;font-weight:600}
@media(max-width:1000px){.activation-create-access{grid-template-columns:1fr}}


/* v0.18 – Kündigung direkt aus der Kundenverwaltung */
.admin-customer-primary-actions{display:flex;justify-content:flex-end;margin:12px 0 4px}
.admin-contract-select-list{display:grid;gap:10px;margin-top:16px}
.admin-contract-select{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#fff;color:inherit;text-decoration:none}
.admin-contract-select:hover{background:#fafbfc;border-color:#c8cdd3}
.admin-contract-select>span:first-child{display:grid;gap:4px}.admin-contract-select small{color:var(--muted)}
.admin-confirm-mail{display:flex;align-items:center;gap:9px;margin:18px 0}.admin-confirm-mail input{width:auto}
@media(max-width:700px){.admin-customer-primary-actions{justify-content:stretch}.admin-customer-primary-actions .btn{width:100%}.admin-contract-select{align-items:flex-start}}


/* v0.19 – Admin-Kündigungen mit direkter Faktura-Übernahme */
.admin-cancel-detail-list,.admin-cancel-review-list{display:grid;gap:14px;margin:16px 0 22px}.admin-cancel-detail-item{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fafbfc}.admin-cancel-detail-item>small{display:block;color:var(--muted);margin-top:5px}.admin-cancel-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.admin-cancel-detail-grid label:last-child{grid-column:1/-1}.auth-code-row{display:flex;gap:8px}.auth-code-row input{flex:1}.auth-code-row .btn{white-space:nowrap}.admin-cancel-review-list>div{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.admin-cancel-review-list span,.admin-cancel-review-list small{color:var(--muted)}.email-preview-card{margin-top:18px;background:#fbfcfd}.email-preview-card>strong{display:block;margin:9px 0}.email-preview-card pre{white-space:pre-wrap;font:inherit;color:#535c66;margin:0;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px}.admin-cancellation-implementation{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
@media(max-width:800px){.admin-cancel-detail-grid{grid-template-columns:1fr}.admin-cancel-detail-grid label:last-child{grid-column:auto}.auth-code-row{display:grid}}


/* v0.19.8 – Domain-Auswahl bei Kundenkündigungen */
.domain-action-choice{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.domain-action-choice>span{width:100%;font-size:12px;font-weight:700;color:var(--ink)}.domain-action-choice label{display:flex;grid-template-columns:none;align-items:center;gap:7px;font-weight:600}.domain-action-choice input[type=radio]{width:auto;margin:0}.cancellation-product>input[type=checkbox]{margin-top:4px}
\n\n/* v0.19.9 – Navigation wie Faktura */
.sidebar>nav{align-content:start}
.sidebar-menu-group{margin-top:4px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}
.sidebar-menu-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;color:#dfe3e8;font-weight:600;cursor:pointer;user-select:none}
.sidebar-menu-summary::-webkit-details-marker{display:none}
.sidebar-menu-summary:hover,.sidebar-menu-group[open]>.sidebar-menu-summary{background:#3d444b;color:#fff}
.sidebar-group-chevron{font-size:15px;color:#aeb5bc;transition:transform .18s ease}
.sidebar-menu-group[open] .sidebar-group-chevron{transform:rotate(180deg)}
.sidebar .sidebar-subnav{display:grid;gap:4px;margin:5px 0 0;padding:0 0 0 10px;overflow:visible}
.sidebar .sidebar-subnav a{padding:8px 12px;font-size:13px;color:#cdd3d9}
.sidebar .sidebar-subnav a.active{background:#3d444b;color:#fff;box-shadow:inset 3px 0 var(--accent)}
@media(max-width:800px){
 .sidebar>nav{display:flex;align-items:flex-start;overflow:auto;gap:6px}
 .sidebar-menu-group{flex:0 0 auto;margin-top:0;padding-top:0;border-top:0;position:relative}
 .sidebar-menu-summary{white-space:nowrap;padding:10px 12px;background:#373d43}
 .sidebar-menu-group[open]>.sidebar-subnav{display:grid;position:absolute;left:0;top:44px;z-index:120;min-width:210px;padding:7px;background:var(--sidebar);border:1px solid rgba(255,255,255,.12);border-radius:9px;box-shadow:0 14px 28px rgba(0,0,0,.22)}
 .sidebar .sidebar-subnav a{white-space:nowrap}
}


/* v0.19.10 */
.admin-transfer-auth{margin-top:12px;padding:12px 14px;border:1px solid #e3c9cf;border-radius:9px;background:#fff7f9;max-width:520px}
.admin-transfer-auth input{margin-top:3px;background:#fff}
.confirmed-cancellation-note{display:grid;gap:2px;padding:10px 13px;border:1px solid #cce7d5;border-radius:9px;background:#edf8f1;color:#2f6f46}
.confirmed-cancellation-note span{font-size:12px;color:#4f755d}


/* v0.19.12 – Admin-Kündigungen als Accordion */
.cancellation-admin-accordion{padding:0;overflow:hidden}
.cancellation-admin-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 21px;background:linear-gradient(180deg,#fff,#fbfcfd)}
.cancellation-admin-summary::-webkit-details-marker{display:none}
.cancellation-admin-summary-copy{min-width:0;display:grid;gap:3px}.cancellation-admin-summary-copy h3{margin:0;font-size:16px}
.cancellation-admin-summary-side{display:flex;align-items:center;gap:12px;flex:0 0 auto}.cancellation-admin-chevron{font-size:21px;color:var(--muted);transition:transform .18s ease}
.cancellation-admin-accordion[open] .cancellation-admin-chevron{transform:rotate(180deg)}
.cancellation-admin-body{padding:18px 21px 21px;border-top:1px solid var(--line)}
@media(max-width:800px){.cancellation-admin-summary{align-items:flex-start;padding:16px}.cancellation-admin-summary-side{gap:7px}.cancellation-admin-body{padding:16px}.cancellation-admin-summary-copy .muted{font-size:12px}}

/* v0.19.31 – Admin-Kündigungsaktionen deutlicher abstufen */
.btn.cancellation-status-save{background:#315d8b;color:#fff;border-color:#315d8b}
.btn.cancellation-status-save:hover{background:#274d75;border-color:#274d75}
.btn.cancellation-reset-soft{background:#fff0f3;color:#9a3a4d;border:1px solid #efc5ce}
.btn.cancellation-reset-soft:hover{background:#fbe4e9;color:#862f41;border-color:#e8aeb9}

/* v0.19.32 – Admin-Kündigungsaktionen */
button.btn.cancellation-status-save{background:#d97706!important;color:#fff!important;border:1px solid #d97706!important}
button.btn.cancellation-status-save:hover{background:#b86104!important;border-color:#b86104!important}
button.btn.cancellation-reset-soft{background:#eef0f2!important;color:#59616a!important;border:1px solid #d7dce1!important}
button.btn.cancellation-reset-soft:hover{background:#e3e6e9!important;color:#454c54!important;border-color:#cbd1d7!important}

/* v0.19.34 – Mandatsdaten */
.mandate-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:12px}.mandate-row .mandate-info{grid-column:auto}.mandate-date{background:#fafbfc}@media(max-width:700px){.mandate-row{grid-template-columns:1fr}}

/* v0.19.36 – Änderungswünsche löschen */
.change-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px}.change-select-all{display:flex;align-items:center;gap:8px;font-weight:650}.change-list-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.change-select-col{width:38px;text-align:center}.change-select-col input{width:auto}.change-delete-single{margin-top:8px}.change-delete-single .btn,.change-delete-selected,.change-delete-all{background:#f2f3f5!important;color:#42474e!important;border:1px solid #d8dde3!important}.change-delete-single .btn:hover,.change-delete-selected:hover,.change-delete-all:hover{background:#e8eaed!important}@media(max-width:800px){.change-list-toolbar{align-items:flex-start;flex-direction:column}.change-list-toolbar-actions{width:100%}.change-list-toolbar-actions .btn{flex:1}}

/* v0.19.38 – Kunden-Dashboard */
.customer-dashboard-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.dashboard-customer-number,.dashboard-next-date{font-size:23px!important}.dashboard-data-reminder{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 28px}.dashboard-data-reminder p{margin:4px 0 0;color:var(--muted)}@media(max-width:1050px){.customer-dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.customer-dashboard-cards{grid-template-columns:1fr}.dashboard-data-reminder{align-items:flex-start;flex-direction:column}}

/* v0.19.39 – Dashboard-Feinschliff */
.dashboard-open-invoices{background:#fff8dc;border-color:#eadca5}


/* v0.19.42 – Kundenansicht für Administratoren */
.admin-customer-primary-actions{gap:8px;flex-wrap:wrap}.customer-preview-start-form{margin:0}.customer-preview-start{background:#425d78;color:#fff;border-color:#425d78}.customer-preview-start:hover{background:#354c63;border-color:#354c63}
.customer-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px;padding:13px 16px;border:1px solid #bfd0df;border-radius:10px;background:#edf5fb;color:#29465f}.customer-preview-banner>div{display:grid;gap:2px}.customer-preview-banner strong{font-size:14px}.customer-preview-banner span{font-weight:650}.customer-preview-banner small{color:#5c7386}.customer-preview-banner form{margin:0}.customer-preview-exit{white-space:nowrap;background:#fff!important}
button[disabled]{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.customer-preview-banner{align-items:flex-start;flex-direction:column}.customer-preview-banner form,.customer-preview-exit{width:100%}.admin-customer-primary-actions{justify-content:stretch}.admin-customer-primary-actions form,.admin-customer-primary-actions .btn{width:100%}}

/* v0.19.43 Bankdaten */
select{width:100%;border:1px solid #cfd5da;border-radius:8px;padding:10px 11px;font:inherit;background:#fff;color:var(--ink)}
.bank-custom-holder[hidden]{display:none!important}
.bank-remove-option{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.bank-remove-option>input{width:auto;margin-top:3px}.bank-remove-option>span{display:grid;gap:3px}.bank-remove-option small{color:var(--muted);font-weight:400;line-height:1.4}

.login-page{min-height:100vh}.login-topbar{min-height:92px;padding:12px 0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center}.login-topbar-inner{width:100%;max-width:1320px;margin:0 auto;padding:0 34px}.login-header-brand{display:flex;align-items:center;gap:14px}.login-header-brand img{display:block;width:auto;max-width:none;max-height:none;object-fit:contain}.login-header-brand .brand-mark{width:34px;height:34px;display:block}.login-shell{min-height:calc(100vh - 92px)}.portal-logo-preview{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;display:flex;align-items:center;min-height:92px;overflow:auto}.portal-logo-preview img{width:auto;max-width:none;max-height:none;object-fit:contain}@media(max-width:620px){.login-topbar{min-height:76px;padding:10px 0}.login-topbar-inner{padding:0 20px;overflow-x:auto}.login-header-brand img{max-width:none;max-height:none}.login-shell{min-height:calc(100vh - 76px);padding:20px}}

.login-page{display:flex;flex-direction:column}.login-shell{width:100%;flex:1}.login-footer{padding:12px 24px 22px;text-align:center;background:transparent}.login-footer nav{display:flex;justify-content:center;align-items:center;gap:8px 20px;flex-wrap:wrap}.login-footer a{font-size:13px;color:var(--muted);text-decoration:none}.login-footer a:hover{text-decoration:underline;color:var(--ink)}

/* v0.19.57 – kompakter Login ohne unnoetigen Scrollraum */
.login-page{min-height:100vh;height:auto;display:flex;flex-direction:column}
.login-topbar{flex:0 0 auto}
.login-shell{min-height:0!important;flex:1 1 auto;display:grid;place-items:center;padding:18px 24px}
.login-card{padding:28px}
.login-footer{flex:0 0 auto;padding:8px 24px 14px}
@media(max-height:760px) and (min-width:621px){
  .login-topbar{min-height:72px;padding:8px 0}
  .login-shell{padding:12px 24px}
  .login-card{padding:24px}
  .login-intro h1{margin-top:0}
  .login-footer{padding:6px 24px 10px}
}
@media(max-width:620px){
  .login-shell{min-height:0!important;padding:16px 20px}
  .login-card{padding:24px 20px}
  .login-footer{padding:8px 20px 14px}
}

/* v0.19.58 – sichere HTML-Boxen auf der Kunden-Startseite */
.homepage-box{margin:16px 0;padding:18px 20px;border:1px solid var(--line);border-left-width:4px;border-radius:10px;background:#fff}.homepage-box>:first-child{margin-top:0}.homepage-box>:last-child{margin-bottom:0}.homepage-box-notice{background:#fff8e8;border-color:#ead69c;border-left-color:#b7791f}.homepage-box-info{background:#f2f7fc;border-color:#c9dced;border-left-color:#3974a8}.homepage-box-success{background:#f1f8f3;border-color:#c9e2d0;border-left-color:#2f7d4a}.homepage-box-warning{background:#fff1f3;border-color:#edc9d0;border-left-color:var(--accent)}.homepage-placeholder-help{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.homepage-placeholder-help h3{margin:0 0 4px;font-size:15px}.homepage-placeholder-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.homepage-placeholder-grid code{display:block;padding:9px 10px;background:#fff;border:1px solid var(--line);border-radius:7px}.homepage-example{margin-top:12px}.homepage-example summary{cursor:pointer;font-weight:650}.homepage-example pre{white-space:pre-wrap;overflow:auto;padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}@media(max-width:650px){.homepage-placeholder-grid{grid-template-columns:1fr}}

.contract-webhosting-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.contract-webhosting-links a{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#f8f9fa;color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.contract-webhosting-links a:hover{border-color:var(--accent);background:#fff6f8;text-decoration:none}
.cancellation-admin-summary-items{margin-top:4px;color:var(--ink);font-size:13px;line-height:1.45;font-weight:600}


/* v0.19.73 – portalweiter Nach-oben-Button */
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:950;width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:23px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background .2s ease}.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--accent-dark)}.back-to-top:focus-visible{outline:3px solid rgba(213,12,47,.25);outline-offset:3px}@media(max-width:620px){.back-to-top{right:16px;bottom:16px;width:42px;height:42px}}
