:root{
  --bg:#f3f6fb;
  --panel:#ffffff;
  --line:#d8e2f0;
  --text:#17324d;
  --muted:#6a7d95;
  --primary:#1e4ed8;
  --primary-soft:#e8f0ff;
  --green:#1f8f5f;
  --green-soft:#e7f7ef;
  --amber:#b7791f;
  --amber-soft:#fff5e4;
  --red:#c23b3b;
  --red-soft:#ffe9e9;
  --shadow:0 10px 24px rgba(20,48,86,.08);
  --radius:18px;
  --cell-w:96px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{max-width:2200px;margin:0 auto;padding:24px 18px 28px}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.topbar h1{margin:0;font-size:32px;line-height:1.1}.sub{margin:8px 0 0;color:var(--muted);font-size:14px}
.stats{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.stat-badge{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-size:14px;box-shadow:var(--shadow)}
.controls{display:grid;grid-template-columns:auto auto minmax(180px,1fr) minmax(180px,1fr) 150px 160px auto auto auto;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);margin-bottom:18px}
.segment{display:flex;background:#edf2f8;border:1px solid var(--line);padding:4px;border-radius:14px;gap:4px}
.segment button,.ghost,.warn,#newBookingBtn,.modal-actions button,.import-form button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:14px;padding:10px 14px;transition:.18s ease}
.segment button.active{background:var(--panel);border-color:#b9c8dd;color:#102a43;font-weight:700}
.ghost:hover,.segment button:hover,#newBookingBtn:hover,.modal-actions button:hover,.import-form button:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.warn{background:#8f3d10;color:#fff;border-color:#8f3d10}#newBookingBtn,.modal-actions button[type="submit"],.import-form button{background:#10385f;color:#fff;border-color:#10385f}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 14px;outline:none;color:var(--text)}
input:focus,select:focus,textarea:focus{border-color:#8db1ea;box-shadow:0 0 0 4px rgba(30,78,216,.08)}
.date-nav{display:flex;align-items:center;gap:10px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.boards{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}
.house-board,.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:14px;min-width:0}
.board-head,.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:12px}
.board-head h2,.panel-head h2{margin:0;font-size:18px}
.board-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;border:1px solid transparent;white-space:nowrap}
.status.reserviert{background:var(--primary-soft);color:var(--primary);border-color:#cddcff}
.status.eingecheckt{background:var(--green-soft);color:var(--green);border-color:#caead6}
.status.ausgecheckt{background:#edf2f7;color:#60748a;border-color:#d8e2ec}
.status.storniert{background:var(--red-soft);color:var(--red);border-color:#f4c3c3}
.board-shell{overflow-x:auto;overflow-y:hidden;padding-bottom:6px}
.timeline{min-width:max-content}
.header-row,.room-row{display:grid;grid-template-columns:210px auto;gap:6px;margin-bottom:6px}
.room-label{position:sticky;left:0;z-index:3;background:#fff;border:1px solid var(--line);border-radius:16px;min-height:58px;padding:10px;display:flex;flex-direction:column;justify-content:center;min-width:210px}
.room-label strong{font-size:15px}.room-label small,.muted{font-size:12px;color:var(--muted)}
.days-header,.drop-grid{display:grid;gap:6px}
.day-cell,.drop-cell{border:1px solid var(--line);border-radius:16px;min-height:58px}
.day-cell{background:#f6f9fd;padding:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.drop-cell{background:var(--green-soft)}
.drop-cell.drag-over{outline:2px dashed var(--primary);outline-offset:-4px;background:#eef4ff}
.timeline-track{position:relative;min-height:58px}
.booking-layer{position:absolute;inset:0;z-index:2;pointer-events:none}
.booking-bar{position:absolute;height:44px;padding:7px 10px;border-radius:14px;border:1px solid #bad0f3;background:var(--primary-soft);color:#1749a0;box-shadow:0 6px 16px rgba(17,51,122,.10);pointer-events:auto;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2px}
.booking-bar strong,.booking-bar .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.booking-bar strong{font-size:12px;line-height:1.15}.booking-bar .meta{font-size:11px;line-height:1.1;color:#4369b2}
.booking-bar.eingecheckt{background:var(--green-soft);border-color:#bfe7cf;color:#176949}.booking-bar.eingecheckt .meta{color:#2d8a60}
.booking-bar.ausgecheckt{background:#eef2f7;border-color:#d9e2ec;color:#56687c}.booking-bar.ausgecheckt .meta{color:#7f8da0}
.booking-bar.storniert{background:var(--red-soft);border-color:#f1b7b7;color:#a02727}.booking-bar.storniert .meta{color:#bf5252}
.booking-bar.dragging{opacity:.65}
.sidebar{display:flex;flex-direction:column;gap:18px;position:sticky;top:18px;min-width:0}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.import-form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;color:var(--muted)}.field-wide{grid-column:1 / -1}
.checkline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.hint{color:var(--muted);font-size:12px;line-height:1.45}
.booking-list,.history-list{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow:auto}
.list-card{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fbfdff}
.list-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.list-title{font-weight:800;font-size:16px;margin-bottom:4px}.list-sub{font-size:12px;color:var(--muted);line-height:1.35}
.list-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.list-actions button{padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:#fff}.list-actions .danger,.modal-actions .danger{background:#b82929;color:#fff;border-color:#b82929}
.empty-note{padding:16px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);background:#fafcff}
.modal{border:none;padding:0;background:transparent}.modal::backdrop{background:rgba(15,23,42,.45)}
.modal-card{width:min(760px, calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.modal-head h3{margin:0;font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px}
.child-mode .sidebar,.child-mode #mainControls,.child-mode .stats,.child-mode .sub{display:none}.child-mode .topbar{margin-bottom:12px}.child-mode .layout{display:block}.child-mode .boards{grid-template-columns:1fr}
@media (max-width: 1700px){.layout{grid-template-columns:1fr}.sidebar{position:static}}
@media (max-width: 1450px){.controls{grid-template-columns:1fr 1fr 1fr}.boards{grid-template-columns:1fr}.date-nav{grid-column:span 2}}
@media (max-width: 720px){.app-shell{padding:14px}.topbar{flex-direction:column}.form-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.controls{grid-template-columns:1fr}.date-nav{grid-column:auto}}


.boards.single-house{grid-template-columns:minmax(0,1fr);}
.layout.single-house{grid-template-columns:minmax(0,1fr);}
.layout.single-house .sidebar{position:static;max-width:none;width:100%;order:2;}
.layout.single-house .boards{order:1;}
.layout.single-house .house-board{width:100%;}
.layout.single-house .board-shell{overflow-x:auto;}
.layout.single-house .timeline{width:max-content;min-width:100%;}
@media (min-width:1701px){.layout.single-house{grid-template-columns:minmax(0,1fr);}}

body.drag-active .booking-layer{pointer-events:none;}
.timeline-track{position:relative;min-height:58px;overflow:visible;}
.booking-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:visible;}
.booking-bar{
  position:absolute;
  height:44px;
  min-height:44px;
  padding:7px 30px 7px 10px;
  border-radius:14px;
  border:1px solid #bad0f3;
  background:var(--primary-soft);
  color:#1749a0;
  box-shadow:0 6px 16px rgba(17,51,122,.10);
  pointer-events:auto;
  overflow:visible;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}
.booking-main{min-width:0;display:flex;flex-direction:column;gap:2px;}
.booking-bar strong,.booking-bar .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.booking-bar strong{font-size:12px;line-height:1.15;}
.booking-bar .meta{font-size:11px;line-height:1.1;color:#4369b2;}
.booking-bar.eingecheckt{background:var(--green-soft);border-color:#bfe7cf;color:#176949;}
.booking-bar.eingecheckt .meta{color:#2d8a60;}
