:root {
  --bg:#eef2e5; --bg2:#e4ead7; --card:rgba(255,255,255,.95); --text:#2f3b27; --muted:#6a7b5a; --accent:#6f8452; --accent-dark:#56683f; --line:#d9e1cd; --success:#2f6e35; --error:#b3261e; --blocked:#aa6b4d; --free:#6f9a5a; --shadow:0 18px 40px rgba(73,85,48,.10);
}
* { box-sizing:border-box; }
body { margin:0; font-family:Georgia,'Times New Roman',serif; color:var(--text); background:linear-gradient(180deg,var(--bg2) 0%,var(--bg) 100%); }
.top-brand { display:flex; justify-content:center; padding:26px 20px 8px; } .brand-logo,.admin-logo { width:min(100%,520px); height:auto; display:block; } .brand-fallback { font-size:32px; color:var(--accent-dark); }
.admin-logo { width:min(100%,360px); } .admin-logo-wrap { display:flex; justify-content:center; margin-bottom:14px; }
.site { max-width:1320px; margin:0 auto; padding:14px 24px 30px; } .site.narrow { max-width:620px; }
.hero { display:grid; grid-template-columns:1.55fr .95fr; gap:28px; align-items:stretch; margin-bottom:22px; } .hero.compact { grid-template-columns:1fr auto; align-items:center; }
.hero-copy,.hero-card,.card,.intro-card { background:var(--card); border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow); } .hero-copy { padding:28px; } .hero-card,.card,.intro-card { padding:24px; }
.eyebrow { margin:0 0 10px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-size:12px; } h1,h2,h3,h4 { font-weight:400; letter-spacing:.06em; color:var(--accent-dark); } h1 { font-size:clamp(2.2rem,5vw,3.8rem); margin:0 0 12px; }
.lede,.intro-card p,.room-calendar-head p,.metric span,.notice,.footer,input,select,textarea,button,table,.price-box,.booking-form label span,.month-head span,.small-note,code { font-family:Arial,Helvetica,sans-serif; }
.lede { color:var(--muted); font-size:1.08rem; max-width:60ch; line-height:1.6; } .intro-card { margin-bottom:22px; } .intro-card p { margin:0; color:var(--muted); line-height:1.7; }
.metric { display:flex; justify-content:space-between; gap:20px; padding:11px 0; border-bottom:1px solid var(--line); } .metric:last-child { border-bottom:0; } .metric strong { color:var(--accent-dark); font-size:1.18rem; }
.legend { display:flex; gap:18px; padding-top:16px; color:var(--muted); flex-wrap:wrap; } .dot { width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:6px; } .dot.free { background:var(--free); } .dot.blocked { background:var(--blocked); }
.layout { display:grid; grid-template-columns:minmax(320px,430px) 1fr; gap:24px; align-items:start; }
.booking-form label { display:block; margin-bottom:14px; } .booking-form label span { display:block; margin-bottom:8px; font-weight:600; color:var(--accent-dark); } .grid.two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
input,select,textarea { width:100%; padding:14px 15px; border:1px solid #cfd8c0; border-radius:16px; background:rgba(255,255,255,.98); color:var(--text); font-size:15px; }
textarea { resize:vertical; min-height:120px; }
.date-large { min-height:58px; font-size:18px; }
.date-large::-webkit-calendar-picker-indicator { transform: scale(1.45); cursor:pointer; }
.checkbox { display:grid !important; grid-template-columns:20px 1fr; gap:12px; align-items:start; } .checkbox input { margin-top:3px; } .honeypot { position:absolute; left:-10000px; opacity:0; }
.btn-primary,.btn-secondary,.mini-btn { appearance:none; border:0; border-radius:16px; padding:14px 20px; background:linear-gradient(180deg,#7e9560 0%,var(--accent-dark) 100%); color:#fff; font:inherit; cursor:pointer; text-decoration:none; display:inline-block; }
.mini-btn { padding:8px 10px; font-size:.9rem; margin-right:6px; } .mini-btn.danger { background:linear-gradient(180deg,#bf7a59 0%,#9d5c3f 100%); }
.notice { margin-bottom:18px; padding:14px 16px; border-radius:16px; border:1px solid var(--line); background:rgba(255,255,255,.92); } .notice.success { border-color:#b8ddba; color:var(--success); } .notice.error { border-color:#efb0ab; color:var(--error); }
.price-box { background:linear-gradient(180deg,#f7faef 0%,#eef4e2 100%); border:1px dashed #c7d6b0; border-radius:18px; padding:14px; margin-bottom:16px; color:var(--muted); line-height:1.6; }
.calendar-stack { display:grid; gap:22px; } .room-calendar,.sync-room { border-top:1px solid var(--line); padding-top:20px; margin-top:20px; } .room-calendar:first-child,.sync-room:first-child { border-top:0; padding-top:0; margin-top:0; }
.room-calendar-head { display:flex; justify-content:space-between; gap:12px; align-items:baseline; flex-wrap:wrap; margin-bottom:12px; } .room-calendar-head p { margin:0; color:var(--muted); }
.calendar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; } .month-card { border:1px solid var(--line); border-radius:20px; padding:16px; background:linear-gradient(180deg,#fcfef7 0%,#f1f6e8 100%); }
.month-head,.month-days { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; } .month-head span { font-size:.78rem; color:var(--muted); text-align:center; }
.day { aspect-ratio:1; border-radius:12px; display:grid; place-items:center; font-family:Arial,Helvetica,sans-serif; font-size:.92rem; border:1px solid var(--line); } .day.free { background:#edf6e6; color:#43663a; } .day.blocked { background:#fff0e8; color:#9d4b2f; } .day.past { background:#f0f2ea; color:#98a08f; } .day.empty { border:0; background:transparent; }
.footer { text-align:center; color:var(--muted); padding:16px 12px 0; } .footer a { color:var(--accent-dark); }
.table-wrap { overflow:auto; } .booking-table { width:100%; border-collapse:collapse; font-family:Arial,Helvetica,sans-serif; } .booking-table th,.booking-table td { border-bottom:1px solid var(--line); padding:12px 10px; text-align:left; vertical-align:top; } .booking-table th { color:var(--muted); font-size:.9rem; }
.status { display:inline-block; padding:6px 10px; border-radius:999px; font-size:.85rem; background:#eee; font-family:Arial,Helvetica,sans-serif; } .status-confirmed { background:#e7f6ea; color:#216a34; } .status-cancelled { background:#fbe9e7; color:#9b2c20; } .status-imported { background:#edf4e3; color:#4c6e2f; }
.inline-form { display:flex; flex-wrap:wrap; gap:8px; } .message-row td { background:#fafcf6; color:var(--muted); } .small-note { color:var(--muted); font-size:13px; } code { background:#f0f5e8; padding:4px 8px; border-radius:8px; display:inline-block; word-break:break-all; }
@media (max-width:1100px) { .hero,.layout,.calendar-grid,.grid.two { grid-template-columns:1fr; } .brand-logo { width:min(100%,430px); } }
@supports selector(::-webkit-datetime-edit) {
  input[type="date"]::-webkit-datetime-edit { font-size: 18px; }
  input[type="date"]::-webkit-calendar-picker-indicator { transform: scale(1.45); }
}


.custom-date-wrap { display:grid; grid-template-columns:1fr 56px; gap:10px; align-items:center; }
.date-display { min-height:58px; font-size:18px; display:flex; align-items:center; cursor:pointer; }
.calendar-open { min-height:58px; border-radius:16px; border:1px solid #cfd8c0; background:#fff; cursor:pointer; font-size:24px; color:var(--accent-dark); }
.datepicker-backdrop { position:fixed; inset:0; background:rgba(43,56,32,.35); z-index:999; }
.datepicker-modal { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(92vw,620px); background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:0 30px 80px rgba(49,67,39,.25); z-index:1000; padding:20px; }
.datepicker-header { display:grid; grid-template-columns:56px 1fr 56px; align-items:center; gap:10px; margin-bottom:16px; }
.dp-title { text-align:center; font-size:24px; color:var(--accent-dark); font-weight:700; }
.dp-nav { appearance:none; border:0; height:48px; border-radius:14px; background:#eff5e8; color:var(--accent-dark); font-size:30px; cursor:pointer; }
.dp-weekdays,.dp-days { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.dp-weekdays { margin-bottom:10px; }
.dp-weekdays span { text-align:center; color:var(--muted); font-size:15px; font-weight:700; }
.dp-day { height:62px; border-radius:16px; border:1px solid var(--line); background:#fff; font-size:18px; cursor:pointer; }
.dp-day.free { background:#edf6e6; color:#43663a; }
.dp-day.blocked { background:#fff0e8; color:#9d4b2f; cursor:not-allowed; }
.dp-day.past { background:#f0f2ea; color:#98a08f; cursor:not-allowed; }
.dp-day.selected { outline:3px solid var(--accent); font-weight:700; }
.dp-day.empty { visibility:hidden; }
.dp-actions { display:flex; justify-content:flex-end; margin-top:16px; }
@media (max-width:640px) { .dp-day { height:52px; font-size:16px; } .dp-title { font-size:20px; } }

.dog-checkbox{margin-top:28px;}


.live-price-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 18px;
  margin-bottom: 8px;
}

.live-price-grid .live-price-row {
  margin: 0;
}

.live-price-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
padding: 4px 0;
border-bottom: 1px solid rgba(111,132,82,.15);
}

.live-price-row span {
color: #444;
}

.live-price-row strong {
text-align: right;
min-width: 110px;
}

.live-price-total {
display: flex;
justify-content: space-between;
margin-top: 12px;
padding-top: 12px;
border-top: 2px solid rgba(111,132,82,.35);
font-size: 1.2em;
font-weight: 700;
}

.live-price-total strong {
color: #6f8452; /* schönes Olivgrün */
font-size: 1.3em;
}

.live-price-box {
background: #f7f8f3;
border: 1px solid rgba(111,132,82,.2);
border-radius: 8px;
padding: 14px;
}


@media (max-width: 700px) {
  .live-price-grid {
    grid-template-columns: 1fr;
  }
}