*{box-sizing:border-box}
:root{--bg:#faf8f4;--surface:#fff;--text:#222;--muted:#6e6a64;--gold:#b79a61;--line:#e7e0d6;--danger:#a33;--success:#277a4b}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
.container{width:min(1120px,92%);margin:0 auto}
.narrow{width:min(680px,92%);padding:48px 0}
.hero{min-height:100vh;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#fff,#f5efe6)}
.brand{font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.eyebrow{color:var(--gold);font-weight:700}
h1{font-size:clamp(2rem,5vw,4.2rem);line-height:1.1;margin:.4em 0}
h2{margin-top:1.8rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 10px 30px rgba(40,30,20,.06);margin:20px 0}
label{display:block;font-weight:700;margin:16px 0 6px}
input,textarea,select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}
button,.button{display:inline-block;border:0;border-radius:999px;background:var(--text);color:#fff;padding:12px 20px;text-decoration:none;font-weight:700;cursor:pointer;margin-top:18px}
.alert{padding:12px 14px;border-radius:10px;margin:16px 0}
.alert.error{background:#fbeaea;color:var(--danger)}
.alert.success{background:#e8f6ee;color:var(--success)}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:14px 0}
.row{display:flex;justify-content:space-between;gap:20px;align-items:center}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.stat span{display:block;color:var(--muted)}
.stat strong{display:block;font-size:2.4rem}
@media(max-width:700px){.grid{grid-template-columns:1fr}.row{align-items:flex-start;flex-direction:column}}

.admin-main{padding:48px 0 80px}
.admin-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-weight:700}
.logo-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);font-family:Georgia,serif}
.admin-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.admin-links a{color:var(--text);text-decoration:none}
.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px}
.page-heading h1{font-size:clamp(2.1rem,4vw,3.5rem);margin:.15em 0}
.page-heading p{max-width:720px;color:var(--muted);font-size:1.08rem}
.admin-layout{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0,1.1fr);gap:28px;align-items:start}
.form-card{position:sticky;top:22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid label{margin:0}
.form-grid .full{grid-column:1/-1}
.check{display:flex;align-items:center;gap:10px;font-weight:600}
.check input{width:auto}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.actions form{margin:0}
.button.secondary,button.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}
button.danger{background:#fff;color:var(--danger);border:1px solid #e7bcbc}
.item-list{display:grid;gap:18px}
.admin-item{display:grid;grid-template-columns:150px 1fr;gap:22px;margin:0;padding:18px}
.thumb{min-height:145px;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#f3eadc,#fff);display:grid;place-items:center}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb span{font-family:Georgia,serif;font-size:2.2rem;color:var(--gold)}
.item-content h3{font-size:1.4rem;margin:.25rem 0}
.item-content p{color:var(--muted);margin:.25rem 0}
.meta{font-size:.95rem;margin:12px 0;color:#514b44}
.status-row{display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-block;padding:5px 10px;border-radius:999px;background:#eee9e2;color:#625e58;font-size:.78rem;font-weight:700}
.pill.active{background:#e8f6ee;color:#277a4b}
.pill.gold{background:#f3ead8;color:#8e6e2f}
.empty{text-align:center;color:var(--muted)}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.quick-grid a{display:block;padding:22px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--text);background:#fff}
.quick-grid strong,.quick-grid span{display:block}
.quick-grid span{color:var(--muted);margin-top:6px}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.form-card{position:static}}
@media(max-width:700px){.form-grid,.quick-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-item{grid-template-columns:1fr}.thumb{min-height:200px}.admin-links{gap:10px}}

.hidden{display:none!important}
.card.soft{background:#fbf7f0;border-style:dashed;box-shadow:none}
.slot-preview{margin-top:28px}
.slot-preview h3{margin-top:0}
.slot-row{display:flex;flex-wrap:wrap;gap:10px}
.slot-row span{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid var(--line);font-weight:700}
.rule-card{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0}
.rule-card h3{margin:.35rem 0}
.rule-card form{margin:0}
.quick-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.quick-grid{grid-template-columns:1fr}.rule-card{align-items:flex-start;flex-direction:column}}

.booking-body{background:#fbfaf7}
.booking-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.booking-topbar{display:flex;align-items:center;justify-content:space-between;min-height:76px}
.public-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.public-brand strong,.public-brand small{display:block}
.public-brand small{color:var(--muted);font-size:.78rem}
.simple-link{color:var(--text);text-decoration:none;font-weight:700}
.booking-hero{padding:72px 0 38px;text-align:center;background:linear-gradient(180deg,#fff,#fbfaf7)}
.booking-hero.compact{padding:26px 0}
.booking-hero h1{font-size:clamp(2.4rem,6vw,4.5rem);margin:.18em 0}
.booking-hero p{max-width:760px;margin:0 auto;color:var(--muted);font-size:1.12rem}
.steps{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:34px}
.steps span{display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:999px;background:#f0ece5;color:var(--muted);font-weight:700}
.steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff}
.steps .active{background:#222;color:#fff}
.steps .done{background:#efe5d4;color:#765d2e}
.booking-section{padding:28px 0 90px}
.section-heading{margin:42px 0 20px}
.section-heading h2{font-size:clamp(1.8rem,4vw,2.8rem);margin:.1em 0}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.offer-card{display:block;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;text-decoration:none;color:var(--text);box-shadow:0 12px 30px rgba(40,30,20,.05);transition:transform .18s ease,box-shadow .18s ease}
.offer-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(40,30,20,.09)}
.offer-card.featured{border-color:#d8c293}
.offer-image{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#f3eadc,#fff);overflow:hidden}
.offer-image img{width:100%;height:100%;object-fit:cover}
.image-placeholder{width:100%;height:100%;display:grid;place-items:center;font:700 3rem Georgia,serif;color:var(--gold)}
.offer-badge{position:absolute;top:16px;left:16px;background:#fff7df;color:#8b6923;padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:700}
.offer-content{padding:22px}
.offer-content h3{font-size:1.35rem;margin:0 0 8px}
.offer-content p{color:var(--muted);min-height:3.2em}
.offer-meta{display:flex;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid var(--line);font-weight:700}
.offer-cta{display:inline-block;margin-top:18px;color:#7b6131;font-weight:700}
.empty-state{text-align:center;padding:48px}
.empty-state.small{padding:24px;background:#faf7f1;border-radius:14px}
.booking-detail-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:30px;align-items:start;padding:36px 0 90px}
.booking-summary{position:sticky;top:102px}
.summary-image{aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#f3eadc,#fff);margin-bottom:22px}
.summary-image img{width:100%;height:100%;object-fit:cover}
.booking-summary h1{font-size:2.25rem}
.summary-facts{display:grid;gap:12px;margin-top:24px}
.summary-facts div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid var(--line)}
.summary-facts span{color:var(--muted)}
.booking-form-card{padding:34px}
.booking-form-card h2{margin-top:0}
.date-form{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}
.date-form label{margin:0}
.booking-divider{height:1px;background:var(--line);margin:34px 0}
.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.time-option{margin:0}
.time-option input{position:absolute;opacity:0;pointer-events:none}
.time-option span{display:block;text-align:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:700;cursor:pointer}
.time-option:hover span,.time-option.selected span,.time-option input:checked+span{border-color:#222;background:#222;color:#fff}
.privacy-check{align-items:flex-start}
.privacy-check span{font-weight:400;color:var(--muted)}
.booking-submit{margin-top:24px}
.booking-submit p{color:var(--muted);font-size:.9rem}
.booking-submit button:disabled{opacity:.65;cursor:wait}
.booking-footer{padding:34px 0;border-top:1px solid var(--line);color:var(--muted);text-align:center;background:#fff}
.success-wrap{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:60px 20px}
.success-card{max-width:720px;width:100%;text-align:center;padding:46px}
.success-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e8f6ee;color:#277a4b;font-size:2rem;font-weight:700}
.success-card .lead{font-size:1.15rem;color:var(--muted)}
.confirmation-box{margin:30px 0;text-align:left;border:1px solid var(--line);border-radius:16px;padding:8px 22px}
.confirmation-box div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.confirmation-box div:last-child{border-bottom:0}
.confirmation-box span{color:var(--muted)}
@media(max-width:980px){.offer-grid{grid-template-columns:repeat(2,1fr)}.booking-detail-layout{grid-template-columns:1fr}.booking-summary{position:static}.time-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.offer-grid{grid-template-columns:1fr}.date-form{grid-template-columns:1fr}.time-grid{grid-template-columns:repeat(2,1fr)}.booking-form-card{padding:24px}.booking-hero{padding-top:48px}.confirmation-box div{flex-direction:column;gap:2px}}

.booking-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center}
.booking-search{display:flex;gap:10px;flex:1;max-width:640px}
.booking-search input{margin:0}
.booking-search button{margin:0;white-space:nowrap}
.view-tabs{display:flex;gap:8px;flex-wrap:wrap}
.view-tabs a{padding:9px 13px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--text);font-weight:700;background:#fff}
.view-tabs a.active{background:#222;color:#fff;border-color:#222}
.booking-list{display:grid;gap:14px}
.date-heading{margin:32px 0 8px;font-size:1.35rem}
.booking-admin-card{display:grid;grid-template-columns:110px 1fr auto;gap:24px;align-items:center;margin:0;padding:20px}
.booking-time{display:flex;flex-direction:column;align-items:flex-start}
.booking-time strong{font-size:1.8rem}
.booking-time span{color:var(--muted);font-size:.9rem}
.booking-main h3{margin:.25rem 0;font-size:1.25rem}
.customer-name{font-weight:700;margin:.1rem 0}
.contact-line{display:flex;gap:16px;flex-wrap:wrap}
.contact-line a{color:#6f572b;text-decoration:none}
.booking-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.inline-form{margin:0}
.inline-form select{min-width:125px}
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.modal-backdrop{position:absolute;inset:0;background:rgba(24,20,16,.48)}
.modal-card{position:relative;z-index:1;background:#fff;width:min(680px,100%);max-height:90vh;overflow:auto;border-radius:20px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.2)}
.modal-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;margin:0;padding:0;background:#f3efe9;color:#222;font-size:1.5rem}
.modal-open{overflow:hidden}
@media(max-width:900px){
.booking-toolbar{align-items:stretch;flex-direction:column}
.booking-admin-card{grid-template-columns:90px 1fr}
.booking-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:700px){
.booking-search{flex-direction:column}
.booking-admin-card{grid-template-columns:1fr}
.booking-actions{grid-column:auto}
.booking-time{flex-direction:row;gap:10px;align-items:baseline}
}

.brand-logo{display:block;max-width:210px;max-height:76px;width:auto;height:auto;object-fit:contain}
.compact-logo{max-width:135px;max-height:48px}
.settings-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start}
.logo-preview{display:flex;align-items:center;justify-content:center;min-height:130px;padding:18px;border:1px dashed var(--line);border-radius:16px;background:#fbfaf7;margin-bottom:22px}
.logo-preview img{max-width:300px;max-height:110px}
.spaced{margin-top:36px}
.test-mail-form{margin-top:14px}
.installer-body{background:linear-gradient(145deg,#fff,#f5efe6);min-height:100vh}
.installer-wrap{padding:48px 0 80px}
.installer-card{max-width:900px;margin:auto;padding:38px}
.installer-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.installer-brand strong,.installer-brand span{display:block}
.installer-brand span{color:var(--muted)}
.install-section{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line)}
.install-section>span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#222;color:#fff;font-weight:700}
.install-section h2{margin:3px 0 20px}
.privacy-check a{color:#6f572b}
.admin-links a:hover,.simple-link:hover{color:var(--gold)}
button,.button,.offer-card,.time-option span,input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:#b79a61;box-shadow:0 0 0 4px rgba(183,154,97,.14)}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}
@media(max-width:700px){.installer-card{padding:24px}.install-section{grid-template-columns:1fr}.brand-logo{max-width:150px}}

/* Eventtage: Admin und Kundenbuchung */
.event-date-box{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fbfaf7}
.event-date-heading{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:16px}
.event-date-heading span{color:var(--muted);font-size:.92rem;font-weight:400}
.event-date-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.event-date-list-admin{display:inline-block;margin:8px 0 4px;color:#7b6131;font-weight:700}
.event-date-form button{margin-top:20px}
.event-date-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.event-date-option{margin:0}
.event-date-option input{position:absolute;opacity:0;pointer-events:none}
.event-date-option span{display:flex;flex-direction:column;gap:3px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;text-align:center}
.event-date-option strong{font-size:1.15rem}
.event-date-option small{color:var(--muted)}
.event-date-option:hover span,.event-date-option input:checked+span{border-color:#222;background:#222;color:#fff}
.event-date-option input:checked+span small{color:#ddd}
@media(max-width:700px){.event-date-admin-grid,.event-date-choice-grid{grid-template-columns:1fr}.event-date-heading{flex-direction:column;gap:4px}}


/* ND BuchungsManager Systemfooter */
.system-footer{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px 18px;
    flex-wrap:wrap;
    padding:30px 20px;
    margin-top:50px;
    border-top:1px solid var(--line);
    background:#fff;
    color:var(--muted);
    font-size:.88rem;
    text-align:center
}
.system-footer strong{color:var(--text)}
.admin-system-footer{
    background:transparent;
    border-top:1px solid var(--line);
    margin-top:60px
}
.version-card{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:20px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fbfaf7
}
.version-card strong{font-size:1.25rem}
.version-card span{color:var(--muted)}
.changelog-list{display:grid;gap:18px}
.changelog-list article{
    display:grid;
    gap:7px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff
}
.changelog-list article strong{font-size:1.1rem}
.changelog-list article span{color:var(--muted)}
.backup-list{display:grid;gap:12px}
.backup-list>div{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:14px 0;
    border-bottom:1px solid var(--line)
}
.backup-list>div:last-child{border-bottom:0}
.backup-list span,.backup-list small{display:block}
.backup-list small{color:var(--muted);margin-top:3px}
.login-product{color:var(--muted);margin-top:-12px}
.muted{color:var(--muted)}
@media(max-width:700px){
    .backup-list>div{align-items:flex-start;flex-direction:column}
}


/* Kundendatenbank und Rechnungsdaten */
.invoice-data-box{
    padding:20px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fbfaf7
}
.invoice-data-heading{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:baseline;
    margin-bottom:16px
}
.invoice-data-heading span{
    color:var(--muted);
    font-size:.92rem;
    font-weight:400
}
.invoice-data-grid{
    display:grid;
    grid-template-columns:1.5fr .5fr .7fr 1.3fr;
    gap:14px
}
.customers-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr)}
.customer-list{display:grid;gap:16px}
.customer-card{
    display:flex;
    justify-content:space-between;
    gap:22px;
    align-items:center;
    margin:0
}
.customer-card h3{margin:0 0 8px;font-size:1.3rem}
.customer-contact{display:flex;gap:14px;flex-wrap:wrap}
.customer-contact a{color:#6f572b;text-decoration:none}
.customer-address{color:var(--muted);line-height:1.45}
.customer-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.customer-meta span{
    padding:6px 10px;
    border-radius:999px;
    background:#f3efe8;
    color:#625d56;
    font-size:.82rem;
    font-weight:700
}
.customer-history{margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.history-item{display:grid;gap:3px;padding:12px 0;border-bottom:1px solid var(--line)}
.history-item span{color:var(--muted)}
@media(max-width:900px){
    .invoice-data-grid{grid-template-columns:1fr 1fr}
    .customers-layout{grid-template-columns:1fr}
}
@media(max-width:700px){
    .invoice-data-grid{grid-template-columns:1fr}
    .invoice-data-heading{flex-direction:column;gap:4px}
    .customer-card{align-items:flex-start;flex-direction:column}
}


/* Rechnungsmodul 1.3 */
.vip-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#fff4cf;color:#7b5c13;font-size:.7rem;vertical-align:middle}
.gallery-link{color:#7b6131;font-weight:700;text-decoration:none}
.small-button{padding:7px 10px;font-size:.8rem}
.history-item{display:flex;justify-content:space-between;gap:14px;align-items:center}
.invoice-settings-card{margin-top:28px}
.invoice-list{display:grid;gap:14px}
.invoice-list-card{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:0}
.invoice-list-card h3{margin:.35rem 0}
.invoice-list-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.invoice-customer-box{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fbfaf7}
.invoice-customer-box h2{margin-top:0}
.invoice-print-body{background:#ece9e4;color:#222;font-family:Arial,sans-serif}
.print-actions{display:flex;justify-content:center;gap:10px;padding:18px}
.invoice-document{width:210mm;min-height:297mm;margin:0 auto 30px;background:#fff;padding:18mm 18mm 16mm;box-sizing:border-box;box-shadow:0 12px 40px rgba(0,0,0,.14)}
.invoice-header{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}
.invoice-header img{max-width:78mm;max-height:27mm;object-fit:contain}
.invoice-sender{display:flex;flex-direction:column;text-align:right;line-height:1.45;font-size:10pt}
.invoice-address{display:grid;grid-template-columns:1fr 72mm;gap:24px;margin-top:28mm;align-items:start}
.invoice-address>div:first-child{display:flex;flex-direction:column;line-height:1.5}
.invoice-address small{font-size:7.5pt;text-decoration:underline;margin-bottom:8mm}
.invoice-meta-print{display:grid;gap:8px}
.invoice-meta-print div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #ddd;padding-bottom:5px}
.invoice-meta-print span{color:#666}
.invoice-document h2{font-size:20pt;margin:20mm 0 8mm}
.invoice-table{width:100%;border-collapse:collapse}
.invoice-table th,.invoice-table td{padding:10px;border-bottom:1px solid #ddd;text-align:left}
.invoice-table th:last-child,.invoice-table td:last-child{text-align:right}
.invoice-totals{width:75mm;margin:14mm 0 12mm auto;display:grid;gap:7px}
.invoice-totals div{display:flex;justify-content:space-between;gap:20px}
.invoice-totals .grand-total{font-size:14pt;border-top:2px solid #222;padding-top:8px}
.invoice-note{line-height:1.55}
.invoice-thanks{margin-top:18mm;font-weight:700}
.invoice-print-footer{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30mm;border-top:1px solid #bbb;padding-top:8mm;font-size:8.5pt;color:#555}
.invoice-print-footer div{display:flex;flex-direction:column;gap:3px}
@media(max-width:900px){
.invoice-list-card{align-items:flex-start;flex-direction:column}
.invoice-list-actions{justify-content:flex-start}
}
@media print{
    .print-actions{display:none!important}
    .invoice-print-body{background:#fff}
    .invoice-document{margin:0;box-shadow:none;width:auto;min-height:auto;padding:0}
}


/* Version 2.0 CRM */
.crm-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.crm-stat{margin:0}
.crm-stat span{display:block;color:var(--muted)}
.crm-stat strong{display:block;font-size:2rem;margin-top:6px}
.dashboard-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:24px}
.section-title-row{display:flex;justify-content:space-between;gap:18px;align-items:center}
.section-title-row a{color:#7b6131;text-decoration:none;font-weight:700}
.today-list,.recent-customer-list{display:grid}
.today-list a,.recent-customer-list a{display:grid;grid-template-columns:90px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.today-list small,.recent-customer-list small{color:var(--muted)}
.next-event-card{display:grid;gap:5px;padding:18px;border-radius:14px;background:#fbf7f0;border:1px solid var(--line)}
.day-plan{display:grid;gap:14px}
.day-plan-item{display:grid;grid-template-columns:110px 1fr auto;gap:22px;align-items:start;margin:0}
.day-plan-time{display:flex;flex-direction:column}
.day-plan-time strong{font-size:1.8rem}
.day-plan-time span{color:var(--muted)}
.day-plan-item h2{margin:0 0 5px}
.day-plan-item p{margin:.2rem 0}
.day-note{padding:10px 12px;background:#fbf7f0;border-radius:10px}
@media(max-width:950px){
.crm-stat-grid{grid-template-columns:repeat(2,1fr)}
.dashboard-columns{grid-template-columns:1fr}
}
@media(max-width:700px){
.crm-stat-grid{grid-template-columns:1fr}
.day-plan-item{grid-template-columns:1fr}
.today-list a,.recent-customer-list a{grid-template-columns:1fr}
}


/* Version 3.0 Studioakte */
.workflow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.heimat-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#efe8d8;color:#745c2d;font-size:.7rem;vertical-align:middle}
.finance-tabs{margin-bottom:22px}
.finance-list{display:grid}
.finance-list>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.finance-list small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:900px){.workflow-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.workflow-grid{grid-template-columns:1fr}.finance-list>div{flex-direction:column}}


/* Version 3.1 – klare digitale Shootingakte */
.shooting-file-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:26px;
    margin-top:0
}
.shooting-file-head h1{margin:.2rem 0}
.shooting-head-meta{display:flex;gap:10px;flex-wrap:wrap}
.shooting-head-meta span{
    padding:6px 10px;
    border-radius:999px;
    background:#f3efe8;
    color:#625d56;
    font-size:.86rem;
    font-weight:700
}
.shooting-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.shooting-section{margin:18px 0}
.shooting-section-title{
    display:flex;
    gap:16px;
    align-items:flex-start;
    margin-bottom:22px
}
.shooting-section-title h2{margin:0 0 3px}
.shooting-section-title p{margin:0;color:var(--muted)}
.shooting-step{
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#222;
    color:#fff;
    display:grid;
    place-items:center;
    font-weight:700
}
.workflow-wide{grid-column:span 3}
.invoice-summary-box{
    grid-column:span 3;
    display:grid;
    gap:5px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fbfaf7
}
.invoice-summary-box a{color:#7b6131;font-weight:700;text-decoration:none}
.customer-informed-check{margin-top:18px}
.sticky-save-bar{
    position:sticky;
    bottom:0;
    z-index:20;
    display:flex;
    justify-content:flex-end;
    padding:14px 0 18px;
    background:linear-gradient(to top,var(--bg) 70%,rgba(250,248,244,0))
}
.sticky-save-bar button{box-shadow:0 10px 25px rgba(0,0,0,.14)}
.shooting-file-button{background:#7b6131}
.history-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){
    .shooting-file-head{align-items:flex-start;flex-direction:column}
    .shooting-head-actions{justify-content:flex-start}
    .workflow-wide,.invoice-summary-box{grid-column:span 1}
}
@media(max-width:700px){
    .shooting-section-title{align-items:center}
}


/* Version 3.2 – Rechnungsworkflow */
.invoice-create-button{background:#277a4b}
.invoice-open-button{background:#7b6131}
.invoice-inline-status{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:700;
    background:#f3efe8;
    color:#625d56
}
.invoice-inline-status.paid{background:#e8f6ee;color:#277a4b}
.invoice-inline-status.open{background:#fff3d6;color:#7d5b00}
.invoice-inline-status.cancelled{background:#fbeaea;color:#a33}
.booking-workflow-overview{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:11px
}
.booking-workflow-overview span{
    padding:5px 8px;
    border-radius:999px;
    background:#f5f1ea;
    color:#6e6559;
    font-size:.75rem;
    font-weight:700
}
.customer-timeline-item{align-items:flex-start}
.timeline-main{display:grid;gap:5px}
.timeline-statuses{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.timeline-statuses span{
    padding:5px 8px;
    border-radius:999px;
    background:#eee;
    color:#777;
    font-size:.72rem;
    font-weight:700
}
.timeline-statuses span.done{background:#e8f6ee;color:#277a4b}
@media(max-width:700px){
    .invoice-inline-status{width:100%;justify-content:center}
}


/* Version 3.2.2 – Kundenkarteikarte */
.customer-record-head{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:center;
    margin-top:0
}
.customer-record-head h1{margin:.2rem 0}
.customer-record-badges{display:flex;gap:7px;flex-wrap:wrap}
.customer-record-tag{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#f3efe8;
    color:#625d56;
    font-size:.72rem;
    font-weight:700
}
.customer-record-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}
.customer-record-data{
    display:grid;
    grid-template-columns:125px 1fr;
    gap:11px 18px;
    margin:0
}
.customer-record-data dt{
    color:var(--muted);
    font-weight:700
}
.customer-record-data dd{margin:0}
.customer-record-data a{color:#7b6131;text-decoration:none}
.customer-record-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-bottom:20px
}
.customer-record-stats div{
    padding:15px;
    border-radius:14px;
    background:#f7f3ed
}
.customer-record-stats span{
    display:block;
    color:var(--muted);
    font-size:.82rem
}
.customer-record-stats strong{
    display:block;
    margin-top:3px;
    font-size:1.35rem
}
.customer-record-notes{
    padding:16px;
    border-radius:14px;
    background:#fbf8f2;
    white-space:normal
}
.customer-record-history{display:grid}
.customer-record-history-item{
    display:flex;
    justify-content:space-between;
    gap:22px;
    align-items:flex-start;
    padding:18px 0;
    border-bottom:1px solid var(--line)
}
.customer-record-history-item:last-child{border-bottom:0}
.customer-record-history-item h3{margin:4px 0}
@media(max-width:850px){
    .customer-record-head{align-items:flex-start;flex-direction:column}
    .customer-record-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .customer-record-data{grid-template-columns:1fr}
    .customer-record-data dt{margin-bottom:-8px}
    .customer-record-stats{grid-template-columns:1fr}
    .customer-record-history-item{flex-direction:column}
}

/* Version 3.2.3 – Rechnung löschen */
.danger-button{background:#9b2c2c!important;color:#fff!important}
.danger-button:hover{background:#7f1d1d!important}


/* Version 3.2.4 – PWA und Administratoren */
.install-app-button{width:100%;text-align:center}
.install-hint{color:var(--muted);font-size:.82rem;text-align:center}
.admin-user-card{
    display:grid;
    grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);
    gap:24px;
    align-items:start;
    margin:0
}
.admin-user-card h3{margin:.45rem 0 .1rem}
.admin-user-card p{margin:.1rem 0}
.admin-user-card small{color:var(--muted)}
.admin-user-actions{display:grid;gap:12px}
.admin-password-form{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    align-items:end
}
.admin-password-form label{margin:0}
.admin-password-form button{margin:0}
@media(max-width:750px){
    .admin-user-card{grid-template-columns:1fr}
    .admin-password-form{grid-template-columns:1fr}
}


/* ND BuchungsManager 3.2.7 */
.booking-calendar{
    margin-top:18px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#f3f1ed
}
.booking-calendar-head{
    display:grid;
    grid-template-columns:44px 1fr 44px;
    align-items:center;
    gap:12px;
    margin-bottom:14px;
    text-align:center
}
.booking-calendar-head strong{
    font-size:1.18rem
}
.calendar-nav{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:50%;
    background:#222;
    color:#fff;
    text-decoration:none;
    font-size:1.5rem;
    font-weight:700
}
.calendar-nav.disabled{
    background:#d8d5d0;
    color:#a8a39c;
    opacity:.55
}
.booking-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px
}
.booking-calendar-weekday{
    padding:6px 2px;
    text-align:center;
    color:#746f68;
    font-size:.8rem;
    font-weight:700
}
.booking-calendar-day{
    aspect-ratio:1/1;
    min-height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    text-decoration:none;
    transition:transform .15s ease,box-shadow .15s ease,background .15s ease
}
.booking-calendar-day span{
    font-size:1rem
}
.booking-calendar-day.bookable{
    background:#222;
    color:#fff;
    font-weight:800;
    box-shadow:0 5px 14px rgba(0,0,0,.12)
}
.booking-calendar-day.bookable:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(0,0,0,.18)
}
.booking-calendar-day.bookable.selected{
    outline:3px solid var(--gold);
    outline-offset:2px
}
.booking-calendar-day.unavailable{
    background:#dedbd6;
    color:#88837c;
    font-weight:400;
    opacity:.42
}
.booking-calendar-day.outside-month{
    opacity:.16
}
.calendar-legend{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-top:14px;
    color:var(--muted);
    font-size:.85rem
}
.calendar-legend span{
    display:flex;
    align-items:center;
    gap:7px
}
.calendar-legend i{
    width:16px;
    height:16px;
    border-radius:5px;
    display:inline-block
}
.legend-bookable{background:#222}
.legend-unavailable{background:#dedbd6;opacity:.55}
@media(max-width:520px){
    .booking-calendar{padding:12px}
    .booking-calendar-grid{gap:5px}
    .booking-calendar-day{min-height:36px;border-radius:9px}
    .booking-calendar-day span{font-size:.9rem}
}
