.nbp-form{max-width:900px;margin:30px auto;padding:34px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.08);font-family:inherit}.nbp-form h2{font-size:36px;margin:0 0 6px}.nbp-intro{color:#64748b;margin:0 0 26px}.nbp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.nbp-form label{display:block;margin:0 0 17px;font-weight:700;color:#1e293b}.nbp-form input,.nbp-form select,.nbp-form textarea{box-sizing:border-box;width:100%;margin-top:7px;padding:11px 13px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;background:#fff}.nbp-form input:focus,.nbp-form select:focus,.nbp-form textarea:focus{outline:3px solid rgba(185,28,28,.12);border-color:#b91c1c}.wide{grid-column:span 2}.nbp-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 24px}.nbp-slot{display:flex!important;align-items:center;gap:11px;padding:14px;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;margin:0!important}.nbp-slot:hover{border-color:#ef4444}.nbp-slot:has(input:checked){border-color:#b91c1c;background:#fff7f7}.nbp-slot input{width:18px;margin:0}.nbp-slot span{flex:1}.nbp-slot small{display:block;color:#64748b;margin-top:3px}.nbp-prices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.nbp-prices div{padding:15px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.nbp-prices strong{display:block;font-size:22px;margin-top:4px}.consent{display:flex!important;gap:9px;align-items:flex-start;font-weight:400!important}.consent input{width:18px;margin-top:3px}.nbp-form button{width:100%;padding:15px;border:0;border-radius:12px;background:#b91c1c;color:white;font-weight:800;font-size:17px;cursor:pointer}.nbp-form button:hover{background:#991b1b}.nbp-form button:disabled{opacity:.6}.nbp-success,.nbp-error{margin-top:16px;padding:13px;border-radius:10px}.nbp-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.nbp-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}@media(max-width:700px){.nbp-grid,.nbp-slots,.nbp-prices{grid-template-columns:1fr}.wide{grid-column:auto}.nbp-form{padding:22px}}
.nbp-hidden{display:none}.nbp-secondary{margin:0 0 16px;background:#334155!important}.nbp-secondary:hover{background:#1e293b!important}.nbp-address-result{margin:0 0 20px}.nbp-price-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.nbp-price-details>div{padding:13px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.nbp-price-details span,.nbp-price-details strong{display:block}.nbp-price-details strong{margin-top:4px}.nbp-inquiry{display:inline-block;margin-top:10px;font-weight:800}.nbp-address-result.nbp-success,.nbp-address-result.nbp-error{padding:14px 16px;border-radius:10px}@media(max-width:700px){.nbp-price-details{grid-template-columns:1fr}}

.nbp-category-box{margin:20px 0 24px;padding:18px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.nbp-category-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.nbp-category-options label{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;cursor:pointer}
.nbp-category-options input{width:18px;margin:0}
.nbp-private-fields small,.nbp-institution-fields small{display:block;margin-top:6px;color:#64748b;font-weight:400}
.nbp-company-notice{padding:12px 14px;border-radius:10px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
@media(max-width:700px){.nbp-category-options{grid-template-columns:1fr}}

.nbp-section{margin:24px 0;padding:20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.nbp-section h3{margin:0 0 14px}
.nbp-info{padding:12px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e40af}
.nbp-flow{margin-top:18px}
.nbp-price-box{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.nbp-section hr{border:0;border-top:1px solid #e2e8f0;margin:14px 0}
.nbp-hidden{display:none!important}




/* v1.4.1 – klare, zweispaltige Preisübersicht */
.nbp-price-box{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin:24px 0;
    padding:10px 18px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:#f8fafc;
}
.nbp-price-box > div{
    display:grid;
    grid-template-columns:minmax(0, 1fr) max-content;
    align-items:center;
    column-gap:24px;
    padding:12px 0;
    border-bottom:1px solid #e2e8f0;
}
.nbp-price-box > div:last-child{
    border-bottom:0;
}
.nbp-price-box span{
    display:block;
    line-height:1.35;
    color:#334155;
}
.nbp-price-box strong{
    display:block;
    margin:0;
    text-align:right;
    white-space:nowrap;
    font-size:18px;
    line-height:1.35;
    color:#0f172a;
}
.nbp-price-box > div:has(#nbp-total){
    margin-top:2px;
    padding-top:15px;
}
.nbp-price-box #nbp-total{
    font-size:21px;
}
@media(max-width:560px){
    .nbp-price-box > div{
        grid-template-columns:1fr;
        row-gap:5px;
    }
    .nbp-price-box strong{
        text-align:left;
    }
}


/* v1.5.0 – NikoloPlaner Export */
.nbp-export-page .nbp-export-card{
    max-width:900px;
    padding:22px;
}
.nbp-export-page select{
    min-width:280px;
}
.nbp-export-page .form-table th{
    width:190px;
}

.nbp-legal-consents{margin:20px 0;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
.nbp-legal-consents .consent{margin-bottom:12px}
.nbp-legal-consents .consent:last-child{margin-bottom:0}
.nbp-legal-consents a{font-weight:700;text-decoration:underline}
.nbp-withdrawal-wrap{max-width:820px;margin:30px auto}
.nbp-withdrawal-form{padding:30px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.08)}
.nbp-withdrawal-form h2{margin-top:0}
.nbp-withdrawal-form label{display:block;margin-bottom:17px;font-weight:700}
.nbp-withdrawal-form input,.nbp-withdrawal-form textarea{box-sizing:border-box;width:100%;margin-top:7px;padding:11px 13px;border:1px solid #cbd5e1;border-radius:10px;font:inherit}
.nbp-withdrawal-form .consent{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.nbp-withdrawal-form .consent input{width:18px;margin-top:3px}
.nbp-withdrawal-submit{width:100%;padding:15px;border:0;border-radius:12px;background:#b91c1c;color:#fff;font:inherit;font-weight:800;font-size:17px;cursor:pointer}

/* v1.5.3 – Terminausnahme und Vertragsprüfung */
.nbp-withdrawal-exception{
    padding-top:12px;
    border-top:1px solid #dbe3ec;
}
.nbp-withdrawal-assessment{
    margin:18px 0;
}
.nbp-withdrawal-assessment h3{
    margin:0 0 12px;
    font-size:19px;
}
.nbp-withdrawal-assessment dl{
    margin:0 0 12px;
}
.nbp-withdrawal-assessment dl > div{
    display:grid;
    grid-template-columns:170px 1fr;
    gap:12px;
    padding:7px 0;
    border-bottom:1px solid rgba(15,23,42,.09);
}
.nbp-withdrawal-assessment dt{
    font-weight:700;
}
.nbp-withdrawal-assessment dd{
    margin:0;
}
.nbp-assessment-within_14_days{
    padding:18px;
    border:1px solid #86efac;
    border-radius:12px;
    background:#f0fdf4;
    color:#166534;
}
.nbp-assessment-regular_period_elapsed{
    padding:18px;
    border:1px solid #fdba74;
    border-radius:12px;
    background:#fff7ed;
    color:#9a3412;
}
.nbp-assessment-scheduled_leisure_exception{
    padding:18px;
    border:1px solid #fca5a5;
    border-radius:12px;
    background:#fef2f2;
    color:#991b1b;
}
#nbp-withdrawal-submit-section hr{
    margin:24px 0;
    border:0;
    border-top:1px solid #e2e8f0;
}
@media(max-width:600px){
    .nbp-withdrawal-assessment dl > div{
        grid-template-columns:1fr;
        gap:2px;
    }
}

.nbp-coupon-box{margin:22px 0;padding:18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.nbp-coupon-box>label{display:block;margin-bottom:8px;font-weight:800}
.nbp-coupon-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.nbp-coupon-row input{margin:0}.nbp-coupon-row button{width:auto;white-space:nowrap}
.nbp-coupon-message{margin-top:10px}.nbp-coupon-message.nbp-success,.nbp-coupon-message.nbp-error{padding:10px 12px}
#nbp-coupon-discount{color:#166534}
@media(max-width:600px){.nbp-coupon-row{grid-template-columns:1fr}.nbp-coupon-row button{width:100%}}


/* v1.7.0 – Zahlungsmodell */
.nbp-payment-choice{
    margin:24px 0;
    padding:20px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:#f8fafc;
}
.nbp-payment-choice h3{
    margin:0 0 14px;
}
.nbp-payment-option{
    display:flex!important;
    gap:12px;
    align-items:flex-start;
    margin:0 0 12px!important;
    padding:15px;
    border:1px solid #cbd5e1;
    border-radius:12px;
    background:#fff;
    cursor:pointer;
}
.nbp-payment-option:last-child{
    margin-bottom:0!important;
}
.nbp-payment-option input{
    width:18px!important;
    margin:3px 0 0!important;
}
.nbp-payment-option span{
    display:block;
}
.nbp-payment-option strong{
    display:block;
    margin-bottom:5px;
}
.nbp-payment-option small{
    display:block;
    color:#64748b;
    line-height:1.45;
    font-weight:400;
}


/* v1.7.1 – verständlichere Formularhinweise */
.nbp-field-help{
    display:block;
    margin-top:7px;
    color:#64748b;
    font-size:13px;
    line-height:1.45;
    font-weight:400;
}

.nbp-customer-code-box{margin:22px 0;padding:18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.nbp-customer-code-box>label{display:block;margin-bottom:8px;font-weight:800}
.nbp-customer-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.nbp-customer-code-row input{margin:0}.nbp-customer-code-row button{width:auto;white-space:nowrap}
.nbp-customer-code-message{margin-top:10px}.nbp-customer-code-message.nbp-success,.nbp-customer-code-message.nbp-error{padding:10px 12px}
.nbp-cash-option{border-color:#86efac;background:#f0fdf4}
@media(max-width:600px){.nbp-customer-code-row{grid-template-columns:1fr}.nbp-customer-code-row button{width:100%}}



/* v1.8.3 – Barzahlung erst nach gültigem Stammkunden-Code */
.nbp-payment-option.nbp-cash-option-hidden{
    display:none !important;
}

/* v1.8.6 – Erklärung zu Zeitfenster und genauer Uhrzeit */
.nbp-service-label>span{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.nbp-info-button{width:24px!important;min-width:24px;height:24px;padding:0!important;border:1px solid #94a3b8!important;border-radius:50%!important;background:#fff!important;color:#334155!important;font-size:14px!important;font-weight:800!important;line-height:22px!important;text-align:center;cursor:pointer;box-shadow:none!important}
.nbp-info-button:hover{background:#f1f5f9!important}
.nbp-service-info{grid-column:1/-1;margin-top:-4px;padding:16px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
.nbp-service-info-section{padding:14px;border-radius:10px}
.nbp-service-info-section+.nbp-service-info-section{margin-top:12px}
.nbp-service-info-window{background:#eff6ff;border:1px solid #bfdbfe}
.nbp-service-info-fixed{background:#fffbeb;border:1px solid #fde68a}
.nbp-service-info h4{margin:0 0 8px;font-size:16px}
.nbp-service-info p{margin:0 0 8px;line-height:1.5}
.nbp-service-info p:last-child{margin-bottom:0}

/* v1.9.0 – Sonderaktionen */
.nbp-special-filter{display:flex!important;align-items:center;gap:8px;margin:10px 0 14px!important;font-weight:700}
.nbp-special-filter input{width:auto!important;margin:0!important}
.nbp-slot.nbp-special-slot{border:2px solid #f59e0b!important;background:#fffbeb!important}
.nbp-special-badge{display:inline-flex;margin:4px 0;padding:3px 8px;border-radius:999px;background:#dc2626;color:#fff;font-style:normal;font-size:12px;font-weight:800}
.nbp-special-slot del{margin-right:6px;color:#94a3b8;font-weight:400}
.nbp-special-slot b{color:#b91c1c}

/* v2.0.0 – flexibler Kapazitäten-Generator */
.nbp-city-checks,.nbp-weekday-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;max-width:760px}
.nbp-city-checks label,.nbp-weekday-checks label{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #dcdcde;border-radius:6px;background:#fff}
.nbp-generator-card input[type="time"],.nbp-generator-card input[type="date"],.nbp-generator-card input[type="number"],.nbp-generator-card select{min-width:160px}
