:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17202c;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.card{width:min(450px,100%);background:#fff;border:1px solid #dce3e8;border-radius:18px;padding:30px;box-shadow:0 20px 48px #102b4218}.key{font-size:34px;color:#c69431}.eyebrow{color:#1e639b;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.field{display:grid;gap:6px;margin:18px 0}.field label{font-weight:700}.field input,.field select,.field textarea{border:1px solid #c8d2da;border-radius:9px;padding:12px;width:100%;resize:vertical}.primary,.secondary{border:0;border-radius:9px;padding:11px 15px;font-weight:750}.primary{background:#185d91;color:#fff}.secondary{background:#e8eef2;color:#233949}.wide{width:100%}.error{color:#a82929;min-height:1.4em}.shell{min-height:100vh}.top{background:#112e48;color:#fff;padding:15px clamp(18px,4vw,54px);display:flex;justify-content:space-between;gap:15px;align-items:center}.brand{font-size:21px;font-weight:800}.brand small{display:block;font-size:11px;color:#bad0df;font-weight:500}.top-right{display:flex;gap:12px;align-items:center;font-size:14px}.top .secondary{background:transparent;color:#fff;border:1px solid #5f7c92}.content{max-width:1500px;margin:auto;padding:28px clamp(18px,4vw,54px)}.headline{display:flex;justify-content:space-between;gap:20px;align-items:end}.headline h1{margin:0}.headline p{color:#657782;margin:7px 0 0}.badge{background:#e7f6f1;color:#08715d;padding:7px 10px;border-radius:99px;font-size:12px;font-weight:800}.grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;margin-top:22px}.panel{background:#fff;border:1px solid #dce3e8;border-radius:14px;padding:18px;box-shadow:0 8px 25px #1c32400c}.panel h2{font-size:18px;margin:0 0 5px}.panel p{color:#657782}.plan{overflow:auto}.plan-table{min-width:700px;display:grid;grid-template-columns:145px repeat(8,1fr);border:1px solid #e4e9ed;border-radius:10px;overflow:hidden}.cell{min-height:54px;border-right:1px solid #e9eef1;border-bottom:1px solid #e9eef1;padding:8px;background:#fff}.head{font-size:12px;font-weight:800;background:#f7f9fa;color:#526473}.room{background:#fbfcfd;font-weight:700}.stay{margin:5px 2px;background:linear-gradient(135deg,#2f9b7c,#176b5c);color:#fff;border-radius:6px;padding:7px;font-size:12px;box-shadow:0 3px 0 #155c50}.arrival{background:linear-gradient(135deg,#d49b35,#a96a12)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.metric{background:#fff;border:1px solid #dce3e8;border-radius:12px;padding:15px}.metric span,.metric small{display:block;color:#657782;font-size:12px}.metric strong{display:block;font-size:28px;margin:5px 0}.list{display:grid;gap:9px}.row{display:flex;gap:10px;justify-content:space-between;align-items:center;border:1px solid #e1e7eb;border-radius:9px;padding:11px}.row strong,.row small{display:block}.row small{color:#657782;margin-top:3px}.state{font-size:12px;font-weight:800;color:#3d5f73}.done{opacity:.6;text-decoration:line-through}.notice{padding:11px;border-radius:9px;background:#fff8e9;color:#805814;font-size:13px}.integrations{display:grid;gap:9px}@media(max-width:900px){.grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr}.headline,.top{align-items:flex-start;flex-direction:column}.top-right{width:100%;justify-content:space-between}}

/* Ergänzungen: Formulare, Aktionen, Plan-Zustände, Hinweis-Toast */
.reservation-form{display:grid;gap:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reservation-form .field{margin:9px 0}
.plan-tools{display:flex;gap:8px;margin:8px 0}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.stay-actions{justify-content:flex-start;margin:10px 0}
button.row{width:100%;text-align:left;background:#fff;font:inherit;color:inherit}button.row:hover{background:#f6f9fb}
.stay.option{background:repeating-linear-gradient(135deg,#8aa6bd,#8aa6bd 6px,#6f8da6 6px,#6f8da6 12px);box-shadow:0 3px 0 #587186}
.cell.blocked{background:repeating-linear-gradient(135deg,#f1f3f5,#f1f3f5 6px,#e3e7ea 6px,#e3e7ea 12px)}
.inline-form{border:1px dashed #b8c6d1;border-radius:10px;padding:12px;margin:10px 0;background:#fafcfd}
.forecast{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px}.forecast-day{border:1px solid #e1e7eb;border-radius:8px;padding:6px;text-align:center}.forecast-day small,.forecast-day strong{display:block}.forecast-title{margin-top:16px}
#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#112e48;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 10px 30px #0004;opacity:0;pointer-events:none;transition:opacity .2s;max-width:min(560px,90vw);z-index:10}#toast.show{opacity:1}
button:disabled{opacity:.55;cursor:wait}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.admin-main{border-top:4px solid #c69431}.technical-list{display:grid;gap:8px;margin:14px 0}.technical-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid #e1e7eb;border-radius:9px}.technical-row strong,.technical-row small{display:block}.technical-row small{color:#657782;margin-top:3px}.tech-state{font-size:12px;font-weight:800;border-radius:999px;padding:5px 8px;background:#e8eef2;color:#3d5f73;white-space:nowrap}.tech-state.ok{background:#e7f6f1;color:#08715d}.tech-state.idle{background:#fff8e9;color:#805814}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}
@media(max-width:900px){.split{grid-template-columns:1fr}.forecast{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}}

/* Zwei auswählbare Layouts aus dem Designpaket: V1 Soft Neumorphism und V5 Zen Minimalism. */
.layout-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.layout-choice{appearance:none;text-align:left;padding:12px;border:1px solid #dce3e8;border-radius:11px;background:#fff;color:#17202c}.layout-choice.selected{outline:3px solid #c69431;border-color:#c69431}.layout-choice strong,.layout-choice small{display:block}.layout-choice small{margin-top:3px;color:#657782}.layout-preview{display:grid;grid-template-columns:1.3fr repeat(2,1fr);gap:4px;height:34px;margin-bottom:9px;padding:5px;border-radius:7px}.layout-preview i{display:block;border-radius:4px}.layout-preview.soft{background:#ebf0f7;box-shadow:inset 2px 2px 4px #a6b4c866,inset -2px -2px 4px #fff}.layout-preview.soft i{background:#a7c7e7;box-shadow:2px 2px 4px #a6b4c866,-2px -2px 4px #fff}.layout-preview.soft i:nth-child(2){background:#c8b6ff}.layout-preview.soft i:nth-child(3){background:#b5ead7}.layout-preview.zen{background:#fff;border:1px solid #e2e8f0}.layout-preview.zen i{background:#e0f2fe;border:1px solid #bae6fd}.layout-preview.zen i:nth-child(2){background:#f3e8ff;border-color:#e9d5ff}.layout-preview.zen i:nth-child(3){background:#ecfdf5;border-color:#bbf7d0}
body[data-layout="neumorph"]{background:#ebf0f7;color:#2d3748}body[data-layout="neumorph"] .top,body[data-layout="neumorph"] .panel,body[data-layout="neumorph"] .metric,body[data-layout="neumorph"] .card{background:#ebf0f7;border-color:transparent;box-shadow:8px 8px 18px #a6b4c873,-8px -8px 18px #fff}body[data-layout="neumorph"] .top{background:#ebf0f7;color:#2d3748}body[data-layout="neumorph"] .top .secondary{color:#2d3748;border-color:#c8d2da;background:#ebf0f7}body[data-layout="neumorph"] .row,body[data-layout="neumorph"] .technical-row{background:#ebf0f7;border-color:transparent;box-shadow:inset 3px 3px 6px #a6b4c866,inset -3px -3px 6px #fff}body[data-layout="neumorph"] .cell{background:#ebf0f7;border-color:#d4dce5}body[data-layout="neumorph"] .head,body[data-layout="neumorph"] .room{background:#ebf0f7}body[data-layout="neumorph"] .stay{background:#a7c7e7;color:#1e3a8a;box-shadow:3px 3px 7px #a6b4c873,-3px -3px 7px #fff}body[data-layout="neumorph"] .stay.arrival{background:#ffdac1;color:#9a3412}body[data-layout="neumorph"] .primary{background:linear-gradient(135deg,#a7c7e7,#c8b6ff);color:#1a202c}
body[data-layout="zen"]{background:#f8f9fa;color:#0f172a}body[data-layout="zen"] .top{background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0}body[data-layout="zen"] .top .secondary{color:#0f172a;border-color:#e2e8f0;background:#fff}body[data-layout="zen"] .panel,body[data-layout="zen"] .metric{border-color:#e2e8f0;box-shadow:none}body[data-layout="zen"] .stay{background:#e0f2fe;color:#0369a1;box-shadow:none;border:1px solid #bae6fd}body[data-layout="zen"] .stay.arrival{background:#fef3c7;color:#b45309;border-color:#fde68a}body[data-layout="zen"] .primary{background:#0f172a;color:#fff}
@media(max-width:650px){.layout-choices{grid-template-columns:1fr}}

/* Operational Command Center: drei feste Arbeitszonen für Rezeption und Planung. */
.command-shell{min-height:100vh}.command-center{background:#fff;border-bottom:1px solid #dce3e8}.command-status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px clamp(18px,4vw,54px);border-bottom:1px solid #dce3e8;background:#f8fafc}.command-status .eyebrow{display:block;margin-bottom:2px}.command-status strong{font-size:17px}.command-metrics{display:flex;flex-wrap:wrap;gap:18px;color:#64748b;font-size:13px}.command-metrics b{color:#0f172a}.command-body{display:grid;grid-template-columns:220px minmax(0,1fr) 290px;min-height:560px;max-height:calc(100vh - 112px)}.command-left,.command-right{padding:16px;background:#fff;overflow:auto}.command-left{border-right:1px solid #dce3e8;display:flex;flex-direction:column;gap:20px}.command-left p{margin:0 0 8px;color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.command-filter{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:transparent;color:#24364a;padding:9px 10px;border-radius:7px;text-align:left}.command-filter:hover{background:#f1f5f9}.command-filter.active{background:#eff6ff;color:#2563eb;font-weight:800}.command-filter small{background:#e2e8f0;color:#475569;border-radius:99px;padding:2px 7px;font-size:11px}.command-system{margin-top:auto}.command-system small{color:#64748b;line-height:1.5}.command-center-pane{min-width:0;display:flex;flex-direction:column;overflow:hidden}.command-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid #dce3e8}.command-toolbar strong,.command-toolbar small{display:block}.command-toolbar small{font-size:12px;color:#64748b;margin-top:2px}.command-toolbar>div:last-child{display:flex;gap:8px;align-items:center}.command-toolbar .plan-tools{margin:0}.command-matrix{overflow:auto;padding:14px 16px;background:#fff}.command-matrix .plan{height:100%}.command-matrix .plan-table{border-radius:0;min-width:850px}.command-matrix .cell{min-height:58px}.command-matrix .room{position:sticky;left:0;z-index:2;border-right:2px solid #cbd5e1}.command-matrix .head{position:sticky;top:0;z-index:3;background:#f8fafc;border-bottom:2px solid #cbd5e1}.command-matrix .head:first-child{left:0;z-index:4}.command-matrix .stay{width:100%;border:0;text-align:left;min-height:42px;border-radius:5px;box-shadow:none;border-left:4px solid #2563eb;background:#dbeafe;color:#1e40af;cursor:pointer}.command-matrix .stay.arrival{border-left-color:#d97706;background:#fef3c7;color:#92400e}.command-right{border-left:1px solid #dce3e8;background:#f8fafc}.inspector-content{display:grid;gap:12px}.inspector-heading{display:flex;justify-content:space-between;gap:8px;align-items:start}.inspector-heading p{margin:0;color:#64748b;font-size:12px}.inspector-heading h2{margin:2px 0 0;font-size:20px}.status-tag{background:#dcfce7;color:#15803d;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:800;text-transform:uppercase}.inspector-card{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:11px;display:grid;gap:3px}.inspector-card small,.inspector-card span{color:#64748b;font-size:12px}.inspector-card strong{font-size:15px}.inspector-actions{display:grid;gap:8px;margin-top:8px}.command-details{max-width:1500px;padding-top:24px}
body[data-layout="neumorph"] .command-center,body[data-layout="neumorph"] .command-left,body[data-layout="neumorph"] .command-right,body[data-layout="neumorph"] .command-center-pane,body[data-layout="neumorph"] .command-status,body[data-layout="neumorph"] .command-matrix{background:#ebf0f7;border-color:transparent}body[data-layout="neumorph"] .command-body{background:#ebf0f7}body[data-layout="neumorph"] .command-left,body[data-layout="neumorph"] .command-right{box-shadow:inset 3px 3px 6px #a6b4c866,inset -3px -3px 6px #fff}body[data-layout="neumorph"] .command-filter.active{background:#dce9f5;color:#1e3a8a}body[data-layout="neumorph"] .command-matrix .head,body[data-layout="neumorph"] .command-matrix .room{background:#ebf0f7}body[data-layout="neumorph"] .inspector-card{background:#ebf0f7;border:0;box-shadow:inset 3px 3px 6px #a6b4c866,inset -3px -3px 6px #fff}body[data-layout="neumorph"] .command-matrix .stay{background:#a7c7e7;border-left-color:#6f9bc5;color:#1e3a8a}
@media(max-width:1100px){.command-body{grid-template-columns:190px minmax(0,1fr)}.command-right{grid-column:1 / -1;border-left:0;border-top:1px solid #dce3e8;max-height:none}.inspector-content{grid-template-columns:repeat(3,1fr)}.inspector-heading,.inspector-actions{grid-column:1 / -1}}@media(max-width:760px){.command-status{align-items:flex-start;flex-direction:column}.command-body{display:block;max-height:none}.command-left{display:grid;grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid #dce3e8}.command-left section{min-width:0}.command-system{margin-top:0}.command-center-pane{min-height:520px}.command-toolbar{align-items:flex-start;flex-direction:column}.inspector-content{grid-template-columns:1fr}.command-right{border-top:1px solid #dce3e8}}
.customer-search { position: relative; }
.customer-suggestions { display: grid; gap: .35rem; margin-top: .35rem; }
.customer-choice { text-align: left; border: 1px solid var(--line, #d7dce3); border-radius: .55rem; background: var(--surface, #fff); padding: .55rem .65rem; cursor: pointer; }
.customer-choice strong, .customer-choice small { display: block; }
.customer-choice small { margin-top: .15rem; opacity: .74; }

.media-thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; vertical-align: middle; margin-right: 8px; background: rgba(0,0,0,.05); }
label.check { display: flex; gap: 8px; align-items: center; font-weight: 400; padding: 4px 0; }
label.check input { width: auto; }

.editor-wrap .toolbar { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; align-items: center; }
.editor-wrap .tb { padding: 4px 9px; min-width: 32px; font-size: 13px; border: 1px solid rgba(0,0,0,.18); border-radius: 5px; background: #fff; color: #222; cursor: pointer; }
.editor-wrap .tb:hover { background: #eef3f5; }
.editor-wrap .ed-url { flex: 1 1 220px; min-width: 160px; }
.editor { min-height: 160px; max-height: 480px; overflow: auto; padding: 10px 12px; border: 1px solid rgba(0,0,0,.25); border-radius: 6px; background: #fff; color: #222; line-height: 1.5; }
.editor:focus { outline: 2px solid #1a5d77; }
.editor p { margin: 0 0 12px 0; } .editor h2 { font-size: 1.25em; margin: 14px 0 8px; } .editor h3 { font-size: 1.1em; margin: 12px 0 6px; }
.editor blockquote { margin: 0 0 12px; padding-left: 12px; border-left: 3px solid #c8c8c8; color: #555; } .editor a { color: #1a5d77; }

.inbox-item { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; background: rgba(255,255,255,.5); }
.inbox-item summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.mail-body { white-space: pre-wrap; word-break: break-word; font-family: inherit; background: rgba(0,0,0,.04); padding: 10px; border-radius: 6px; max-height: 320px; overflow: auto; }

.plan-table.can-drag .cell.free { cursor: crosshair; user-select: none; }
.plan-table.can-drag .cell.free:hover { background: rgba(26,93,119,.10); }
.plan-table .cell.drag-sel { background: rgba(26,93,119,.35); outline: 2px solid #1a5d77; outline-offset: -2px; }
.flash-form { outline: 3px solid #1a5d77; outline-offset: 4px; border-radius: 10px; transition: outline .3s; }

.plan-table .cell.span { padding: 0; }
.plan-table .cell.span .stay { width: 100%; }
.stay.cut-left { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.stay.cut-right { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.stay.split-part { box-shadow: inset 0 0 0 2px rgba(255,255,255,.55); }
.plan-table.can-drag .stay.inspect-stay { user-select: none; }
.modal-back { position: fixed; inset: 0; background: rgba(15,30,45,.45); display: grid; place-items: center; z-index: 60; padding: 16px; }
.modal { background: #fff; color: #17202c; border-radius: 14px; padding: 22px 24px; width: min(460px, 100%); box-shadow: 0 20px 60px #0006; }
.modal h3 { margin: 4px 0 10px; }
.modal .field { margin: 10px 0; } .modal .field label, .modal .field input, .modal .field select { display: block; width: 100%; }
.modal-actions { display: flex; gap: 8px; margin-top: 14px; }
.ctx-menu { position: fixed; z-index: 70; background: #fff; color: #17202c; border: 1px solid #cfd8df; border-radius: 10px; box-shadow: 0 10px 30px #0004; min-width: 200px; padding: 6px; display: grid; gap: 2px; }
.ctx-menu .ctx-title { font-size: 12px; color: #5b6b78; padding: 4px 10px 6px; border-bottom: 1px solid #e5eaee; margin-bottom: 2px; }
.ctx-menu button { text-align: left; background: none; border: 0; padding: 8px 10px; border-radius: 6px; font: inherit; color: inherit; }
.ctx-menu button:hover, .ctx-menu button:focus { background: #e8f1f5; outline: none; }

.brand-logo { height: 1.5em; width: auto; vertical-align: -0.3em; margin-right: 4px; }
.login-logo { display: block; width: min(260px, 70%); height: auto; margin: 0 auto 14px; }
.app-footer { text-align: center; font-size: 12px; color: #6b7a88; padding: 18px 12px 24px; }

.drag-ghost { position: fixed; z-index: 55; pointer-events: none; background: rgba(26,93,119,.28); border: 2px dashed #1a5d77; border-radius: 8px; font-size: 12px; color: #0d3c50; padding: 4px 8px; overflow: hidden; white-space: nowrap; }
.drag-ghost.bad { background: rgba(190,40,40,.22); border-color: #be2828; color: #7a1010; }
body.dragging-stay, body.dragging-stay * { cursor: grabbing !important; user-select: none; }
.price-box { border: 1px solid #cfd8df; border-radius: 10px; padding: 10px 12px; margin: 12px 0 0; }
.price-box legend { font-weight: 600; padding: 0 6px; }
.price-box .radio { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; }
.price-box .radio input { width: auto; margin-top: 3px; }
.modal .field.two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.modal .muted { color: #5b6b78; font-size: 13px; }

.invoice-box { border: 1px solid #d9a441; background: #fff8e6; border-radius: 10px; padding: 10px 12px; margin-top: 12px; }
.invoice-box label { display: block; margin-top: 8px; } .invoice-box input[type=text], .invoice-box input:not([type]) { width: 100%; }
.invoice-box .radio { display: flex; gap: 8px; align-items: flex-start; } .invoice-box .radio input { width: auto; margin-top: 3px; }
.modal { max-height: calc(100vh - 32px); overflow-y: auto; }
.modal-back { align-items: start; overflow-y: auto; }

.catalog-admin { grid-column: 1 / -1; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); margin-top: 18px; }
.modal.wide { width: min(560px, 100%); }
.modal textarea, .modal select, .modal input:not([type=checkbox]):not([type=radio]) { width: 100%; }
.prod-line { margin: 6px 0; } .prod-line .pre { margin-left: 26px; font-size: 13px; }
.comp-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .comp-line label { flex: 1; margin: 0; } .price-box .comp-line .radio { flex-wrap: wrap; row-gap: 0; } .comp-line .radio small { flex-basis: 100%; padding-left: 24px; } .comp-line label:not(.radio) small { display: block; } .modal .comp-line input[type=number] { width: 72px; flex: none; }
.modal input[readonly] { background: rgba(120, 120, 120, .1); color: inherit; cursor: default; }
.tag { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: 8px; background: rgba(120, 120, 120, .15); vertical-align: middle; }
.row-actions input[type=month] { padding: 8px; border: 1px solid #cfd8df; border-radius: 8px; }

.extra-box { margin: 6px 0; } .extra-box .notice { margin: 6px 0; }

/* Buchungsformular in Schritten, Herkünfte, automatische Mails */
.booking-flow .step { border: 1px solid #d5dee5; border-radius: 12px; padding: 4px 14px 10px; margin: 12px 0 0; min-width: 0; }
.booking-flow .step legend { font-weight: 700; padding: 0 8px; color: #185d91; }
.booking-flow .choice { display: flex; gap: 22px; flex-wrap: wrap; margin: 8px 0; }
.booking-flow .radio { display: flex; gap: 8px; align-items: center; font-weight: 500; }
.booking-flow .radio input { width: auto; }
.booking-flow textarea { width: 100%; }
#customerSelection button { margin-left: 8px; padding: 4px 10px; }
#roomHint { display: block; margin-top: 4px; }
.ch-rows { display: grid; gap: 8px; margin-bottom: 10px; }
.ch-row { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(160px, 2fr) auto; gap: 8px; align-items: center; }
.ch-row input[type=text], .ch-row input:not([type]) { width: 100%; border: 1px solid #c8d2da; border-radius: 9px; padding: 9px; }
.ch-row .radio { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.auto-panel .auto-kind { margin-top: 14px; }
.letter-preview { white-space: pre-wrap; font: inherit; font-size: 13px; line-height: 1.5; background: var(--surface, #f7f9fa); border: 1px solid var(--line, #d9e1e6); border-radius: 8px; padding: 10px 12px; margin: 8px 0; max-height: 420px; overflow: auto; }
.sig-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.auto-panel h3 { margin-top: 18px; }
.auto-panel textarea { width: 100%; border: 1px solid #c8d2da; border-radius: 9px; padding: 10px; }
.auto-panel code, #cfgForm code { background: #eef3f6; border-radius: 4px; padding: 0 4px; font-size: .85em; }
.auto-mails { margin: 14px 0; }
@media (max-width: 700px) { .ch-row { grid-template-columns: 1fr; } }

/* Finanzen */
.fin-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:980px){.fin-layout{grid-template-columns:1fr}}
.fin-side{background:#f8fafb;border:1px solid #dce3e8;border-radius:14px;padding:14px;position:sticky;top:14px;max-height:calc(100vh - 28px);display:flex;flex-direction:column}
@media (max-width:980px){.fin-side{position:static;max-height:none}}
.fin-side-head{display:flex;justify-content:space-between;align-items:baseline}.fin-side-head h2{font-size:16px;margin:0}
.fin-search{border:1px solid #c8d2da;border-radius:99px;padding:9px 14px;width:100%;margin:10px 0 6px;background:#fff}
.fin-acc-list{overflow:auto;display:grid;gap:3px;padding-right:2px}
.fin-group{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7a8a95;margin:12px 4px 4px}
.fin-acc{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"no name" "no bal";gap:0 10px;text-align:left;border:0;border-left:3px solid transparent;border-radius:8px;background:transparent;padding:7px 9px;color:inherit}
.fin-acc:hover{background:#eef3f6}.fin-acc.sel{background:#fff;border-left-color:#c69431;box-shadow:0 2px 8px #1c324014}
.fin-acc.off{opacity:.55}
.fin-no{grid-area:no;align-self:center;font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;background:#e3eaef;color:#233949;border-radius:6px;padding:4px 6px;min-width:46px;text-align:center}
.fin-acc.sel .fin-no{background:#112e48;color:#fff}
.fin-name{grid-area:name;font-weight:650;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fin-name small{font-weight:600;color:#7a8a95;font-size:10px}
.fin-bal{grid-area:bal;font-size:12px;color:#526473;font-variant-numeric:tabular-nums}.fin-bal.neg{color:#8a5a12}
.fin-main{min-width:0}
.fin-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;align-items:end}.fin-head h1{margin:2px 0 0;font-size:26px}.fin-head .eyebrow{margin:0}
.fin-actions{display:flex;flex-wrap:wrap;gap:8px}.fin-actions .fin-out{background:#8a5a12}
.fin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}
@media (max-width:700px){.fin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fin-kpi{background:#fff;border:1px solid #dce3e8;border-radius:12px;padding:12px 14px}.fin-kpi span{display:block;font-size:12px;color:#657782}.fin-kpi strong{display:block;font-size:19px;margin-top:4px;font-variant-numeric:tabular-nums}
.fin-kpi.in strong{color:#08715d}.fin-kpi.out strong{color:#8a5a12}.fin-kpi.total{background:#112e48;border-color:#112e48;color:#fff}.fin-kpi.total span{color:#bad0df}
.fin-range{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-bottom:12px}.fin-range label{display:flex;gap:6px;align-items:center;font-size:14px;color:#526473}.fin-range input{border:1px solid #c8d2da;border-radius:8px;padding:6px 8px}
.fin-chips{display:flex;gap:6px;flex-wrap:wrap}.fin-chip{border:1px solid #c8d2da;background:#fff;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:650;color:#233949}.fin-chip.on{background:#185d91;border-color:#185d91;color:#fff}
.fin-scroll{background:#fff;border:1px solid #dce3e8;border-radius:14px;overflow:auto}
.fin-table{width:100%;border-collapse:collapse;font-size:.92rem}
.fin-table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7a8a95;background:#f8fafb;padding:10px 12px;text-align:left}
.fin-table td{padding:10px 12px;text-align:left;border-top:1px solid #edf1f4;vertical-align:top}
.fin-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-table tr.off{opacity:.55}
.fin-date{white-space:nowrap;color:#526473}.fin-text{font-weight:600}
.fin-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:#7a8a95;margin-top:2px}
.fin-tag{font-size:11px;font-weight:700;background:#f4e6e6;color:#a82929;border-radius:99px;padding:1px 7px}
.fin-amt small{font-size:10px;font-weight:800;border-radius:4px;padding:1px 4px;margin-right:2px}.fin-amt.in small{background:#e7f6f1;color:#08715d}.fin-amt.out small{background:#f8eedd;color:#8a5a12}
.fin-run{color:#526473}.fin-act{text-align:right}
.fin-table .link{background:none;border:0;padding:0;color:#185d91;font-weight:650;font-size:13px}.fin-table .link:hover{text-decoration:underline}
.fin-empty{color:#657782;text-align:center!important;padding:28px 12px!important}
.fin-setup{margin-top:26px;border-top:1px solid #dce3e8;padding-top:14px}.fin-setup>summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;font-weight:750;list-style:none}.fin-setup>summary::before{content:"▸";color:#7a8a95}.fin-setup[open]>summary::before{content:"▾"}.fin-setup>summary small{font-weight:500;color:#657782}
.pay-box{margin-top:14px;padding-top:10px;border-top:1px solid rgba(120,130,140,.3)}
/* Rezeptionsverkauf */
.sale-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;align-items:start;margin-bottom:22px}
@media (max-width:980px){.sale-layout{grid-template-columns:1fr}}
.sale-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:8px 0 18px}
.sale-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:#f8fafb;border:1px solid #dce3e8;border-radius:12px;padding:14px;cursor:pointer;min-height:72px}
.sale-tile:hover,.sale-tile:focus-visible{border-color:#2f6f8f;background:#fff}
.sale-tile small{color:#5b6b78}
.sale-qty{display:flex;align-items:center;gap:8px}.sale-qty button{min-width:34px;padding:4px 8px}.sale-qty b{min-width:20px;text-align:center}
.sale-total{display:flex;justify-content:space-between;font-size:18px;border-top:1px solid #dce3e8;padding-top:10px;margin-top:10px}
.sale-cart #saleReceipt:not(:empty){margin-top:16px;border-top:1px solid #dce3e8;padding-top:14px}

.receipt-preview{background:#fff;border:1px solid #dce3e8;border-radius:10px;padding:16px;margin-bottom:12px}
/* Kopfleiste: auf allen Seiten fest oben */
header.top{position:sticky;top:0;z-index:60}
.top-right{flex-wrap:wrap;justify-content:flex-end}
.top .nav-btn.active{background:#112e48;color:#fff;border-color:#112e48;cursor:default}
body[data-layout="zen"] .top .nav-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}
@media print{header.top{display:none}}
.top .brand{white-space:nowrap;flex-shrink:0}.top .brand small{white-space:normal}
.top-right{gap:8px}.top .nav-btn{padding:8px 12px;font-size:14px;min-height:0}
/* Online-Updates: Wahlschalter */
.update-auto { margin: 14px 0; }
.update-channel { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0; padding: 10px 12px; border: 1px solid #dce3e8; border-radius: 10px; cursor: pointer; }
.update-channel input { width: auto; margin-top: 3px; }
.update-channel strong, .update-channel small { display: block; }
.update-channel small { color: #657782; margin-top: 2px; font-weight: 400; }
.update-channel:has(input:checked) { border-color: #185d91; background: #f1f7fc; }
.notice.warn { background: #fff1e6; color: #8a4512; }
.admin-main { min-width: 0; }
.admin-main .technical-row small, .admin-main .notice { overflow-wrap: anywhere; }
/* beta.42: Objekte */
.plan-table .cell.plan-group{min-height:0;padding:7px 10px;background:#eef3f7;font-size:12px;font-weight:800;color:#1e3a52;letter-spacing:.02em}
.plan-table .cell.plan-group small{display:inline;margin-left:8px;font-weight:500;color:#64748b}
.command-matrix .cell.plan-group{position:sticky;left:0;z-index:1}
.prop-block{border:1px solid #e1e7eb;border-radius:11px;padding:8px;margin:10px 0;display:grid;gap:8px}
.prop-block>.row{border:0;background:#f7f9fb}
.prop-units{padding-left:14px}
.mode-choices{grid-template-columns:1fr}
/* Belegungsmatrix: Balken über den ganzen Zeitraum (Mitte Anreisetag bis Mitte Abreisetag) und Zusammenfassung beim Überfahren */
.plan-table > .stay.bar { position: relative; z-index: 1; width: auto; min-width: 0; margin-top: 6px; margin-bottom: 6px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-align: left; align-self: stretch; }
.plan-table > .stay.bar small { overflow: hidden; text-overflow: ellipsis; }
.plan-table > .stay.bar:hover { filter: brightness(.96); outline: 2px solid #1a5d7755; outline-offset: 1px; z-index: 2; }
.plan-table .cell.taken { background: #fbfcfd; }
.stay-tip { position: fixed; z-index: 80; pointer-events: none; width: max-content; max-width: 360px; background: #fff; color: #17202c; border: 1px solid #cfd8df; border-radius: 10px; box-shadow: 0 12px 32px #0003; padding: 10px 12px; font-size: 12.5px; line-height: 1.4; }
.stay-tip-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; border-bottom: 1px solid #e5eaee; padding-bottom: 6px; margin-bottom: 6px; }
.stay-tip-head strong { font-size: 14px; }
.stay-tip-status { background: #e7f6f1; color: #08715d; border-radius: 5px; padding: 2px 6px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.stay-tip dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 0; }
.stay-tip dt { color: #5b6b78; }
.stay-tip dd { margin: 0; overflow-wrap: anywhere; }
.stay-tip-hint { margin: 8px 0 0; color: #7a8a96; font-size: 11px; }
/* beta.49: Belegungsplan wie eine Zimmerbelegung. Kopf mit Datum und Kalenderzeilen, Zimmerspalte links fest, Scrollen in beide Richtungen */
.plan { overflow: auto; max-height: 75vh; overscroll-behavior: contain; }
.command-matrix { padding: 0; overflow: hidden; }
.command-matrix .plan { height: auto; max-height: max(320px, calc(100vh - 250px)); }
.plan-table { position: relative; overflow: visible; }
.plan-table .cell { min-height: 48px; }
.plan-table .cell.head { position: sticky; top: 0; z-index: 6; min-height: 0; padding: 5px 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; line-height: 1.15; background: #f8fafc; border-bottom: 1px solid #cbd5e1; text-align: center; }
.plan-table .cell.head .hd-wd { font-size: 10px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .03em; }
.plan-table .cell.head strong { font-size: 14px; color: #0f172a; }
.plan-table .cell.head .hd-mon { font-size: 10px; color: #1e639b; font-weight: 800; }
.plan-table .cell.head.corner { left: 0; z-index: 9; align-items: flex-start; justify-content: flex-end; padding: 6px 10px; font-size: 12px; font-weight: 800; color: #526473; border-right: 2px solid #cbd5e1; }
.plan-table .cell.head.we { background: #eef2f6; }
.plan-table .cell.head.hol strong, .plan-table .cell.head.hol .hd-wd { color: #b91c1c; }
.plan-table .cell.head.today { background: #dbeafe; box-shadow: inset 0 -3px 0 #2563eb; }
.plan-table .cell.cal-label, .plan-table .cell.cal-day { position: sticky; z-index: 5; min-height: 24px; height: 24px; padding: 0; background: #fbfcfd; border-bottom: 1px solid #e2e8f0; }
.plan-table .cell.cal-label { left: 0; z-index: 8; padding: 0 10px; display: flex; align-items: center; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #64748b; border-right: 2px solid #cbd5e1; }
.plan-table .cell.cal-day.we { background: #f1f4f8; }
.plan-table .cal-item { position: sticky; z-index: 7; align-self: center; margin: 0 1px; height: 18px; line-height: 18px; padding: 0 6px; border-radius: 4px; font-size: 11px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: default; }
.plan-table .cal-item.ferien { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.plan-table .cal-item.event { background: #ede9fe; color: #5b21b6; border: 1px solid #ddd6fe; }
.plan-table .cal-item.holiday { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; z-index: 8; }
.plan-table .cal-item.cut-left { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.plan-table .cal-item.cut-right { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.plan-table .cell.room { position: sticky; left: 0; z-index: 4; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left; padding: 6px 10px; border-right: 2px solid #cbd5e1; background: #fbfcfd; }
.plan-table .cell.room strong { font-size: 16px; line-height: 1.1; color: #0f172a; }
.plan-table .cell.room small { display: block; margin-top: 2px; font-size: 11px; font-weight: 500; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.plan-table .cell.room .state { margin-top: 2px; font-size: 10px; color: #b91c1c; }
.plan-table .cell.plan-group { padding: 0; min-height: 0; }
.plan-table .cell.plan-group .plan-group-name { position: sticky; left: 0; display: inline-block; padding: 6px 10px; }
.plan-table .cell.we:not(.head):not(.cal-day) { background: #f6f8fb; }
.plan-table .cell.hol:not(.head):not(.cal-day) { background: #fdf3f3; }
.plan-table .cell.today:not(.head):not(.cal-day) { box-shadow: inset 2px 0 0 #93c5fd; }
.plan-table .cell.free.we:hover, .plan-table .cell.free.hol:hover { background: rgba(26,93,119,.10); }
.plan-table > .stay.bar { margin-top: 5px; margin-bottom: 5px; padding: 4px 7px; line-height: 1.2; font-size: 12px; font-weight: 700; }
.plan-table > .stay.bar small { display: block; font-weight: 500; font-size: 10.5px; opacity: .85; white-space: nowrap; }
.plan-tools { flex-wrap: wrap; align-items: center; }
.plan-tools .plan-nav { min-width: 38px; padding: 8px 10px; }
.plan-tools .plan-start, .plan-tools .plan-length { border: 1px solid #c8d2da; border-radius: 9px; padding: 8px 10px; background: #fff; font: inherit; font-size: 14px; }
/* Kalender in der Verwaltung */
.cal-admin-list { display: grid; gap: 6px; max-height: 420px; overflow: auto; margin: 10px 0; }
.cal-admin-list .row { padding: 8px 10px; }
.cal-kind { display: inline-block; font-size: 11px; font-weight: 800; border-radius: 5px; padding: 1px 6px; margin-right: 6px; }
.cal-kind.ferien { background: #dcfce7; color: #166534; } .cal-kind.veranstaltung { background: #ede9fe; color: #5b21b6; } .cal-kind.sonstiges { background: #e2e8f0; color: #334155; }
/* Haussafe in der Buchungsakte (beta.50): Zeilen umbrechen, damit Quittung/Stornieren in schmalen Spalten Platz haben */
.safe-box .row{flex-wrap:wrap;align-items:flex-start}.safe-box .row>span:first-child{flex:1 1 180px;min-width:0;overflow-wrap:anywhere}.safe-box .row-actions{justify-content:flex-start}.safe-box .receipt-preview{max-width:100%;overflow:auto}
/* Kalender im Plan: mehrzeilige Einträge und wählbare Farben (Folgeversion zu beta.49) */
.plan-table .cell.cal-label, .plan-table .cell.cal-day { height: auto; }
.plan-table .cal-item { height: auto; min-height: 18px; line-height: 13px; padding: 2px 5px; white-space: normal; align-self: stretch; margin: 2px 1px; display: flex; align-items: center; overflow-wrap: anywhere; }
.plan-table .cal-item > span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.plan-table .cal-item.col-rot, .cal-kind.col-rot, .cal-swatch.col-rot { background: #fee2e2; color: #991b1b; border-color: #fca5a5; }
.plan-table .cal-item.col-orange, .cal-kind.col-orange, .cal-swatch.col-orange { background: #ffedd5; color: #9a3412; border-color: #fdba74; }
.plan-table .cal-item.col-gelb, .cal-kind.col-gelb, .cal-swatch.col-gelb { background: #fef9c3; color: #854d0e; border-color: #fde047; }
.plan-table .cal-item.col-gruen, .cal-kind.col-gruen, .cal-swatch.col-gruen { background: #dcfce7; color: #166534; border-color: #86efac; }
.plan-table .cal-item.col-tuerkis, .cal-kind.col-tuerkis, .cal-swatch.col-tuerkis { background: #ccfbf1; color: #115e59; border-color: #5eead4; }
.plan-table .cal-item.col-blau, .cal-kind.col-blau, .cal-swatch.col-blau { background: #dbeafe; color: #1e40af; border-color: #93c5fd; }
.plan-table .cal-item.col-lila, .cal-kind.col-lila, .cal-swatch.col-lila { background: #ede9fe; color: #5b21b6; border-color: #c4b5fd; }
.plan-table .cal-item.col-pink, .cal-kind.col-pink, .cal-swatch.col-pink { background: #fce7f3; color: #9d174d; border-color: #f9a8d4; }
.plan-table .cal-item.col-grau, .cal-kind.col-grau, .cal-swatch.col-grau { background: #e2e8f0; color: #334155; border-color: #cbd5e1; }
.cal-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; border: 1px solid #cbd5e1; background: #ede9fe; }
.cal-swatch.ferien { background: #dcfce7; } .cal-swatch.sonstiges { background: #e2e8f0; }
.cal-color-pick { width: auto; min-width: 0; padding: 4px 6px; font-size: 12px; }
.cal-admin-list .row.cal-pick { display: flex; gap: 10px; align-items: flex-start; justify-content: flex-start; cursor: pointer; text-align: left; }
.cal-pick > span { flex: 1; min-width: 0; } .cal-pick.known { opacity: .6; }
.cal-pick input { margin-top: 3px; width: auto; }
.cal-pick a, .cal-admin-list a { overflow-wrap: anywhere; }
.cal-research-result { border: 1px solid #e2e8f0; border-radius: 9px; padding: 10px 12px; margin: 10px 0 16px; background: #fbfcfd; }
/* Reinigungszustand an der Zimmernummer (beta.51): grün sauber, rot schmutzig */
.plan-table .cell.room.clean > strong { color: #15803d; }
.plan-table .cell.room.dirty > strong { color: #dc2626; }
.plan-table .cell.room.clean { box-shadow: inset 4px 0 0 #22c55e; }
.plan-table .cell.room.dirty { box-shadow: inset 4px 0 0 #ef4444; }
.plan-table .cell.room.clickable { cursor: pointer; }
.plan-table .cell.room.clickable:hover > strong, .plan-table .cell.room.clickable:focus-visible > strong { text-decoration: underline; }
.room-state { display: grid; gap: 8px; }
.modal .field.room-state .room-state-opt { display: flex; flex-direction: row; justify-content: flex-start; text-align: left; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 9px; cursor: pointer; }
.modal .field.room-state .room-state-opt input { display: inline-block; width: auto; flex: 0 0 auto; margin: 3px 0 0; }
.modal .room-state-opt > span { flex: 1; }
#roomStateReason[hidden] { display: none; }
.room-state-opt strong, .room-state-opt small { display: block; } .room-state-opt small { color: #64748b; }
.room-state-opt.clean strong { color: #15803d; } .room-state-opt.dirty strong { color: #dc2626; } .room-state-opt.out_of_order strong { color: #475569; }

/* Parallelbetrieb: gespiegelte Ibelsa-Aufenthalte, nur lesend */
.plan-table .stay.ibelsa{background:repeating-linear-gradient(135deg,#ede9fe,#ede9fe 8px,#e4ddfc 8px,#e4ddfc 16px)!important;color:#4c1d95!important;border:1px dashed #7c3aed!important;border-left:4px solid #7c3aed!important;box-shadow:none!important;cursor:default;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plan-table .stay.ibelsa.clash{border-color:#dc2626!important;color:#991b1b!important;background:#fee2e2!important}.mirror-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.plan-table .stay.from-ibelsa{border-style:dashed;border-left-style:solid}
/* beta.56: Stornieren im Kontextmenü, Abstand zwischen Zimmerkategorien, Hauszeile für Ferienhäuser */
.ctx-menu button.ctx-danger { color: #a82929; }
.ctx-menu button.ctx-danger:hover, .ctx-menu button.ctx-danger:focus { background: #fbeaea; }
.primary.danger, .modal-actions .primary.danger, form .primary.danger { background: #a82929; border-color: #a82929; color: #fff; }
.plan-table .cell.plan-gap { min-height: 0; height: 24px; padding: 0; background: #f3f6f8; border-right: 0; }
.plan-table .cell.plan-group.plan-house { background: #f4f1ea; color: #5a4512; }

/* Unser Gast */
.guest-chips{margin:4px 0 10px}.guest-chips .fin-chip{padding:4px 10px;font-size:12px}
.guest-no{min-width:38px}
.guest-more{font-size:12px;margin:8px 4px}
.guest-company{margin:4px 0 0;color:#526473;font-weight:650}
.guest-tag.in{background:#dff3ec;color:#08715d}.guest-tag.reg{background:#f6ead0;color:#7a5410}
.guest-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 22px}
.guest-contact small{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7a8a95;margin-bottom:2px}
.guest-contact span{overflow-wrap:anywhere}
.guest-h{font-size:17px;margin:22px 0 10px}
.guest-table td small{display:block;color:#7a8a95;font-size:12px}
.guest-table tr.guest-cancelled td{color:#8a97a1;text-decoration:line-through}
.guest-privacy{font-size:12px;margin-top:18px}
.guest-side .muted,#guestRecord .muted{color:#5b6b78}
#guestRecord .panel{margin-bottom:12px}
/* Berichte im Finanzbereich (beta.62) */
.rep-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px;border-bottom:1px solid #dce3e8;padding-bottom:10px}
.rep-tab{border:1px solid #c8d2da;background:#fff;border-radius:99px;padding:8px 14px;font-weight:700;font-size:14px;color:#233949}
.rep-tab.on{background:#112e48;border-color:#112e48;color:#fff}
.rep-tab[data-tab="konten"]{margin-left:auto}
@media (max-width:700px){.rep-tab[data-tab="konten"]{margin-left:0}}
.rep-bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-bottom:14px}.rep-bar label{display:flex;gap:6px;align-items:center;font-size:14px;color:#526473}.rep-bar input,.rep-bar select{border:1px solid #c8d2da;border-radius:8px;padding:7px 9px;background:#fff}
.rep-bar-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.rep-head{margin:4px 0 16px}.rep-head h1{margin:2px 0 4px;font-size:26px}.rep-head .eyebrow{margin:0}.rep-head p.muted{margin:4px 0;max-width:900px}
.rep-head-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;align-items:end}
.rep-head progress{width:min(420px,100%);height:10px}
.rep-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.rep-grid{grid-template-columns:1fr}}
.fin-table tfoot th,.fin-table tfoot td{background:#f8fafb;border-top:2px solid #dce3e8;color:#17202c;font-size:13px;letter-spacing:0;text-transform:none;padding:10px 12px}
.fin-table th small{display:block;font-weight:600;text-transform:none;letter-spacing:0;color:#9aa8b2}
.rep-src{font-size:10px;font-weight:800;background:#efe8f7;color:#5b3d86;border-radius:99px;padding:1px 7px;vertical-align:middle}
.rep-notes{margin-top:16px;background:#fff8e9;border-radius:12px;padding:10px 14px;color:#6d4c12;font-size:13px}.rep-notes summary{cursor:pointer;font-weight:750}.rep-notes ul{margin:8px 0 0;padding-left:18px}.rep-notes li{margin:3px 0}
.rep-change{font-weight:800}.rep-change.up{color:#08715d}.rep-change.down{color:#a82929}.rep-neutral{color:#9aa8b2;font-size:12px}
.rep-years td.num{line-height:1.35}.rep-years td span,.rep-years td strong{display:block}.rep-prior{color:#7a8a95;font-size:12px;display:block}
.rep-years tr.is-current th,.rep-years tr.is-current td{background:#fffaf0}
.rep-years th[scope=row]{font-size:14px;text-transform:none;letter-spacing:0;color:#17202c;background:transparent;white-space:nowrap}
.rep-choice{display:flex;gap:6px;align-items:center;font-size:14px;color:#526473}.rep-choice select{border:1px solid #c8d2da;border-radius:8px;padding:6px 8px}
.rep-set{display:grid;gap:8px;max-width:640px;margin-top:10px}.rep-set label{display:flex;gap:8px;align-items:center;font-weight:650}.rep-set input[type=date]{border:1px solid #c8d2da;border-radius:8px;padding:6px 8px}.rep-set .primary{justify-self:start}
.rep-foot{font-size:13px;margin-top:10px}
.rep-warn{color:#8a5a12;font-weight:800}.rep-late{color:#a82929;font-weight:800}
@media print{.rep-tabs,.rep-bar,.fin-actions,.rep-choice,.rep-notes:not([open]),#repSetForm,.flash{display:none!important}.content{padding:0;max-width:none}.fin-scroll{overflow:visible;border:0}.fin-kpi{box-shadow:none;break-inside:avoid}}
/* Managerbericht im Layout des NHZ Finanzcockpit 1.5.0 (beta.66) */
.cp{--cp-green:#2f5d4c;--cp-dark:#21392f;--cp-light:#cfd9d2;--cp-gold:#b0803c;--cp-gold-t:#8a5a1d;--cp-track:#f0f2ee;--cp-line:#dfe5df;--cp-mute:#6b7670;color:#17221d}
.cp .rep-head h1{color:#17221d}
.cp-eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-green);margin:0 0 4px}
.cp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:8px 0 16px}
@media (max-width:1150px){.cp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cp-cards{grid-template-columns:1fr}}
.cp-card{background:#fff;border:1px solid var(--cp-line);border-radius:16px;padding:18px 20px}
.cp-card h2{font-size:17px;margin:0 0 6px;padding-bottom:12px;border-bottom:1px solid var(--cp-line)}
.cp-kpi{padding:12px 0;border-bottom:1px solid var(--cp-line)}.cp-kpi:last-child{border-bottom:0}
.cp-kpi span{display:block;font-size:13px;color:var(--cp-mute)}
.cp-kpi strong{display:block;font-size:30px;font-weight:800;letter-spacing:-.02em;margin:4px 0;font-variant-numeric:tabular-nums}
.cp-kpi small{display:block;font-size:12.5px;color:var(--cp-mute)}
.cp-dark{background:var(--cp-dark);border-color:var(--cp-dark);color:#fff}
.cp-dark .cp-eyebrow{color:#a9c8b5}.cp-dark h2{border:0;font-size:22px;padding:0;margin:6px 0 10px}.cp-dark p{color:#d5e2da;font-size:13.5px;margin:8px 0}
.cp-dark hr{border:0;border-top:1px solid #3b564a;margin:16px 0}
.cp-big{display:block;font-size:34px;font-weight:800;letter-spacing:-.02em;margin:6px 0;font-variant-numeric:tabular-nums}
.cp-mid{display:block;font-size:17px;margin:6px 0}
.cp-next-card{background:#fff;border:1px solid var(--cp-line);border-left:6px solid var(--cp-gold);border-radius:16px;padding:18px 22px;margin-bottom:18px}
.cp-next-card h2{margin:4px 0 8px;font-size:20px}.cp-next-card p{margin:6px 0 0;color:var(--cp-mute)}
.cp-panel{background:#fff;border:1px solid var(--cp-line);border-radius:18px;padding:22px 24px;margin:18px 0}
.cp-panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.cp-panel-head h2{margin:2px 0 10px;font-size:24px}.cp-right{text-align:right;color:var(--cp-mute);margin:0;font-size:14px;line-height:1.6}
.cp-legend{display:flex;gap:16px;font-size:14px;color:var(--cp-mute)}.cp-legend span{display:flex;gap:6px;align-items:center}.cp-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.cp-legend i.previous{background:var(--cp-light)}.cp-legend i.current{background:var(--cp-green)}.cp-legend i.next{background:var(--cp-gold)}
.cp-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 48px;margin-top:10px}
@media (max-width:800px){.cp-bars{grid-template-columns:1fr}}
.cp-month h3{margin:0 0 8px;font-size:15px}.cp-note{margin:0 0 8px;font-size:13px;color:#33413a}
.cp-bar-row{display:grid;grid-template-columns:42px minmax(0,1fr) 120px;gap:10px;align-items:center;margin:6px 0;font-size:13px}
.cp-bar-row strong{text-align:right;font-variant-numeric:tabular-nums}
.cp-track{height:22px;background:var(--cp-track);border-radius:5px;overflow:hidden}
.cp-fill{display:block;height:100%;width:0;border-radius:5px}
.cp-fill.previous{background:var(--cp-light)}.cp-fill.current{background:var(--cp-green)}.cp-fill.next{background:var(--cp-gold)}
.cp-fill.fut{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.38) 0 5px,transparent 5px 10px)}
.cp-foot{margin:18px 0 0;font-size:13px;color:var(--cp-mute)}
.cp-table{width:100%;border-collapse:collapse;font-size:14px}
.cp-table thead th{background:#f3f5f2;text-align:left;padding:14px 16px;font-size:14px;color:#17221d;vertical-align:bottom}
.cp-table thead th.num{text-align:right}.cp-table thead small{display:block;font-weight:400;color:var(--cp-mute);margin-top:2px}
.cp-table td,.cp-table tbody th,.cp-table tfoot th{padding:16px;border-top:1px solid var(--cp-line);vertical-align:middle}
.cp-table tbody th,.cp-table tfoot th{text-align:left;font-size:16px}.cp-table th small{display:block;font-weight:400;font-size:12.5px;color:var(--cp-mute);margin-top:4px}
.cp-table td.num{text-align:right;line-height:1.55;font-variant-numeric:tabular-nums}
.cp-prev{display:block;color:var(--cp-mute);font-size:13px}.cp-cur{display:block;font-size:16.5px}.cp-next{display:block;color:var(--cp-gold-t);font-size:13px}
.cp-table td .rep-change,.cp-table td .rep-neutral,.cp-state{display:block;margin-top:4px;font-size:12.5px}.cp-state{color:var(--cp-mute)}
.cp-table tr.is-current th,.cp-table tr.is-current td{background:#eef3ee}
.cp-table tfoot th,.cp-table tfoot td{background:#e6ece6;border-top:2px solid #bccbbf}
.cp .rep-change.up{color:#2b6b3f}.cp .rep-change.down{color:#a8322b}
.cp-quality{background:#f3ebe0;border:1px solid #e3d6c3;border-radius:12px;padding:14px 20px;margin:18px 0;color:#4c3b25}
.cp-quality summary{cursor:pointer;font-size:15px}.cp-quality ul{margin:10px 0 2px;padding-left:22px}.cp-quality li{margin:6px 0;line-height:1.5}
.cp-more{border-top:1px solid var(--cp-line);padding-top:16px;margin-top:22px}.cp-more summary{cursor:pointer;font-weight:800;font-size:16px}
.cp-more h3{margin:18px 0 6px;font-size:16px}.cp-calc{font-size:13px;color:#33413a;padding-left:20px}
.cp-hist{border-collapse:collapse;font-size:13px;min-width:860px}.cp-hist th{text-align:left;padding:6px;color:var(--cp-mute);font-weight:700}.cp-hist td{padding:4px 6px}
.cp-hist input{border:1px solid #c9d3cc;border-radius:7px;padding:6px 8px;width:100%;min-width:0;font:inherit}.cp-hist input[name=month]{min-width:140px}.cp-hist input[name=note]{min-width:260px}.cp-hist input[type=checkbox]{width:auto}
.cp-center{text-align:center}.cp-file{position:relative;overflow:hidden;display:inline-flex;align-items:center;cursor:pointer;border-radius:10px;padding:9px 14px;font-weight:700}
.cp-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.cp-brand{margin:26px 0 8px;font-size:13px;color:var(--cp-mute)}
@media print{.cp-more,.cp-brand{display:none!important}.cp-card,.cp-panel,.cp-next-card{break-inside:avoid}.cp-dark{background:#fff;color:#000;border-color:#999}.cp-dark p{color:#333}.cp-fill{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.cp-table td.num>*{white-space:nowrap}

/* beta.68: Ibelsa-Kontaktexport einlesen, Notiz aus Ibelsa in der Gästeakte */
.fin-side-head #guestImport { margin-left: auto; padding: 6px 10px; font-size: .85rem; }
.guest-import .fin-kpis { margin: 12px 0; }
.guest-import ul { margin: 8px 0 12px 18px; padding: 0; }
.guest-note { white-space: pre-line; margin-top: 10px; }
.guest-note small { display: block; color: var(--muted, #6b7280); }
.guest-side .fin-side-head{flex-wrap:wrap;gap:6px}
/* beta.69: Dubletten */
.guest-tools { display: flex; gap: 6px; margin-left: auto; }
.guest-tools .small { padding: 6px 10px; font-size: .85rem; }
.dup-table td small { display: block; color: var(--muted, #6b7280); }
.dup-table td:first-child, .dup-table td:nth-child(2), .dup-table td:nth-child(6) { text-align: center; }
.dup-group .row-actions { margin-top: 10px; }
/* beta.71: horizontal scrollen im Belegungsplan. Kopf (Datum, Kalender) lässt sich ziehen, am Rand läuft der Zeitraum tageweise weiter */
.plan { overscroll-behavior-x: contain; }
.plan-table .plan-grab { cursor: grab; user-select: none; touch-action: pan-y; }
body.plan-panning, body.plan-panning * { cursor: grabbing !important; user-select: none; }
/* beta.73: Balkenfarben nach Art (Übernachtung blau, Fasten grün) und Stand (gebucht hell, angereist kräftig, abgereist grau), mit Legende */
.plan-table > .stay.bar.k-night.st-booked, .legend-chip.k-night.st-booked { background: #dbeafe; color: #1e3a8a; border: 1px solid #bfdbfe; border-left: 4px solid #2563eb; box-shadow: none; }
.plan-table > .stay.bar.k-night.st-in, .legend-chip.k-night.st-in { background: #2563eb; color: #fff; border: 1px solid #1d4ed8; border-left: 4px solid #1e3a8a; box-shadow: none; }
.plan-table > .stay.bar.k-night.st-out, .legend-chip.k-night.st-out { background: #e9edf2; color: #475569; border: 1px solid #d5dce4; border-left: 4px solid #93c5fd; box-shadow: none; }
.plan-table > .stay.bar.k-fasten.st-booked, .legend-chip.k-fasten.st-booked { background: #dcfce7; color: #14532d; border: 1px solid #bbf7d0; border-left: 4px solid #16a34a; box-shadow: none; }
.plan-table > .stay.bar.k-fasten.st-in, .legend-chip.k-fasten.st-in { background: #16a34a; color: #fff; border: 1px solid #15803d; border-left: 4px solid #14532d; box-shadow: none; }
.plan-table > .stay.bar.k-fasten.st-out, .legend-chip.k-fasten.st-out { background: #e9edf2; color: #475569; border: 1px solid #d5dce4; border-left: 4px solid #86efac; box-shadow: none; }
/* Ibelsa-Spiegel: gleiche Farben, gestrichelter Rand als Kennzeichen */
.plan-table .stay.bar.ibelsa.k-night.st-booked { background: #dbeafe !important; color: #1e3a8a !important; border: 1px dashed #2563eb !important; border-left: 4px solid #2563eb !important; }
.plan-table .stay.bar.ibelsa.k-night.st-in { background: #2563eb !important; color: #fff !important; border: 1px dashed #1e3a8a !important; border-left: 4px solid #1e3a8a !important; }
.plan-table .stay.bar.ibelsa.k-night.st-out { background: #e9edf2 !important; color: #475569 !important; border: 1px dashed #93c5fd !important; border-left: 4px solid #93c5fd !important; }
.plan-table .stay.bar.ibelsa.k-fasten.st-booked { background: #dcfce7 !important; color: #14532d !important; border: 1px dashed #16a34a !important; border-left: 4px solid #16a34a !important; }
.plan-table .stay.bar.ibelsa.k-fasten.st-in { background: #16a34a !important; color: #fff !important; border: 1px dashed #14532d !important; border-left: 4px solid #14532d !important; }
.plan-table .stay.bar.ibelsa.k-fasten.st-out { background: #e9edf2 !important; color: #475569 !important; border: 1px dashed #86efac !important; border-left: 4px solid #86efac !important; }
/* beta.123: abgereiste Buchungen schraffiert (feine Streifen in der Farbe der Art, Grundfarbe bleibt), Optionen bleiben grob gestreift */
.plan-table > .stay.bar.k-night.st-out, .legend-chip.k-night.st-out { background-image: repeating-linear-gradient(45deg, rgba(37,99,235,.28) 0 2px, transparent 2px 7px); }
.plan-table > .stay.bar.k-fasten.st-out, .legend-chip.k-fasten.st-out { background-image: repeating-linear-gradient(45deg, rgba(22,163,74,.30) 0 2px, transparent 2px 7px); }
.plan-table .stay.bar.ibelsa.k-night.st-out { background-image: repeating-linear-gradient(45deg, rgba(37,99,235,.28) 0 2px, transparent 2px 7px) !important; }
.plan-table .stay.bar.ibelsa.k-fasten.st-out { background-image: repeating-linear-gradient(45deg, rgba(22,163,74,.30) 0 2px, transparent 2px 7px) !important; }
.plan-table .stay.bar.st-out { text-shadow: 0 0 2px #e9edf2, 0 0 2px #e9edf2; }
.plan-table .stay.bar.ibelsa.clash { background: #fee2e2 !important; color: #991b1b !important; border-color: #dc2626 !important; }
.plan-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; padding: 8px 16px; font-size: 12px; color: #475569; border-top: 1px solid #e2e8f0; background: #fff; }
.plan-legend .legend-group { display: inline-flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.plan-legend b { font-weight: 800; margin-right: 2px; }
.legend-chip { display: inline-block; border-radius: 5px; padding: 2px 8px; font-weight: 700; font-size: 11.5px; }
.legend-chip.opt { background: repeating-linear-gradient(135deg,#8aa6bd,#8aa6bd 6px,#6f8da6 6px,#6f8da6 12px); color: #fff; }
.legend-chip.ib { border-style: dashed; border-left-style: solid; }
/* Aus Ibelsa übernommene Buchungen (beta.72): Farben wie alle Buchungen, gestrichelter Rand als Kennzeichen */
.plan-table > .stay.bar.from-ibelsa { border-top-style: dashed !important; border-right-style: dashed !important; border-bottom-style: dashed !important; }

/* Ibelsa-Archiv (beta.74) */
.arc-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.arc-bar label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;min-width:0;max-width:100%}.arc-bar select,.arc-bar input{max-width:100%;min-width:0}.arc-row{cursor:pointer}.arc-row:hover td{background:rgba(124,58,237,.06)}.arc-doc{margin-top:16px}.arc-versions{font-size:.85rem;color:var(--muted,#64748b);padding-left:18px}.arc-raw pre{max-height:320px;overflow:auto;font-size:.75rem;white-space:pre-wrap;word-break:break-all}
@media print{body.print-arc .rep-head,body.print-arc .rep-bar,body.print-arc #arcList,body.print-arc .arc-raw,body.print-arc .arc-doc .fin-actions,body.print-arc .rep-tabs,body.print-arc header.top{display:none!important}}

/* Rechnungsbeleg (beta.75). Der Block zwischen den Markierungen ist identisch mit InvoiceDoc::CSS (E-Mail-Anhang). */
/* invoice-css */
.inv{font:13px/1.45 Arial,Helvetica,sans-serif;color:#111;background:#fff;max-width:760px;margin:0 auto;padding:28px 32px}.inv-head{text-align:right;margin-bottom:18px}.inv-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.inv-to small{display:block;font-size:9px;color:#555;border-bottom:1px solid #999;margin-bottom:6px;padding-bottom:2px}.inv-to p{margin:0;min-height:90px}.inv-meta{display:grid;grid-template-columns:auto auto;gap:2px 14px;margin:0;align-content:start}.inv-meta dt{color:#555}.inv-meta dd{margin:0;text-align:right}.inv-title{font-size:20px;margin:26px 0 8px}.inv-intro,.inv-place{margin:4px 0 10px}.inv table{width:100%;border-collapse:collapse}.inv th{text-align:left;font-weight:600;border-bottom:1px solid #111;padding:4px 6px}.inv td{padding:4px 6px;border-bottom:1px solid #ddd;vertical-align:top}.inv .num{text-align:right;white-space:nowrap}.inv-pos{width:32px}.inv-sums{margin:14px 0 0 auto;max-width:400px}.inv-vat{font-size:12px}.inv-total{display:flex;justify-content:space-between;font-size:16px;border-top:2px solid #111;border-bottom:2px solid #111;padding:6px;margin:10px 0 4px}.inv-small,.inv-note{font-size:11px;color:#444;margin:4px 0}.inv-pay{margin:16px 0 6px;font-weight:600}.inv-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;font-size:9.5px;color:#444;border-top:1px solid #999;margin-top:30px;padding-top:8px}.inv-copy{font:700 13px Arial,Helvetica,sans-serif;letter-spacing:.3em;text-align:center;border:2px solid #111;padding:4px;margin:0 auto 8px;max-width:760px}.inv-void{color:#b00;border-color:#b00}.inv-info{border:1px solid #111;padding:6px 8px;font-weight:600;margin:6px 0 10px}@media(max-width:600px){.inv{padding:14px}.inv-foot{grid-template-columns:1fr 1fr}.inv-items{font-size:12px}}
/* /invoice-css */
/* tse-css */
.tse-block{font-family:Arial,Helvetica,sans-serif;display:flex;gap:12px;align-items:flex-start;border:1px solid #999;padding:8px;margin:14px 0 6px;font-size:10px;line-height:1.35;color:#222;break-inside:avoid}.tse-qr-box{flex:0 0 auto}.tse-qr{width:120px;height:120px;display:block}.tse-title{font-weight:700;margin:0 0 4px}.tse-data{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;margin:0}.tse-data dt{color:#555}.tse-data dd{margin:0;word-break:break-all}.tse-note{margin:4px 0 0;font-weight:700}.tse-fail{display:block;border-color:#b00;color:#b00}.tse-fail p{margin:2px 0}
/* /tse-css */
.inv-tse{max-width:760px;margin:0 auto;padding:0 32px 20px;background:#fff}
.tse-preview{background:#fff;color:#111;padding:8px;border-radius:6px;max-width:560px}
#tseAdmin fieldset{min-width:0}#tseAdmin .technical-row small,#tseAdmin .row small{overflow-wrap:anywhere}
.inv-sheet{background:#fff;border:1px solid #d8d8d8;border-radius:6px;margin:14px 0;overflow-x:auto}
.inv-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.inv-bar .muted{max-width:60ch;margin:4px 0 0}
.inv-hist{margin:8px 0}.inv-hist ul{margin:6px 0;padding-left:18px}.inv-hist li{margin:4px 0}.inv-hist code{font-size:11px;color:#666}
.co-form fieldset{border:1px solid #ddd;border-radius:6px;margin:0 0 12px;padding:8px 12px 4px}.co-form legend{font-weight:600;padding:0 4px}
.co-preview{margin-top:14px}.co-preview .inv-foot{margin-top:6px;background:#fff;padding:8px;border-radius:6px}
button.link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.inv-sheet .inv p,.inv-sheet .inv span,.inv-sheet .inv strong,.inv-sheet .inv td,.inv-sheet .inv th{color:#111}.inv-sheet .inv .inv-small,.inv-sheet .inv .inv-note,.inv-sheet .inv-foot div,.inv-sheet .inv-to small{color:#444}
.inv-print{display:none}
.offer-lines{display:grid;gap:6px;margin:4px 0 8px}.offer-line{display:grid;grid-template-columns:minmax(0,1fr) 64px 110px 72px 36px;gap:6px}.offer-line input,.offer-line select{min-width:0}
@media(max-width:600px){.offer-line{grid-template-columns:minmax(0,1fr) 56px 90px;}.offer-line select{grid-column:1/3}}.modal.inv-modal{width:min(880px,100%)}
@media print{body.print-inv>*:not(.inv-print){display:none!important}body.print-inv .inv-print{display:block;background:#fff}body.print-inv .inv{max-width:none;padding:0}@page{margin:12mm}}

/* zb-css */.zb{font-family:Arial,Helvetica,sans-serif;max-width:340px;font-size:12px;line-height:1.35;color:#111}.zb-title{font-weight:700;font-size:14px;margin:8px 0 4px}.zb-sub{font-weight:700;margin:10px 0 2px;border-bottom:1px solid #999}.zb-table{width:100%;border-collapse:collapse}.zb-table td{padding:1px 0;vertical-align:top}.zb-num{text-align:right;white-space:nowrap;padding-left:8px}.zb-small td{color:#555;font-size:11px}.zb-sum td{font-weight:700}.zb-warn td{color:#b00;font-weight:700}.zb-note{margin:8px 0 0}.zb-foot{margin:10px 0 0;font-size:10px;color:#555;word-break:break-all}/* /zb-css */
.zb-preview{border:1px solid var(--line, #ddd);border-radius:8px;padding:12px;margin:12px 0;background:#fff;overflow-x:auto}
.zb-count{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;margin:6px 0 10px}.zb-count label{display:flex;flex-direction:column;gap:2px;font-size:13px}.zb-count input{width:100%}.zb-calc .row input{max-width:120px;text-align:right}
.k-steps{margin:8px 0 0 18px;line-height:1.6}

/* Lizenz & Abo (beta.81) */
.license-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 12px 0; }
.license-tier { position: relative; display: flex; flex-direction: column; gap: 4px; border: 1px solid #dce3e8; border-radius: 12px; padding: 16px; background: #fff; }
.license-tier.recommended { border-color: #185d91; box-shadow: 0 0 0 2px #185d9126; }
.license-tier h3 { margin: 0; font-size: 16px; }
.license-tier .badge { align-self: flex-start; margin-bottom: 4px; }
.license-tier p { margin: 0; }
.license-price { font-size: 26px; font-weight: 800; color: #17202c !important; }
.license-price small { font-size: 13px; font-weight: 600; color: #657782; }
.license-tier .button-link { margin-top: auto; display: inline-block; text-align: center; text-decoration: none; }
.license-tier .button-link:first-of-type { margin-top: 10px; }
.license-admin h3 { margin: 18px 0 4px; }

/* Kassenoberfläche (beta.82): Vollbild für zweiten Monitor und Touchscreen, große Schaltflächen (mindestens 56 px). */
/* Kassenoberfläche (beta.82). Seit beta.100 wächst sie mit dem Bildschirm: Grundschrift aus Breite und Höhe (1024 × 768 ergibt 16 px),
   alle Maße in em. Kacheln, Zimmer und Bonzeilen scrollen nicht, sondern blättern seitenweise (app.js, posFit). */
body.pos-mode{background:#eef2f5;overflow:hidden;font-size:clamp(13px,min(1.6vw,2.1vh),28px)}body.pos-mode .app-footer{display:none}
.pos{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation;font-size:1em}
.pos button{touch-action:manipulation;font-size:1em}
.pos-top{display:flex;align-items:center;gap:.75em;padding:.45em .8em;background:#112e48;color:#fff;flex:0 0 auto;min-width:0}
.pos-brand{display:flex;align-items:center;gap:.55em;font-size:1.15em;min-width:0;white-space:nowrap}.pos-brand img{width:1.6em;height:1.6em}
.pos-terminal{background:#c69431;color:#112e48;border-radius:999px;padding:.15em .7em;font-size:.82em;font-weight:700;max-width:9em;overflow:hidden;text-overflow:ellipsis}
.pos-who{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;font-size:.85em;line-height:1.25;opacity:.9;white-space:nowrap;min-width:0}
.pos-who span{max-width:12em;overflow:hidden;text-overflow:ellipsis}
.pos-actions{display:flex;gap:.4em;flex:0 0 auto}
.pos-btn{min-height:2.9em;padding:.4em .85em;border-radius:.6em;border:1px solid #b8c6d1;background:#fff;color:#17202c;font-size:1em;white-space:nowrap}
.pos-top .pos-btn{background:transparent;color:#fff;border-color:#4d6a84;font-size:.9em}
.pos-short{display:none}
.pos-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,34vw,40em);min-height:0}
.pos-products{display:flex;flex-direction:column;min-height:0;min-width:0;padding:.7em}
.pos-bar{display:flex;gap:.5em;align-items:center;padding-bottom:.6em;flex:0 0 auto;min-width:0}.pos-bar[hidden]{display:none}
.pos-tabs{display:flex;gap:.45em;flex-wrap:wrap;flex:1;min-width:0}
.pos-tab{min-height:2.9em;padding:.4em 1.1em;border-radius:.7em;border:1px solid #c7d3dc;background:#fff;font-weight:600;white-space:nowrap;color:#17202c}
.pos-tab.active{background:#2f6f8f;color:#fff;border-color:#2f6f8f}
.pos-pager{display:flex;align-items:center;gap:.35em;margin-left:auto;flex:0 0 auto}.pos-pager[hidden]{display:none}
.pos-pager span{min-width:3.6em;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.pos-page-btn{width:2.9em;height:2.9em;border-radius:.7em;border:1px solid #c7d3dc;background:#fff;color:#17202c;font-size:1.1em!important;font-weight:700}
.pos-page-btn:disabled{opacity:.35}
.pos-grid{flex:1;min-height:0;overflow:hidden;display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));grid-auto-rows:var(--row-h,6em);gap:var(--gap,.6em);align-content:start}
.pos-grid>[hidden]{display:none}
.pos-tile{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:.3em;min-width:0;overflow:hidden;text-align:left;padding:.7em .8em;border-radius:.8em;border:1px solid #d3dde4;background:#fff;color:#17202c;font-size:1.05em!important;box-shadow:0 2px 0 #c9d4dc}
.pos-tile strong{line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.pos-tile small{font-size:1em;color:#2f6f8f;font-weight:700}
.pos-tile:active,.pos-pay-btn:active,.pos-key:active,.pos-qty:active,.pos-room:active,.pos-person:active{transform:translateY(1px);box-shadow:none}
.pos-free{border:2px dashed #c69431;background:#fffaf0}.pos-free small{color:#7a5a17;font-weight:500;font-size:.8em}
.pos-cart{display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff;border-left:1px solid #d3dde4;padding:.7em}
.pos-cart-head{display:flex;align-items:center;gap:.4em;flex:0 0 auto;margin-bottom:.3em}.pos-cart-head>strong{margin-right:auto}
.pos-cart-head .pos-page-btn{width:2.6em;height:2.6em}
.pos-lines{flex:1;min-height:0;overflow:hidden}
.pos-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5em;align-items:center;padding:.35em 0;border-bottom:1px solid #e6ecf0}
.pos-line-name{min-width:0}.pos-line-name strong,.pos-line-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-line-name small{color:#5b6b78;font-size:.8em}
.pos-line-qty{display:flex;align-items:center;gap:.3em}.pos-line-qty b{min-width:1.5em;text-align:center;font-size:1.1em}
.pos-qty{width:2.75em;height:2.75em;border-radius:.6em;border:1px solid #c7d3dc;background:#f4f7f9;font-size:1.25em!important;line-height:1;color:#17202c;padding:0}
.pos-line-qty .pos-qty{width:2.2em;height:2.2em}
.pos-line-sum{min-width:4.6em;text-align:right;font-variant-numeric:tabular-nums}
.pos-empty{color:#5b6b78;padding:1.2em .25em}
.pos-sum{display:flex;justify-content:space-between;align-items:baseline;font-size:1.15em;border-top:2px solid #17202c;padding:.45em 0;flex:0 0 auto}.pos-sum strong{font-size:1.75em;font-variant-numeric:tabular-nums}
.pos-pays{display:grid;grid-template-columns:1fr 1fr;gap:.45em;flex:0 0 auto}
.pos-pay-btn{min-height:3.6em;border-radius:.7em;border:0;background:#2f6f8f;color:#fff;font-size:1.15em!important;font-weight:700;padding:.2em .4em}
.pos-pay-btn.cash{background:#1f7a4d}.pos-pay-btn.room{background:#7a5a17}
.pos-clear{margin-top:.45em;flex:0 0 auto;min-height:2.6em}
.pos-notes{background:#fff7e6;border-top:1px solid #e8d3a5;padding:.3em .9em;font-size:.8em;flex:0 0 auto}.pos-notes p{margin:.1em 0}
body.pos-mode .modal-back{padding:1vh 1vw}
.modal.pos-modal{width:min(30em,100%);max-height:98vh;max-height:98dvh;overflow-y:auto;font-size:clamp(13px,min(1.6vw,2.1vh),28px);padding:1.1em 1.3em}.modal.pos-modal.wide{width:min(48em,100%)}
.modal.pos-modal .modal-actions{gap:.5em;margin-top:.8em}.modal.pos-modal .field{margin:.5em 0}.modal.pos-modal input{font-size:1em;min-height:2.6em}
.pos-dialog h3{font-size:1.35em;margin:.2em 0 .5em}.pos-dialog p{margin:.4em 0}
.pos-big{min-height:3.4em;font-size:1.1em!important;flex:1}
.pos-amount{font-size:2.3em;font-weight:700;text-align:right;margin:.2em 0;padding:.2em .35em;background:#f4f7f9;border-radius:.3em}
.pos-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5em;margin:.6em 0}
.pos-key{min-height:3.6em;border-radius:.7em;border:1px solid #c7d3dc;background:#fff;font-size:1.45em!important;font-weight:600;color:#17202c;box-shadow:0 2px 0 #c9d4dc}
.pos-dialog .pos-key{min-height:2.5em}
.pos-rates,.pos-quick{display:flex;gap:.5em;flex-wrap:wrap}
.pos-rate,.pos-quick-btn{flex:1;min-height:3em;border-radius:.6em;border:1px solid #c7d3dc;background:#fff;font-size:1.05em!important;font-weight:600;color:#17202c;white-space:nowrap}
.pos-rate.active{background:#2f6f8f;color:#fff;border-color:#2f6f8f}
.pos-rate-hint{margin:.35em 0 0;font-size:.85em}
.pos-due{font-size:1.15em;display:flex;justify-content:space-between;align-items:baseline;gap:.5em}.pos-due strong{font-size:1.5em}
.pos-given{display:flex;justify-content:space-between;align-items:baseline;font-size:1.05em;background:#f4f7f9;border-radius:.6em;padding:.45em .7em;margin:.5em 0}.pos-given strong{font-size:1.8em}
.pos-change{font-size:1.4em;font-weight:700;color:#1f7a4d;min-height:1.2em;margin:.35em 0}.pos-change.short{color:#b00}.pos-change.big{font-size:2.1em}
/* Dialoge mit Ziffernblock im Querformat zweispaltig: links Betrag und Knöpfe, rechts der Block. So passen sie auf 768 Pixel Höhe. */
@media (orientation:landscape) and (min-width:700px){
  .modal.pos-modal.padded{width:min(46em,100%)}
  .pos-dialog.pos-padded{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);column-gap:1.3em;align-content:start}
  .pos-padded>*{grid-column:1}
  .pos-padded>.pos-pad{grid-column:2;grid-row:1/span 12;align-self:stretch;margin:0;grid-auto-rows:1fr}
  .pos-padded>.modal-actions{flex-direction:column}
  .pos-padded .pos-key{min-height:2.9em}
}
.pos-rooms{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));grid-auto-rows:var(--row-h,4.3em);gap:var(--gap,.5em);margin:.5em 0;height:min(23em,52vh);overflow:hidden;align-content:start}.pos-rooms>[hidden],.pos-off{display:none!important}
.pos-lines-nav{display:flex;gap:.3em}.pos-lines-nav[hidden]{display:none}
body.pos-mode .modal{max-height:96vh;max-height:96dvh;overflow-y:auto}
.pos-room,.pos-person{display:flex;flex-direction:column;align-items:flex-start;gap:.25em;min-height:4.3em;padding:.65em .75em;border-radius:.7em;border:1px solid #c7d3dc;background:#fff;text-align:left;color:#17202c;min-width:0;overflow:hidden}
.pos-room strong{font-size:1.35em}.pos-room small,.pos-person small{color:#5b6b78;font-size:.85em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-room[hidden],.pos-pin[hidden]{display:none}
.pos-dialog .pos-pager{justify-content:flex-end;margin-top:.3em}
.pos-done h3{font-size:1.8em}
/* Anmeldung: im Querformat Mitarbeiter links, PIN rechts. */
.pos-login{height:100vh;height:100dvh;display:grid;place-items:center;padding:2vh 2vw;overflow:hidden}
.pos-login-card{background:#fff;border-radius:1em;padding:1.4em;width:min(34em,100%);max-height:96vh;max-height:96dvh;overflow:hidden;box-shadow:0 10px 40px #0002;display:flex;flex-direction:column}
.pos-login-card h1{font-size:1.7em;margin:.2em 0 .4em}.pos-login-card .login-logo{width:min(12em,60%);margin-bottom:.6em}
.pos-staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(9em,1fr));gap:.5em;margin:.6em 0;min-height:0;overflow-y:auto}
.pos-person strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-person.active{border-color:#2f6f8f;outline:3px solid #2f6f8f}
.pos-pin p{margin:.2em 0}
.pos-dots{display:flex;gap:.9em;justify-content:center;margin:.5em 0}.pos-dots span{width:1.1em;height:1.1em;border-radius:50%;border:2px solid #2f6f8f}.pos-dots span.on{background:#2f6f8f}
.pos-login .pos-key{min-height:2.7em}
@media (orientation:landscape) and (min-width:700px){
  .pos-login-card{width:min(56em,100%);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-content:start;column-gap:1.6em}
  .pos-login-card>*{grid-column:1}
  .pos-login-card>.pos-staff{max-height:52vh}
  .pos-login-card>.pos-pin{grid-column:2;grid-row:1/span 8;align-self:center}
  .pos-login-card>.pos-pin[hidden]{display:block;visibility:hidden}
}
/* Schmale Bildschirme (Tablet hochkant): Bon unter den Kacheln. */
@media(max-width:900px) and (orientation:portrait){.pos-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,42%)}.pos-cart{border-left:0;border-top:1px solid #d3dde4}}
.pos-top>*,.fr-sticky>*{flex-shrink:0}.pos-top.tight>*,.fr-sticky.tight>*{flex-shrink:1}
.compact .pos-long,.compact .pos-clock-date,body.fr-mode .pos-top.compact .fr-product{display:none}.compact .pos-short{display:inline}
@media(max-width:700px){.pos-who{display:none}.pos-top{flex-wrap:wrap}.pos-actions{overflow-x:auto}}

/* Frühstücksplanung in der Kasse (beta.83): Gestaltung nach NHZ Frühstücksplanung 0.4.1 (dunkel, fünf Zimmer je Reihe). */
.pos-views{display:flex;gap:.25em;background:#0b2034;border-radius:.75em;padding:.25em;flex:0 0 auto}
.pos-view{min-height:2.6em;padding:.3em 1em;border:0;border-radius:.55em;background:transparent;color:#cfe0ee;font-weight:700}
.pos-view.active{background:#c69431;color:#112e48}
.pos-preset{display:flex;justify-content:space-between;align-items:center;gap:.5em;background:#fff6e3;border:1px solid #e3c47c;border-radius:.6em;padding:.3em .3em .3em .7em;margin-bottom:.4em;flex:0 0 auto}.pos-preset span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Seit beta.100 füllt die Frühstücksansicht genau den Bildschirm: Kopfzeile, Kennzahlen, Woche, Filter, darunter die Zimmerkacheln
   seitenweise (posFit in app.js). Maße in em, die Grundschrift kommt aus body.pos-mode. Seit beta.103 ohne Seitenleiste, kleine Zimmerkacheln (32 je Seite). */
.fr{--bg:#101226;--panel:#1b1e3b;--line:#30345b;--text:#f2f3ff;--muted:#a8b1d1;--accent:#8580ff;--green:#85e7bc;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;color:var(--text);background:radial-gradient(ellipse at 80% 0%,#26204b 0,transparent 55%),var(--bg);padding:0 1.2em .8em;color-scheme:dark}
.fr h1,.fr h2,.fr p{margin:0;color:inherit}.fr h1{font-size:1.6em;line-height:1.2;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fr h2{font-size:1.15em;line-height:1.3;white-space:nowrap}.fr small{font-size:.78em;color:var(--muted)}
.fr button{font:inherit;border:1px solid var(--line);border-radius:.7em;min-height:2.8em;background:#252948;color:var(--text);padding:.4em .9em;cursor:pointer;white-space:nowrap}
.fr button:focus-visible,.fr input:focus-visible{outline:3px solid #c5bbff;outline-offset:3px}
.fr-eyebrow{font-size:.66em;letter-spacing:.16em;font-weight:700;color:var(--muted)}
.fr-sticky{flex:0 0 auto;display:flex;gap:1em;align-items:center;padding:.6em 0;border-bottom:1px solid var(--line);margin-bottom:.7em}
.fr-title{flex:1;min-width:0}
.fr-hotel{margin-top:.15em!important}.fr-date{color:var(--muted)!important;margin-top:.15em!important;font-size:.85em}
.fr-remaining{display:flex;flex-direction:column;align-items:center;padding:.3em 1.4em;min-width:8.5em;border:1px solid #645ddd;border-radius:1em;background:linear-gradient(135deg,#373376,#272650);box-shadow:0 8px 40px #08081860;flex:0 0 auto}
.fr-remaining span:first-child{font-size:.62em;letter-spacing:.14em;font-weight:700}.fr-remaining strong{font-size:2.3em;line-height:1.05;font-variant-numeric:tabular-nums}.fr-remaining span:last-child{font-size:.72em;color:#d0cdf9}
.fr-toolbar{display:flex;gap:.45em;flex:0 0 auto}.fr-toolbar .active{background:#6657eb;border-color:#8c82ff;color:#fff}
.fr-layout{flex:1;min-height:0;display:flex;flex-direction:column}
.fr-main{display:flex;flex-direction:column;min-height:0;min-width:0}
.fr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:.7em;flex:0 0 auto}
.fr-card{background:linear-gradient(145deg,#202440,#191c36);border:1px solid var(--line);border-radius:1em;padding:.6em .9em}
.fr-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:.7em;align-items:center;text-align:left}
.fr-card>span{grid-column:2;font-size:.62em;letter-spacing:.06em;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-card strong{grid-column:1;grid-row:1/span 2;font-size:2.1em;line-height:1.1;font-variant-numeric:tabular-nums}.fr-card small{grid-column:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-bread-stat strong{color:#c9bdff}
.fr button.fr-card{min-height:0;padding:.6em .9em;border-radius:1em;font:inherit;color:inherit}.fr-extra-stat strong{font-size:1.4em}
.fr-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45em;margin:.7em 0;flex:0 0 auto}
.fr .fr-week-day{padding:.25em .2em;min-height:2.6em;display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:.45em;background:#1a1e38}.fr-week-day strong{font-size:1.25em;grid-row:1/span 2;grid-column:2}.fr-week-day small{font-size:.66em;grid-column:1;line-height:1.2}.fr .fr-week-day.active{border-color:#9187ff;background:#302b60}
.fr-room-head{display:flex;gap:.7em;align-items:center;flex:0 0 auto;flex-wrap:wrap}.fr-room-title{margin-right:auto}.fr-room-head h2{margin-top:.1em}
.fr label{display:block;font-size:.8em;color:var(--muted)}
.fr-search{display:flex!important;align-items:center;gap:.4em}.fr-search span{white-space:nowrap}
.fr input{display:block;width:7.5em;border:1px solid #4a507d;background:#12162e;color:var(--text);padding:.4em .6em;border-radius:.55em;min-height:2.8em;font:inherit;font-size:1.25em}
.fr-filter{display:flex;gap:.4em;flex-wrap:wrap}.fr-filter button[aria-pressed=true]{background:#574cf5;color:#fff;border-color:#a29cff}.fr-filter small{color:inherit;opacity:.75;margin-left:.2em}
.fr-hint{font-size:.78em;color:var(--muted)!important;margin:.4em 0!important;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-grid{flex:1;min-height:0;overflow:hidden;display:grid;grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));grid-auto-rows:var(--row-h,7em);gap:var(--gap,.6em);align-content:start}
.fr-grid>[hidden]{display:none}
.fr-room{position:relative;border:1px solid var(--line);border-radius:.75em;overflow:hidden;background:#1b203f;display:flex;flex-direction:column;min-width:0}
.fr .fr-room-main{display:flex;width:100%;flex:1;min-height:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;border:0;border-radius:0;padding:.3em .55em;background:transparent;text-align:left;overflow:hidden}
.fr-room-main strong{font-size:1.35em;line-height:1.25;padding-right:1.3em}.fr-room-main span{font-size:.8em;line-height:1.25;color:#c7ceeb;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-room-main small{font-size:.7em;line-height:1.3;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.fr-room.fr-done{background:#1c3b3a;border-color:#37655b}.fr-room.fr-done strong,.fr-room.fr-done small{color:var(--green)}
.fr-room.fr-partial{border-color:#ac9654;background:#393328}.fr-room.fr-partial small{color:#f1d58a}
.fr-room.fr-muted{opacity:.72}
.fr .fr-room-detail{position:absolute;top:.25em;right:.25em;width:2em;height:1.75em;min-height:0;padding:0;border:1px solid #ffffff1a;border-radius:.55em;background:#ffffff0d;font-size:1em;line-height:1;color:#c7ceeb}
.fr-empty{color:var(--muted);grid-column:1/-1}
.fr-counts .pos-quick-btn{min-width:3.4em;flex:0 0 auto}.pos-quick-btn.active{background:#2f6f8f;color:#fff;border-color:#2f6f8f}
.fr .pos-pager span{font-size:.9em}
@media(max-height:900px){.fr-footer{display:none!important}}
@media(max-width:700px){.fr{padding:0 .7em .7em}.fr-sticky{flex-wrap:wrap}.fr-stats{grid-auto-flow:row;grid-template-columns:1fr 1fr}.fr-week{gap:.2em}}
/* Untermenüs (beta.84): im Bereich mit data-sub-active sind nur die Abschnitte des gewählten Untermenüs sichtbar. */
.sub-nav{margin:22px 0 0}
.sub-nav+.admin-grid,.sub-nav+.grid{margin-top:14px}
.command-details>.sub-nav{margin-top:0}
.sub-count{display:inline-block;min-width:20px;padding:1px 6px;margin-left:4px;border-radius:99px;background:#c69431;color:#fff;font-size:12px}
[data-sub-active="firma"] [data-sub]:not([data-sub="firma"]),
[data-sub-active="haus"] [data-sub]:not([data-sub="haus"]),
[data-sub-active="preise"] [data-sub]:not([data-sub="preise"]),
[data-sub-active="gaeste"] [data-sub]:not([data-sub="gaeste"]),
[data-sub-active="kasse"] [data-sub]:not([data-sub="kasse"]),
[data-sub-active="schnittstellen"] [data-sub]:not([data-sub="schnittstellen"]),
[data-sub-active="benutzer"] [data-sub]:not([data-sub="benutzer"]),
[data-sub-active="system"] [data-sub]:not([data-sub="system"]),
[data-sub-active="heute"] [data-sub]:not([data-sub="heute"]),
[data-sub-active="gruppen"] [data-sub]:not([data-sub="gruppen"]),
[data-sub-active="reservierung"] [data-sub]:not([data-sub="reservierung"]),
[data-sub-active="stamm"] [data-sub]:not([data-sub="stamm"]),
[data-sub-active="protokoll"] [data-sub]:not([data-sub="protokoll"]),
[data-sub-active="facility"] [data-sub]:not([data-sub="facility"]),
[data-sub-active="verkauf"] [data-sub]:not([data-sub="verkauf"]),
[data-sub-active="bargeld"] [data-sub]:not([data-sub="bargeld"]),
[data-sub-active="abschluss"] [data-sub]:not([data-sub="abschluss"]),
[data-sub-active="posteingang"] [data-sub]:not([data-sub="posteingang"]),
[data-sub-active="schreiben"] [data-sub]:not([data-sub="schreiben"]),
[data-sub-active="vorlagen"] [data-sub]:not([data-sub="vorlagen"]),
[data-sub-active="einrichtung"] [data-sub]:not([data-sub="einrichtung"]),
[data-sub-active="aenderungen"] [data-sub]:not([data-sub="aenderungen"]){display:none!important}
/* Finanzen: Seiten der gewählten Gruppe als zweite, leichtere Reihe */
.rep-tabs.fin-groups{margin-bottom:10px}
.rep-tabs.fin-subtabs{border-bottom:0;padding-bottom:0;margin-bottom:20px}
.fin-subtabs .rep-tab{padding:6px 12px;font-size:13px;font-weight:650;background:transparent}
.fin-subtabs .rep-tab.on{background:#e7eef4;border-color:#b9c9d6;color:#112e48}
.fin-subtabs .rep-tab[data-tab="konten"]{margin-left:0}
/* Alle Abschnitte eines Untermenüs fließen in ein gemeinsames Raster (keine halbleeren Zeilen). */
#adminContent{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));align-items:start}
#adminContent>.catalog-admin{display:contents}

/* beta.86: zwei weitere Farbschemata, je Benutzer wählbar (Name oben rechts). Kontraste geprüft: Fließtext und Schaltflächen mindestens 4.5:1 (WCAG AA).
   Die Balkenfarben im Belegungsplan bleiben in allen Schemata gleich, weil sie Bedeutung tragen (Übernachtung/Fasten, gebucht/angereist/abgereist). */
.user-theme{display:inline-flex;align-items:center;gap:7px}.user-theme-dot{width:12px;height:12px;border-radius:50%;background:conic-gradient(#2f5d4c 0 25%,#d9cfb8 0 50%,#1f2933 0 75%,#f5b544 0);border:1px solid #ffffff99;flex:none}
.modal.modal-wide{width:min(640px,100%)}.user-theme-choices .layout-choice:first-child{grid-column:1 / -1}
.layout-preview.salbei{background:#f5f1e8;border:1px solid #e4ddcc}.layout-preview.salbei i{background:#2f5d4c}.layout-preview.salbei i:nth-child(2){background:#d9cfb8}.layout-preview.salbei i:nth-child(3){background:#b0803c}
.layout-preview.graphit{background:#eef0f2;border:1px solid #cfd5dc}.layout-preview.graphit i{background:#1f2933}.layout-preview.graphit i:nth-child(2){background:#f5b544}.layout-preview.graphit i:nth-child(3){background:#ffffff;border:1px solid #cfd5dc}

/* Salbei & Sand */
body[data-layout="salbei"]{background:#f5f1e8;color:#1f2a24}
body[data-layout="salbei"] .top{background:#2f5d4c;color:#fff}
body[data-layout="salbei"] .brand small{color:#d5e3da}
body[data-layout="salbei"] .top .secondary{background:transparent;color:#fff;border:1px solid #8fb09f}
body[data-layout="salbei"] .top .nav-btn.active{background:#f5f1e8;color:#21392f;border-color:#f5f1e8}
body[data-layout="salbei"] .top .badge{background:#e3ece5;color:#1e4a37}
body[data-layout="salbei"] .panel,body[data-layout="salbei"] .metric,body[data-layout="salbei"] .card{background:#fffdf8;border-color:#e4ddcc;box-shadow:0 6px 18px #4a3f2a0f}
body[data-layout="salbei"] .row,body[data-layout="salbei"] .technical-row,body[data-layout="salbei"] .inline-form,body[data-layout="salbei"] .forecast-day{border-color:#e6dfcf;background:#fffdf8}
body[data-layout="salbei"] button.row:hover{background:#f6f1e5}
body[data-layout="salbei"] .eyebrow{color:#2f5d4c}
body[data-layout="salbei"] .headline p,body[data-layout="salbei"] .panel p,body[data-layout="salbei"] .row small,body[data-layout="salbei"] .metric span,body[data-layout="salbei"] .metric small,body[data-layout="salbei"] .technical-row small,body[data-layout="salbei"] .muted{color:#5b675f}
body[data-layout="salbei"] .primary{background:#2f5d4c;color:#fff}body[data-layout="salbei"] .primary:hover{background:#264d3f}
body[data-layout="salbei"] .secondary{background:#ebe5d7;color:#21392f}
body[data-layout="salbei"] .badge{background:#e3ece5;color:#1e4a37}
body[data-layout="salbei"] .notice{background:#fbf3e2;color:#6e4c14}
body[data-layout="salbei"] .field input,body[data-layout="salbei"] .field select,body[data-layout="salbei"] .field textarea{border-color:#d6cdb8;background:#fff;color:#1f2a24}
body[data-layout="salbei"] .cell{background:#fffdf8;border-color:#ece6d8}body[data-layout="salbei"] .head{background:#f1ebdd;color:#45524a}body[data-layout="salbei"] .room{background:#faf7f0}
body[data-layout="salbei"] .plan-table{border-color:#e4ddcc}
body[data-layout="salbei"] .command-center,body[data-layout="salbei"] .command-left,body[data-layout="salbei"] .command-matrix{background:#fffdf8;border-color:#e4ddcc}
body[data-layout="salbei"] .command-status,body[data-layout="salbei"] .command-right,body[data-layout="salbei"] .command-matrix .head{background:#f3eee2;border-color:#e4ddcc}
body[data-layout="salbei"] .command-toolbar{border-color:#e4ddcc}
body[data-layout="salbei"] .command-filter{color:#24362d}body[data-layout="salbei"] .command-filter:hover{background:#f1ebdd}body[data-layout="salbei"] .command-filter.active{background:#e3ece5;color:#1e4a37}
body[data-layout="salbei"] .inspector-card{background:#fffdf8;border-color:#e4ddcc}
body[data-layout="salbei"] .layout-choice{background:#fffdf8;border-color:#e4ddcc;color:#1f2a24}body[data-layout="salbei"] .layout-choice small{color:#5b675f}
body[data-layout="salbei"] .layout-choice.selected{outline-color:#2f5d4c;border-color:#2f5d4c}
body[data-layout="salbei"] .admin-main{border-top-color:#b0803c}
body[data-layout="salbei"] #toast{background:#21392f}
body[data-layout="salbei"] .modal{background:#fffdf8;color:#1f2a24}

/* Graphit & Bernstein */
body[data-layout="graphit"]{background:#eef0f2;color:#111827}
body[data-layout="graphit"] .top{background:#1f2933;color:#fff;border-bottom:3px solid #f5b544}
body[data-layout="graphit"] .brand small{color:#c4ccd4}
body[data-layout="graphit"] .top .secondary{background:transparent;color:#f3f4f6;border:1px solid #6b7785}
body[data-layout="graphit"] .top .secondary:hover{border-color:#f5b544}
body[data-layout="graphit"] .top .nav-btn.active{background:#f5b544;color:#1f2933;border-color:#f5b544}
body[data-layout="graphit"] .top .badge{background:#f5b544;color:#1f2933}
body[data-layout="graphit"] .panel,body[data-layout="graphit"] .metric,body[data-layout="graphit"] .card{background:#fff;border-color:#cfd5dc;box-shadow:0 1px 3px #11182714}
body[data-layout="graphit"] .row,body[data-layout="graphit"] .technical-row,body[data-layout="graphit"] .inline-form,body[data-layout="graphit"] .forecast-day{border-color:#d6dbe1}
body[data-layout="graphit"] button.row:hover{background:#f6f7f8}
body[data-layout="graphit"] .eyebrow{color:#92400e}
body[data-layout="graphit"] .headline p,body[data-layout="graphit"] .panel p,body[data-layout="graphit"] .row small,body[data-layout="graphit"] .metric span,body[data-layout="graphit"] .metric small,body[data-layout="graphit"] .technical-row small,body[data-layout="graphit"] .muted{color:#4b5563}
body[data-layout="graphit"] .primary{background:#1f2933;color:#fff}body[data-layout="graphit"] .primary:hover{background:#111827}
body[data-layout="graphit"] .secondary{background:#e5e8eb;color:#1f2933}
body[data-layout="graphit"] .badge{background:#fdf0d5;color:#7c4a03}
body[data-layout="graphit"] .notice{background:#fdf0d5;color:#713f12}
body[data-layout="graphit"] .field input,body[data-layout="graphit"] .field select,body[data-layout="graphit"] .field textarea{border-color:#9aa5b1}
body[data-layout="graphit"] .field input:focus,body[data-layout="graphit"] .field select:focus,body[data-layout="graphit"] .field textarea:focus,body[data-layout="graphit"] button:focus-visible{outline:3px solid #b45309;outline-offset:1px}
body[data-layout="graphit"] .cell{border-color:#dde1e6}body[data-layout="graphit"] .head{background:#e5e8eb;color:#374151}body[data-layout="graphit"] .room{background:#f6f7f8}
body[data-layout="graphit"] .plan-table{border-color:#cfd5dc}
body[data-layout="graphit"] .command-center,body[data-layout="graphit"] .command-left,body[data-layout="graphit"] .command-matrix{background:#fff;border-color:#cfd5dc}
body[data-layout="graphit"] .command-status,body[data-layout="graphit"] .command-right,body[data-layout="graphit"] .command-matrix .head{background:#f6f7f8;border-color:#cfd5dc}
body[data-layout="graphit"] .command-toolbar{border-color:#cfd5dc}
body[data-layout="graphit"] .command-filter{color:#1f2933}body[data-layout="graphit"] .command-filter:hover{background:#eef0f2}body[data-layout="graphit"] .command-filter.active{background:#fdf0d5;color:#7c4a03}
body[data-layout="graphit"] .inspector-card{border-color:#cfd5dc}
body[data-layout="graphit"] .layout-choice{border-color:#cfd5dc}body[data-layout="graphit"] .layout-choice small{color:#4b5563}
body[data-layout="graphit"] .layout-choice.selected{outline-color:#b45309;border-color:#b45309}
body[data-layout="graphit"] .admin-main{border-top-color:#f5b544}
body[data-layout="graphit"] #toast{background:#1f2933;border-left:4px solid #f5b544}
body[data-layout="salbei"] .rep-tab.on{background:#2f5d4c;border-color:#2f5d4c;color:#fff}
body[data-layout="graphit"] .rep-tab.on{background:#1f2933;border-color:#1f2933;color:#fff;box-shadow:inset 0 -3px 0 #f5b544}
/* Buchungsakte als Fenster, Preis pro Nacht oder gesamt (beta.87) */
.modal.record-modal{position:relative;width:min(980px,100%);padding:24px 28px 20px}
.record-close{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:#e8eef2;color:#233949;font-size:22px;line-height:1;cursor:pointer}
.record-close:hover{background:#d6e0e7}
.rec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-right:44px}
.rec-head h2{margin:2px 0 4px;font-size:24px}.rec-head .eyebrow{margin:0}.rec-head p.muted{margin:0;color:#5b6b78}
.rec-status{white-space:nowrap}.rec-status.confirmed{background:#dbeafe;color:#1e40af}.rec-status.checked_out{background:#e2e8f0;color:#475569}.rec-status.cancelled{background:#fee2e2;color:#b91c1c}
.rec-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:16px 0 8px}
.rec-fact{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:11px 12px;display:grid;gap:3px;align-content:start}
.rec-fact small{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.rec-fact strong{font-size:18px}.rec-fact span{color:#5b6b78;font-size:12.5px;line-height:1.45}
.rec-fact .link{justify-self:start;margin-top:4px}
.rec-details{color:#5b6b78;font-size:13px;margin:6px 0}
.rec-history{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:10px}
.rec-history summary{cursor:pointer;font-weight:750;color:#233949;margin-bottom:8px}
.price-entry{display:grid;gap:4px}
.price-modes{display:flex;flex-wrap:wrap;gap:6px 14px}
.price-modes .radio{margin:4px 0}
.price-entry .field{margin:6px 0}
.price-calc{margin:2px 0 0;font-size:13px;color:#5b6b78;min-height:1.3em}
.price-calc.error{color:#a82929}
.booking-price .price-note{margin-top:4px}
@media(max-width:600px){.modal.record-modal{padding:18px 14px}.rec-head{flex-direction:column}.rec-head h2{font-size:20px}}
/* Gruppenbuchungen (beta.88) */
.group-room { border: 1px solid var(--line, #d9dee5); border-radius: 10px; padding: .6rem .75rem; margin-bottom: .6rem; }
.group-room .group-room-del { margin-top: .25rem; }
.group-note .rec-group { display: block; margin-top: .4rem; }
.stay.in-group { border-left: 4px solid rgba(255,255,255,.75); }
.modal.group-modal { width: min(900px, 100%); }

/* Demo-Installation (beta.92): Hinweisband oben, Vermerk MUSTER auf jedem Beleg. */
.demo-band{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 16px;background:#7c2d12;color:#fff;font-size:14px;line-height:1.35}
.demo-band strong{text-transform:uppercase;letter-spacing:.06em}
.demo-band span{flex:1 1 320px}
.demo-band .demo-cta{background:#fff;color:#7c2d12;font-weight:700;padding:6px 14px;border-radius:999px;text-decoration:none;white-space:nowrap}
.demo-band .demo-cta:hover{background:#ffedd5}
.demo-hint{display:block;margin-top:6px;color:#7c2d12;font-weight:600}
body.sb-demo .inv{position:relative;overflow:hidden}
body.sb-demo .inv::after{content:"MUSTER · DEMO";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) rotate(-28deg);font:700 64px/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;color:rgba(185,28,28,.14);white-space:nowrap;pointer-events:none}
@media print{.demo-band{display:none}}
/* Mail-Vorschau (beta.93): immer hell wie im Mailprogramm, unabhängig vom Farbschema */
.mail-preview { background: #fff; color: #222; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 1.5; border: 1px solid #d9e1e6; border-radius: 8px; padding: 18px 20px; max-height: 60vh; overflow: auto; }
.mail-preview p { margin: 0 0 14px; }
.mail-preview h2 { margin: 20px 0 10px; font-size: 20px; line-height: 1.3; }
.mail-preview h3 { margin: 16px 0 8px; font-size: 17px; line-height: 1.3; }
.mail-preview ul, .mail-preview ol { margin: 0 0 14px; padding-left: 24px; }
.mail-preview blockquote { margin: 0 0 14px; padding: 4px 0 4px 14px; border-left: 3px solid #c8c8c8; color: #555; }
.mail-preview a { color: #1a5d77; }
.mail-preview img { max-width: 100%; height: auto; }
.mail-preview .mp-btn { display: inline-block; background: #1a5d77; color: #fff; text-decoration: none; padding: 10px 18px; border-radius: 4px; }
.mail-preview .mp-sig { border: 0; border-top: 1px solid #ddd; margin: 20px 0; }
.mail-preview .mp-foot { font-size: 12px; color: #666; }
.mp-head { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 8px 0 12px; font-size: 14px; }
.mp-head dt { color: var(--muted, #667); }
.mp-head dd { margin: 0; overflow-wrap: anywhere; }
.modal-actions.modal-actions-wrap{flex-wrap:wrap} /* beta.94 Check-in-Dialog */
/* beta.95: aktive Buchung und ihre Gruppe im Plan */
.plan-table > .stay.bar.is-active { outline: 3px solid #0f3d52; outline-offset: 1px; box-shadow: 0 0 0 5px #ffd54a; z-index: 3; filter: none; }
.plan-table > .stay.bar.group-active { outline: 2px dashed #0f3d52; outline-offset: 1px; box-shadow: 0 0 0 4px #ffd54a99; z-index: 2; }
.inspector-card.group-card { border-left: 4px solid #ffd54a; }
.inspector-card.group-card button { margin-top: .4rem; justify-self: start; }
/* beta.95: Splittrechnung für Gruppen */
.split-box { display: grid; gap: .6rem; margin: .6rem 0; }
.split-box.locked .split-line { pointer-events: none; opacity: .75; }
.split-room { border: 1px solid var(--line, #d9dee5); border-radius: 10px; padding: .5rem .75rem; margin: 0; }
.split-room legend { font-weight: 600; padding: 0 .3rem; }
.split-line { display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center; padding: .25rem 0; border-top: 1px solid #eef1f4; }
.split-line:first-of-type { border-top: 0; }
.split-line.off { opacity: .45; }
.split-line .sl-qty { white-space: nowrap; }
.split-line .sl-qty input { width: 4.5rem; display: inline-block; margin-right: .3rem; }
.split-line .sl-sum { min-width: 6.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.split-total { display: flex; justify-content: space-between; gap: 1rem; font-weight: 600; padding: .5rem .75rem; background: #f4f7f9; border-radius: 10px; }
@media (max-width: 640px) { .split-line { grid-template-columns: 1fr auto; } .split-line .sl-qty { grid-column: 1; } }
/* Frühstücksansicht (beta.96): eigene Seite /app/#fruehstueck im Design der NHZ Frühstücksplanung 0.4.1, zwei Tabs (1 Frühstück, 2 Kasse).
   Kopf, Anmeldung und Kasse übernehmen das dunkle Farbschema des Vorbilds. */
.pos-views .pos-view{min-width:6.2em}
.fr-footer{display:flex;justify-content:space-between;gap:1em;margin-top:.7em;padding-top:.6em;border-top:1px solid var(--line);font-size:.7em;color:var(--muted);flex:0 0 auto}
body.fr-mode{background:#101226}
body.fr-mode .pos{--bg:#101226;--panel:#1b1e3b;--line:#30345b;--text:#f2f3ff;--muted:#a8b1d1;background:radial-gradient(ellipse at 80% 0%,#26204b 0,transparent 55%),#101226;color:#f2f3ff;color-scheme:dark}
body.fr-mode .pos-top{background:#111329;border-bottom:1px solid #30345b;padding:.55em 1em;gap:.9em}
body.fr-mode .fr-logo{display:block;background:#fff;border-radius:.6em;padding:.3em .7em;width:8.5em}.fr-logo img{display:block;width:100%;height:auto}
body.fr-mode .fr-product{font-size:.62em;letter-spacing:1.8px;font-weight:700;color:#a8b1d1}
body.fr-mode .pos-terminal{background:#373376;color:#f2f3ff;border:1px solid #645ddd}
body.fr-mode .pos-views{background:#1b1e3b;border:1px solid #30345b;padding:.3em;border-radius:.85em}
body.fr-mode .pos-view{color:#c7ceeb;font-size:1.05em;min-height:2.7em;border-radius:.6em}
body.fr-mode .pos-view.active{background:#6657eb;color:#fff}
body.fr-mode .pos-top .pos-btn{border-color:#30345b;color:#f2f3ff;background:#252948}
body.fr-mode .pos-body{background:transparent}
body.fr-mode .pos-tab{background:#252948;border-color:#30345b;color:#f2f3ff}
body.fr-mode .pos-tab.active{background:#6657eb;border-color:#8c82ff}
body.fr-mode .pos-tile{background:linear-gradient(145deg,#202440,#191c36);border-color:#30345b;color:#f2f3ff;box-shadow:none}
body.fr-mode .pos-tile small{color:#c9bdff}
body.fr-mode .pos-free{border-color:#8580ff;background:#1b1e3b}body.fr-mode .pos-free small{color:#a8b1d1}
body.fr-mode .pos-cart{background:#1b1e3b;border-left-color:#30345b}
body.fr-mode .pos-line{border-bottom-color:#30345b}body.fr-mode .pos-line-name small,body.fr-mode .pos-empty{color:#a8b1d1}
body.fr-mode .pos-qty{background:#252948;border-color:#30345b;color:#f2f3ff}
body.fr-mode .pos-sum{border-top-color:#a8b1d1}
body.fr-mode .pos-pay-btn{background:#574cf5}body.fr-mode .pos-pay-btn.cash{background:#2f7a5b}body.fr-mode .pos-pay-btn.room{background:#8a6a2a}
body.fr-mode .pos-pay-btn:disabled{opacity:.45}
body.fr-mode .pos-cart .pos-btn{background:#252948;border-color:#30345b;color:#f2f3ff}
body.fr-mode .pos-notes{background:#292444;border-top-color:#7d72c7;color:#f2f3ff}
body.fr-mode .pos-preset{background:#393328;border-color:#ac9654;color:#f1d58a}
body.fr-mode .pos-login-card{background:#1b1e3b;color:#f2f3ff;border:1px solid #30345b}
body.fr-mode .pos-login-card .muted,body.fr-mode .pos-login-card .eyebrow{color:#a8b1d1}
body.fr-mode .pos-login-card .login-logo{background:#fff;border-radius:.6em;padding:.35em .7em}
body.fr-mode .pos-login-card .pos-person,body.fr-mode .pos-login-card .pos-key{background:#252948;border-color:#30345b;color:#f2f3ff;box-shadow:none}
body.fr-mode .pos-login-card .pos-person small{color:#a8b1d1}
body.fr-mode .pos-person.active{outline-color:#8580ff;border-color:#8580ff}
body.fr-mode .pos-dots span{border-color:#8580ff}body.fr-mode .pos-dots span.on{background:#8580ff}
body.fr-mode .pos-page-btn{background:#252948;border-color:#30345b;color:#f2f3ff}
body.fr-mode .pos-top.compact .fr-logo{width:7em}
@media(max-width:900px){body.fr-mode .pos-cart{border-top-color:#30345b}}
/* Tageswechsel (beta.97) */
.day-change{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.day-change small{color:#64748b;font-size:12px}.day-change button{padding:7px 12px;font-size:13px}.day-change.overdue small{color:#a82929;font-weight:700}
.field[data-mode][hidden]{display:none}
/* Belegungsplan: Spaltenbreite und Zeilenhöhe mit der Maus (beta.98). Höhe kommt als CSS-Variable --plan-row-h aus applyPlanSize(). */
.plan-table .plan-resize { position: absolute; z-index: 3; opacity: 0; transition: opacity .12s; touch-action: none; }
.plan-table .plan-resize-col { top: 0; right: 0; bottom: 0; width: 7px; cursor: col-resize; border-right: 3px solid #2563eb; }
.plan-table .plan-resize-row { left: 0; right: 0; bottom: 0; height: 7px; cursor: row-resize; border-bottom: 3px solid #2563eb; }
.plan-table .plan-resize:hover, body.plan-resizing-col .plan-resize-col, body.plan-resizing-row .plan-resize-row { opacity: .55; }
.plan-table .cell.head:hover .plan-resize-col, .plan-table .cell.room:hover .plan-resize-row { opacity: .25; }
.plan-table .plan-resize:hover { opacity: .8; }
body.plan-resizing-col, body.plan-resizing-col * { cursor: col-resize !important; user-select: none; }
body.plan-resizing-row, body.plan-resizing-row * { cursor: row-resize !important; user-select: none; }
.plan-table.row-sized .cell.room, .plan-table.row-sized .cell.free, .plan-table.row-sized .cell.taken, .plan-table.row-sized .cell.blocked { min-height: var(--plan-row-h); height: var(--plan-row-h); }
.plan-table.row-sized .cell.room { overflow: hidden; padding-top: 2px; padding-bottom: 2px; }
.plan-table.row-sized > .stay.bar { min-height: 0; height: calc(var(--plan-row-h) - 10px); align-self: start; }
.plan-table.row-compact > .stay.bar { margin-top: 2px; margin-bottom: 2px; height: calc(var(--plan-row-h) - 4px); padding-top: 0; padding-bottom: 0; line-height: calc(var(--plan-row-h) - 4px); }
.plan-table.row-compact > .stay.bar small, .plan-table.row-compact .cell.room small { display: none; }
.plan-table.row-compact .cell.room strong { font-size: 14px; }
.plan-table.day-narrow .cell.head .hd-wd, .plan-table.day-narrow .cell.head .hd-mon { font-size: 9px; }

/* beta.101: Änderungsprotokoll. Leiste „Zuletzt neu“ über dem Untermenü der Systemverwaltung, Versionen und Datenänderungen. */
.changelog-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 0;padding:10px 14px;border:1px solid #d6e0e8;border-left:4px solid #c69431;border-radius:10px;background:#f7f9fb}
.changelog-strip[hidden]{display:none}
.cl-strip-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7c8a}
.cl-strip-text{flex:1 1 320px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.changelog-strip button{padding:6px 12px}
#adminContent .cl-panel{grid-column:1/-1}
.cl-list{display:grid;gap:6px;margin:12px 0}
.cl-entry{border:1px solid #e1e7ec;border-radius:9px;background:#fff}
.cl-entry summary{display:grid;grid-template-columns:minmax(130px,190px) 1fr;gap:4px 14px;padding:9px 12px;cursor:pointer;list-style:none}
.cl-entry summary::-webkit-details-marker{display:none}
.cl-entry[open] summary{border-bottom:1px solid #eef2f5}
.cl-head{display:flex;flex-direction:column;gap:2px}
.cl-head small{color:#6b7c8a;font-size:12px}
.cl-tag{align-self:flex-start;padding:1px 7px;border-radius:99px;background:#e3f1e6;color:#1f5f2e;font-size:11px;font-weight:700}
.cl-title{line-height:1.4}
.cl-entry p{margin:0;padding:10px 12px 12px;line-height:1.5;color:#33424f}
.cl-current{border-color:#c69431}
.cl-filter{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}
.cl-filter label{display:flex;flex-direction:column;gap:4px;font-size:13px;flex:1 1 220px}
.cl-audit strong{font-weight:600}
@media(max-width:700px){.cl-entry summary{grid-template-columns:1fr}.cl-strip-text{white-space:normal}}
.cl-filter select,.cl-filter input{padding:8px 10px;border:1px solid #cfd8df;border-radius:8px;font:inherit;background:#fff}
.modal .comp-line input.rate-price { width: 110px; }
/* beta.107: Anreise-/Abreisetag der Rate, Zimmerzuordnung im Arrangement */
.day-picks { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 4px 0 8px; }
.day-row { margin: 6px 0; } .day-row .field-label { display: block; font-weight: 700; }
.arr-rooms .arr-cat { margin: 6px 0 2px; }
.arr-rooms .arr-room-list { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 0 0 6px 24px; }
.notice.day-warn { border-left: 3px solid #c58a00; }

/* Hilfe und häufige Fragen (beta.108): kleines „?“ in der Kopfleiste und an wenigen Abschnitten, eigenes Fenster über allem. */
.help-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;font-weight:800;font-size:14px;line-height:1;opacity:.7;flex:0 0 auto}
.help-btn:hover,.help-btn:focus-visible{opacity:1}
.help-btn.help-dot{width:19px;height:19px;font-size:11px;margin-left:8px;vertical-align:2px;border-color:#9aa9b4;color:#5b6b78;opacity:.55}
.help-btn.help-dot:hover,.help-btn.help-dot:focus-visible{opacity:1;color:#185d91;border-color:#185d91}
.pos-btn.pos-help{min-width:2.4em;font-weight:800}
.login-help{margin:14px 0 0;text-align:center}
.help-link{background:none;border:0;padding:0;color:#185d91;font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.help-back{position:fixed;inset:0;z-index:80;background:rgba(15,30,45,.45);display:grid;place-items:center;padding:16px}
.help-dialog{background:#fff;color:#17202c;border-radius:14px;box-shadow:0 20px 60px #0006;width:min(1000px,100%);height:min(88vh,780px);display:grid;grid-template-rows:auto 1fr;overflow:hidden;font-size:15px;line-height:1.5;text-align:left}
.help-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:14px 18px;border-bottom:1px solid #e2e8ee}
.help-head h2{margin:0;font-size:20px}.help-head .eyebrow{margin:0}
.help-search{flex:1 1 220px;min-width:0;border:1px solid #c8d2da;border-radius:9px;padding:9px 12px;font:inherit}
.help-tabs{display:flex;gap:4px;background:#eef2f5;border-radius:9px;padding:3px}
.help-tabs button{border:0;background:transparent;border-radius:7px;padding:7px 12px;font:inherit;font-weight:700;color:#3d5162}
.help-tabs button.on{background:#fff;color:#112e48;box-shadow:0 1px 3px #0002}
.help-close{border:0;background:transparent;font-size:26px;line-height:1;padding:2px 8px;color:#5b6b78;border-radius:8px}
.help-close:hover{background:#eef2f5}
.help-body{display:grid;grid-template-columns:230px 1fr;min-height:0}
.help-toc{border-right:1px solid #e2e8ee;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:2px;background:#f8fafb}
.help-toc-item{text-align:left;border:0;background:transparent;border-radius:8px;padding:7px 10px;font:inherit;font-size:14px;color:#233949}
.help-toc-item:hover{background:#eaf0f4}.help-toc-item.on{background:#dde9f3;color:#112e48;font-weight:750}
.help-main{overflow-y:auto;padding:18px 24px 28px;outline:none}
.help-main h3{margin:0 0 10px;font-size:19px}
.help-main h4{margin:18px 0 6px;font-size:15px;color:#1e639b}
.help-main h4.help-target{background:#fff4d6;border-radius:6px;padding:2px 6px;margin-left:-6px}
.help-main p,.help-main li{color:#2b3a46}.help-main ul,.help-main ol{padding-left:20px;margin:6px 0}.help-main li{margin:3px 0}
.help-faq-head{border-top:1px solid #e2e8ee;padding-top:14px}
.help-faq{border:1px solid #e2e8ee;border-radius:9px;padding:9px 12px;margin:7px 0;background:#fbfcfd}
.help-faq summary{cursor:pointer;font-weight:700;color:#17202c}
.help-faq p{margin:8px 0 4px}
.help-main .muted,.help-toc .muted{color:#5b6b78;font-size:14px}
@media(max-width:720px){.help-dialog{height:94vh}.help-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.help-toc{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #e2e8ee}.help-toc-item{white-space:nowrap}.help-main{padding:14px 16px 22px}}
body[data-layout="salbei"] .help-link,body[data-layout="salbei"] .help-main h4{color:#2f5d4c}
body[data-layout="graphit"] .help-main h4{color:#9a5b00}
.help-btn.record-help{position:absolute;top:13px;right:58px;width:30px;height:30px;color:#5b6b78;border-color:#c8d2da;opacity:.65}
.record-modal .rec-head{padding-right:84px}

/* Zimmerakte & Hausmeister (beta.111) */
.fm-mark{display:inline-block;margin-top:3px;padding:1px 6px;border-radius:99px;background:#fff1e6;color:#8a4512;font-size:11px;font-weight:800}
.fm-mark.urgent{background:#fbeaea;color:#a82929}
.fm-statehint{font-size:13px;margin:12px 0 0}
.fm-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:10px 0 14px}
.fm-pick{display:grid;gap:4px;font-size:13px;font-weight:700}.fm-pick select{border:1px solid #c8d2da;border-radius:9px;padding:9px;min-width:220px}
.fm-hint{font-size:13px;margin-top:14px}
.fm-row{border-left:4px solid #c8d2da}.fm-row.p-urgent{border-left-color:#c62f2f}.fm-row.p-high{border-left-color:#d4842a}.fm-row.p-normal{border-left-color:#3b7fb6}.fm-row.p-low{border-left-color:#9aa8b3}
.fm-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.fm-prio,.fm-kind,.fm-status,.fm-due{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:800;white-space:nowrap}
.fm-prio{background:#e8eef2;color:#233949}.fm-prio.p-urgent{background:#c62f2f;color:#fff}.fm-prio.p-high{background:#fde5cc;color:#8a4512}.fm-prio.p-low{background:#f1f4f6;color:#5b6b78}
.fm-kind{background:#eef3f8;color:#1e639b}
.fm-status{background:#fff8e9;color:#805814}.fm-status.s-in_progress{background:#e3effa;color:#185d91}.fm-status.s-done{background:#e7f6f1;color:#08715d}.fm-status.s-cancelled{background:#f1f4f6;color:#5b6b78}
.fm-due{background:#f1f4f6;color:#3d5f73}.fm-due.late{background:#fbeaea;color:#a82929}
.modal.fm-modal{width:min(760px,100%)}
.fm-file h3 small{font-weight:500;font-size:13px}
.fm-list{display:grid;gap:10px;margin:6px 0 16px}
.fm-card{border:1px solid #dce3e8;border-left:5px solid #3b7fb6;border-radius:10px;padding:12px 14px;background:#fff;color:#17202c}
.fm-card.p-urgent{border-left-color:#c62f2f}.fm-card.p-high{border-left-color:#d4842a}.fm-card.p-low{border-left-color:#9aa8b3}
.fm-card.s-done,.fm-card.s-cancelled{border-left-color:#9aa8b3;background:#fafbfc}
.fm-card header{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;align-items:center}
.fm-card h3{margin:6px 0 4px;font-size:16px}
.fm-where{font-size:14px}
.fm-desc{margin:4px 0;white-space:pre-line;color:#33424f}
.fm-meta{display:block;color:#657782;font-size:12px}
.fm-note{margin:8px 0 0;padding:6px 10px;background:#f6f9fb;border-radius:8px;font-size:13px}.fm-note small{color:#657782}
.fm-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.fm-btns button{padding:8px 12px}
.fm-link{background:none;border:0;color:#1e639b;text-decoration:underline;font:inherit;font-size:13px;padding:8px 4px}
.fm-ask:not(:empty){margin-top:10px;padding:10px;border-radius:9px;background:#f6f9fb}
.fm-askform label{display:grid;gap:6px;font-weight:700;font-size:13px}
.fm-askform textarea,.fm-form textarea,.fm-form input,.fm-form select{border:1px solid #c8d2da;border-radius:9px;padding:10px;width:100%;font:inherit}
.fm-form .field{margin:10px 0}.fm-form .field label{display:grid;gap:6px;font-weight:700;font-size:13px}
.fm-form .field.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#fmNewBox:not(:empty),#fmPanelBox:not(:empty),#hmNewBox:not(:empty){border:1px solid #dce3e8;border-radius:10px;padding:4px 14px 12px;margin-bottom:14px;background:#fbfcfd}
.fm-log{margin:8px 0 0;padding-left:18px;font-size:12px;color:#33424f;display:grid;gap:3px}.fm-log time{color:#657782}
a.secondary.fm-golink{text-decoration:none;display:inline-block}
/* Handyseite */
body.hm-mode{background:#eef2f5}
body.hm-mode .app-footer{display:none}
.hm{max-width:720px;margin:0 auto;padding:0 12px 24px;font-size:16px}
.hm-top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#112e48;color:#fff;margin:0 -12px 12px;padding:12px 14px}
.hm-top strong{display:block;font-size:18px}.hm-top small{display:block;color:#bad0df;font-size:12px}
.hm-top-btns{display:flex;gap:6px}.hm-top-btns button{background:transparent;color:#fff;border:1px solid #5f7c92;border-radius:9px;padding:9px 12px;font:inherit;font-weight:700;min-height:44px}
.hm-top-btns .help-btn{width:44px}
.hm-alert{background:#c62f2f;color:#fff;border-radius:10px;padding:10px 12px;font-weight:800;margin:0 0 10px}
.hm-msg{background:#e7f6f1;color:#08715d;border-radius:10px;padding:10px 12px;font-weight:700;margin:0 0 10px}
.hm-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.hm-tabs button{border:1px solid #c8d2da;background:#fff;border-radius:10px;padding:10px 4px;font:inherit;font-weight:700;min-height:48px;color:#233949}
.hm-tabs button b{display:inline-block;min-width:22px;padding:0 6px;border-radius:99px;background:#e8eef2}
.hm-tabs button.on{background:#185d91;color:#fff;border-color:#185d91}.hm-tabs button.on b{background:#fff;color:#185d91}
.hm-big{min-height:52px;font-size:17px}
.hm-new{width:100%;margin-bottom:12px}
.hm-list{display:grid;gap:12px}
.hm .fm-card{padding:14px;box-shadow:0 4px 14px #1c32400f}
.hm .fm-card h3{font-size:18px}
.hm .fm-where{font-size:16px}
.hm .fm-btns button{min-height:48px;flex:1 1 auto;font-size:16px}
.hm .fm-btns .fm-link{flex:0 0 auto;min-height:0}
.hm .fm-form .field.two{grid-template-columns:1fr}
.hm-empty{text-align:center;color:#657782;padding:30px 10px;background:#fff;border-radius:12px}
.hm-foot{text-align:center;color:#657782;font-size:12px;margin-top:16px}
.hm-login{min-height:100vh;min-height:100dvh;display:grid;place-items:center}
.hm-card{background:#fff;border:1px solid #dce3e8;border-radius:16px;padding:22px;width:100%}
.hm-card h1{font-size:24px;margin:4px 0 6px}
.hm-card .field select,.hm-card .field input{font-size:18px;min-height:48px}
@media(max-width:600px){.modal.fm-modal{padding:16px}.fm-form .field.two{grid-template-columns:1fr}}
/* Alfred, der Butler (beta.112) */
.alfred-btn{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border-radius:50%;border:1px solid currentColor;background:#d9dde2;overflow:visible;flex:0 0 auto;opacity:.92}
.alfred-btn:hover,.alfred-btn:focus-visible{opacity:1;box-shadow:0 0 0 3px #c6943155}
.alfred-btn img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.alfred-dot{position:absolute;top:-4px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#c0392b;color:#fff;font-size:10px;font-weight:800;line-height:17px;text-align:center;border:2px solid #fff}
.alfred-dot[hidden]{display:none}
.alfred{position:fixed;right:18px;bottom:18px;z-index:75;width:min(420px,calc(100vw - 24px));height:min(640px,calc(100vh - 36px));display:grid;grid-template-rows:auto 1fr auto auto;background:#fff;color:#17202c;border:1px solid #cfd8df;border-radius:16px;box-shadow:0 24px 60px #0f1e2d55;overflow:hidden;font-size:14px;line-height:1.45;text-align:left}
.alfred-head{display:flex;align-items:center;gap:11px;padding:11px 14px;background:#112e48;color:#fff}
.alfred-head strong{display:block;font-size:16px}
.alfred-head small{display:block;color:#bad0df;font-size:12px}
.alfred-head div{flex:1}
.alfred-face{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #c69431;background:#d9dde2}
.alfred-x{border:0;background:transparent;color:#fff;font-size:26px;line-height:1;padding:2px 6px;opacity:.8}
.alfred-x:hover{opacity:1}
.alfred-log{overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f5f7f9}
.alfred-msg{max-width:92%;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #e1e7eb;align-self:flex-start}
.alfred-msg p{margin:0 0 6px;color:#17202c}
.alfred-msg p:last-child{margin-bottom:0}
.alfred-msg.from-me{align-self:flex-end;background:#185d91;border-color:#185d91}
.alfred-msg.from-me p{color:#fff}
.alfred-src{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1e639b!important}
.alfred-small{font-size:12px;color:#657782!important}
.alfred-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.alfred-row .primary,.alfred-row .secondary{padding:7px 12px}
.alfred-alts{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.alfred-alt{border:1px solid #c8d2da;background:#f7f9fa;color:#233949;border-radius:99px;padding:5px 10px;font-size:13px;text-align:left}
.alfred-alt:hover{border-color:#185d91;color:#185d91}
.alfred-preview{margin:8px 0;padding:8px 10px;border-left:3px solid #c69431;background:#fbf7ee;white-space:pre-wrap}
.alfred-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 0;border-top:1px solid #e1e7eb;background:#fff}
.alfred-chips button{border:1px solid #c8d2da;background:#fff;color:#233949;border-radius:99px;padding:5px 11px;font-size:13px;font-weight:650}
.alfred-chips button:hover{border-color:#185d91;color:#185d91}
.alfred-ask{display:flex;gap:8px;padding:10px 12px 12px;background:#fff}
.alfred-ask textarea{flex:1;border:1px solid #c8d2da;border-radius:9px;padding:9px 10px;resize:none;font:inherit}
.alfred-ask .primary{align-self:stretch}
.alfred-video{display:block;width:100%;max-width:360px;border-radius:10px;background:#d9dde2}
.alfred-qs{margin:4px 0 0;padding-left:18px}
.alfred-qs li{margin:0 0 8px}
.alfred-qs li p{margin:3px 0 0;color:#3d5060}
.alfred-st{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:99px;background:#e8eef2;color:#3d5f73;font-size:11px;font-weight:800}
.alfred-st.st-answered{background:#e7f6f1;color:#08715d}
.alfred-st.st-rejected{background:#f6e7e7;color:#8a1f11}
.alfred-admin-head{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.alfred-figure{width:150px;height:auto;border-radius:12px;background:#d9dde2}
.alfred-admin .check-line{display:flex;gap:8px;align-items:center;margin:14px 0 8px;font-weight:700}
.alfred-admin h3{margin:22px 0 10px}
.alfred-answer{display:block;margin-top:4px;color:#08715d!important}
.alfred-admin code{font-size:12px;word-break:break-all}
@media(max-width:700px){.alfred{right:6px;bottom:6px;width:calc(100vw - 12px);height:calc(100vh - 12px)}.alfred-admin-head{grid-template-columns:1fr}.alfred-figure{width:110px}}
@media print{.alfred,.alfred-btn{display:none!important}}
.hm-top-btns .alfred-btn{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:#d9dde2}
/* Akten Hausmeister und Zimmerservice (beta.113) */
.fm-team{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:800;white-space:nowrap;background:#e9e4f7;color:#4b3a8f}
.fm-team.t-housekeeping{background:#e3f4ee;color:#0b6b52}
.fm-tabs{margin:6px 0 10px}
.fm-panel[data-fm-show="facility"] .fm-row[data-fm-team="housekeeping"],.fm-panel[data-fm-show="housekeeping"] .fm-row[data-fm-team="facility"]{display:none}
.hm-tabs.hm-tabs-4{grid-template-columns:repeat(4,1fr)}.hm-tabs.hm-tabs-4 button{font-size:14px}
.hm-actions{display:flex;gap:8px;margin-bottom:12px}.hm-actions .hm-new{margin-bottom:0;flex:2 1 auto;width:auto}
a.secondary.hm-rs{flex:1 1 auto;display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}
.hm-zimmerservice .hm-top{background:#0b4f43}
/* beta.114: Zeile „ohne Zimmer“ je Kategorie (Überbuchung, Buchen ohne Zimmerauswahl, Neuordnen) */
.plan-table .cell.room.loose { background: #faf6ea; color: #6b5a2e; border-top: 1px dashed #d8c99f; }
.plan-table.row-sized .cell.room.loose { height: auto; min-height: 0; }
.plan-table .cell.room.loose strong { font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.plan-table .cell.room.loose small, .plan-table.row-compact .cell.room.loose small { display: block; font-size: 10.5px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.plan-table .cell.room.loose.overbooked { background: #fdecec; color: #b91c1c; border-top-color: #f3b4b4; }
.plan-table .cell.loose-day { background: #fdfbf5; border-top: 1px dashed #ece3c8; }
.plan-table .cell.loose-day.we { background: #f6f2e6; }
.plan-table .cell.free.loose-day.over, .plan-table .cell.free.loose-day.over.we, .plan-table .cell.free.loose-day.over.today { background: #fbe1e1; }
.plan-table > .stay.bar.loose-stay, .legend-chip.loose { outline: 2px dashed #d97706; outline-offset: -2px; }
.command-matrix .cell.room.loose { position: sticky; left: 0; z-index: 2; }
.plan-table .cell.room.loose strong { color: inherit; }

/* Buchungsakte: Farbe nach Art (beta.115). Farbtöne je Farbschema als Variablen; Fasten grün, Übernachtung blau wie im Plan. */
body{--kind-night:#2563eb;--kind-night-soft:#eff6ff;--kind-night-ink:#1e3a8a;--kind-fasten:#16a34a;--kind-fasten-soft:#f0fdf4;--kind-fasten-ink:#14532d}
body[data-layout="zen"]{--kind-night:#0369a1;--kind-night-soft:#f0f9ff;--kind-night-ink:#075985;--kind-fasten:#15803d;--kind-fasten-soft:#f0fdf4;--kind-fasten-ink:#14532d}
body[data-layout="neumorph"]{--kind-night:#4a77a3;--kind-night-soft:#e3edf8;--kind-night-ink:#1e3a8a;--kind-fasten:#377a56;--kind-fasten-soft:#e2f1e8;--kind-fasten-ink:#1f5135}
body[data-layout="salbei"]{--kind-night:#4f6d8a;--kind-night-soft:#edf1f4;--kind-night-ink:#2c4258;--kind-fasten:#2f5d4c;--kind-fasten-soft:#e3ece5;--kind-fasten-ink:#1e4a37}
body[data-layout="graphit"]{--kind-night:#3b6ea5;--kind-night-soft:#eaf1f8;--kind-night-ink:#1f3a5c;--kind-fasten:#2f855a;--kind-fasten-soft:#e8f5ee;--kind-fasten-ink:#1d5238}
.record-modal.rec-kind-night{--kind:var(--kind-night);--kind-soft:var(--kind-night-soft);--kind-ink:var(--kind-night-ink)}
.record-modal.rec-kind-fasten{--kind:var(--kind-fasten);--kind-soft:var(--kind-fasten-soft);--kind-ink:var(--kind-fasten-ink)}
.modal.record-modal.rec-kind-night,.modal.record-modal.rec-kind-fasten{border-top:6px solid var(--kind)}
.record-modal[class*="rec-kind-"] .rec-head{background:var(--kind-soft);border-left:5px solid var(--kind);border-radius:10px;padding:12px 14px;margin-top:22px}
.record-modal[class*="rec-kind-"] .rec-head .eyebrow{color:var(--kind-ink)}
.record-modal[class*="rec-kind-"] .rec-facts .rec-fact:first-child{border-left:4px solid var(--kind);background:var(--kind-soft)}
.rec-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.rec-kind-badge{white-space:nowrap;background:var(--kind);color:#fff;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:800;letter-spacing:.02em}
@media(max-width:600px){.record-modal[class*="rec-kind-"] .rec-head{padding-right:14px}.rec-tags{justify-content:flex-start}}
/* Stornieren mit Stornobedingungen (beta.116) */
.cx-form [hidden]{display:none}
.cx-terms p{margin:.4em 0}
.cx-tiers{list-style:none;padding:0;margin:.3em 0 .8em;display:flex;flex-wrap:wrap;gap:6px}
.cx-tiers li{border:1px solid rgba(127,127,127,.45);border-radius:999px;padding:2px 10px;font-size:13px;color:var(--muted)}
.cx-tiers li.on{border-color:currentColor;color:var(--text);font-weight:600}
.cx-basis{width:100%;border-collapse:collapse;margin:.4em 0 .8em;font-size:14px}
.cx-basis td{padding:3px 0;border-bottom:1px solid var(--line)}
.cx-basis td.num{text-align:right;white-space:nowrap;padding-left:12px}
.cx-basis tr.off td{color:var(--muted);text-decoration:line-through}
.cx-basis tr.off td small{text-decoration:none}
.cx-basis tr.sum td{font-weight:600;border-bottom:0}
.cx-mode{border:0;padding:0;margin:.6em 0;display:grid;gap:6px}
.cx-mode legend{font-weight:600;margin-bottom:4px}
.cxp-tiers{display:grid;gap:6px;margin:.4em 0 .8em}
.cxp-tier{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cxp-tier input{width:76px;flex:0 0 76px;padding:6px 8px}
.cxp-small input{max-width:120px}
.cxp-tier small{color:var(--muted)}
.cxp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.cxp-excl{display:grid;gap:4px;margin:.4em 0}
.alfred-note{width:100%;border:1px solid #c8d2da;border-radius:9px;padding:8px 10px;margin-top:4px;resize:vertical;font:inherit}
/* Push-Benachrichtigungen (beta.118) */
.hm-push{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;background:#fff;border:1px solid #dce3e8;border-radius:12px}
.hm-push small{display:block;flex:1 1 100%;color:#657782;font-size:13px;line-height:1.4}
.hm-push .hm-big{flex:1 1 100%;margin:0}
.hm-push-on{flex:1 1 auto;font-weight:750;color:#0b6b52}
.hm-push .secondary{min-height:40px}
.hm-push small.hm-push-msg{color:#1e639b;font-weight:650}

/* Personalakte und Rechte (beta.120) */
.pers-tabs{margin:14px 0 10px}
.pers-sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pers-sec-head .guest-h{margin:22px 0 10px}
.pers-tag.aktiv{background:#dff3ec;color:#08715d}.pers-tag.kommt{background:#e3eefb;color:#1e639b}.pers-tag.ausgetreten{background:#eceff1;color:#56636d}
.notice.pers-warn{background:#fff1e6;color:#8a4512}
.pers-sec-head .small,.notice .small,.fin-main .row .small{padding:5px 10px;font-size:12px}
.pers-flag{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#c46a1b;color:#fff;font-size:12px}
.pers-note .pers-text{white-space:pre-wrap;color:inherit;margin:4px 0}
.pers-expired{color:#a82929}
.rights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:10px 0}
.rights-group{border:1px solid #dce3e8;border-radius:10px;padding:8px 12px;margin:0}
.rights-group legend{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7a8a95;padding:0 4px}
.rights-item.changed{font-weight:650}
.rights-item .tag{margin-left:4px}
.rights-diff{background:#fff1e6;color:#8a4512}
body[data-layout="graphit"] .rights-group{border-color:#3a4450}
body[data-layout="graphit"] .pers-tag.aktiv{background:#1f3b33;color:#8fe0c6}
body[data-layout="graphit"] .notice.pers-warn,body[data-layout="graphit"] .rights-diff{background:#3d2a17;color:#f2c48a}
/* Alfred als Figur auf dem Bildschirm (beta.121): drei Ebenen aus alfred-figur.png, gehen per CSS; Position setzt alfred-figur.js. */
.alfred{grid-template-rows:auto 1fr auto auto auto}
.alfred[hidden]{display:none}
.alfred-fig-opt{display:flex;gap:8px;align-items:center;padding:4px 14px 10px;font-size:12.5px;color:#4a5866;cursor:pointer}
.afig{position:fixed;left:0;top:0;z-index:55;width:44px;height:130px;cursor:pointer;transition-property:transform;transition-timing-function:linear;will-change:transform}
.afig[hidden]{display:none}
.afig.touring{z-index:78;cursor:default}
.afig-man{position:absolute;inset:0;transform-origin:50% 100%;animation:afig-idle 4.5s ease-in-out infinite}
.afig.face-left .afig-man{scale:-1 1}
.afig-man img{position:absolute;left:0;top:0;width:44px;height:130px;max-width:none;pointer-events:none;user-select:none}
.afig-body{clip-path:inset(0 0 29% 0)}
.afig-leg{transform-origin:47.5% 56%}
.afig-l{clip-path:inset(54% 52.5% 0 0)}
.afig-r{clip-path:inset(54% 0 0 47.5%)}
.afig.walking .afig-man{animation:afig-bob .28s ease-in-out infinite alternate}
.afig.walking .afig-l{animation:afig-leg .56s ease-in-out infinite alternate}
.afig.walking .afig-r{animation:afig-leg .56s ease-in-out infinite alternate-reverse}
.afig.pointing .afig-man{animation:none;transform:rotate(6deg) translateY(-2px);transition:transform .25s}
.afig.nod .afig-man{animation:afig-nod .6s ease-in-out 2}
.afig-shadow{position:absolute;left:5px;right:5px;bottom:-3px;height:7px;border-radius:50%;background:#0f1e2d33}
.afig:focus-visible{outline:3px solid #c69431;outline-offset:4px;border-radius:12px}
.afig-x{position:absolute;top:-8px;right:-16px;width:22px;height:22px;padding:0;border-radius:50%;border:1px solid #cfd8df;background:#fff;color:#17202c;font-size:14px;line-height:1;opacity:0;transition:opacity .2s;cursor:pointer}
.afig:hover .afig-x,.afig:focus-within .afig-x{opacity:1}
.afig.touring .afig-x{display:none}
@keyframes afig-idle{0%,100%{transform:none}50%{transform:scaleY(1.01) rotate(.5deg)}}
@keyframes afig-bob{from{transform:translateY(0) rotate(-1.5deg)}to{transform:translateY(-3px) rotate(1.5deg)}}
@keyframes afig-leg{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}
@keyframes afig-nod{50%{transform:translateY(-6px)}}
.afig-ring{position:fixed;left:0;top:0;z-index:77;border:3px solid #c69431;border-radius:12px;box-shadow:0 0 0 4000px #0f1e2d26;pointer-events:none;animation:afig-pulse 1.4s ease-in-out infinite}
@keyframes afig-pulse{50%{border-color:#e8b85a;box-shadow:0 0 0 4000px #0f1e2d26,0 0 0 7px #c6943140}}
.afig-bubble{position:fixed;left:0;top:0;z-index:79;width:min(300px,calc(100vw - 32px));background:#fff;color:#17202c;border:1px solid #cfd8df;border-radius:14px;box-shadow:0 18px 40px #0f1e2d44;padding:12px 14px;font-size:14px;line-height:1.45;text-align:left}
.afig-bubble p{margin:0 0 6px}
.afig-count{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6b7785}
.afig-intro{color:#7a5a1c;font-style:italic}
.afig-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.afig-row button{padding:6px 12px}
.afig-bubble::before{content:"";position:absolute;top:22px;width:12px;height:12px;background:#fff;border:1px solid #cfd8df;transform:rotate(45deg)}
.afig-bubble.tail-left::before{left:-7px;border-right:0;border-top:0}
.afig-bubble.tail-right::before{right:-7px;border-left:0;border-bottom:0}
@media (prefers-reduced-motion:reduce){.afig,.afig *{animation:none!important;transition:none!important}.afig-ring{animation:none}}
@media print{.afig,.afig-ring,.afig-bubble{display:none!important}}

/* Einfache Ansicht „Simple Handling“ (beta.124): große Kacheln, große Schrift, wenig auf einmal. Farben folgen dem Farbschema. */
.simple-shell{--sv-accent:#185d91;--sv-soft:#eaf2f8;--sv-card:#fff;--sv-line:#dce3e8;min-height:100vh}
body[data-layout="zen"] .simple-shell{--sv-accent:#0f172a;--sv-soft:#f1f5f9}
body[data-layout="salbei"] .simple-shell{--sv-accent:#2f5d4c;--sv-soft:#e3ece5;--sv-line:#d9d2c3}
body[data-layout="graphit"] .simple-shell{--sv-accent:#b7791f;--sv-soft:#fdf3e1;--sv-line:#cfd5dc}
body[data-layout="neumorph"] .simple-shell{--sv-accent:#5a67d8;--sv-soft:#e3e8f4;--sv-card:#ebf0f7;--sv-line:transparent}
.simple-main{max-width:1240px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 60px}
.simple-top .nav-btn{font-size:16px;padding:10px 16px}
.simple-hello h1{font-size:clamp(26px,3vw,36px);margin:4px 0 6px}.simple-hello p{font-size:17px;margin:0 0 10px;opacity:.8}
.simple-hello .day-change{display:inline-flex;gap:12px;align-items:center;margin:4px 0 0}
.simple-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:18px;margin-top:22px}
.simple-tile{position:relative;display:grid;align-content:start;gap:6px;min-height:150px;padding:22px 20px;text-align:left;border:1px solid var(--sv-line);border-radius:18px;background:var(--sv-card);color:inherit;box-shadow:0 2px 8px #0f172a14;transition:transform .12s,box-shadow .12s}
.simple-tile:hover,.simple-tile:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px #0f172a22;outline:3px solid var(--sv-accent);outline-offset:2px}
.simple-tile strong{font-size:22px;line-height:1.2}.simple-tile small{font-size:15px;opacity:.75}
.simple-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--sv-soft);color:var(--sv-accent);font-size:28px;font-weight:700;line-height:1}
.simple-count{position:absolute;top:18px;right:18px;min-width:44px;padding:6px 10px;border-radius:99px;background:var(--sv-accent);color:#fff;font-size:22px;text-align:center}
.simple-count.zero{background:var(--sv-soft);color:var(--sv-accent)}
body[data-layout="neumorph"] .simple-tile{box-shadow:8px 8px 18px #a6b4c873,-8px -8px 18px #fff}
.simple-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:18px}.simple-bar h1{margin:0;font-size:clamp(24px,2.6vw,32px)}
.simple-back{font-size:18px;padding:12px 20px;border-radius:12px}
.simple-body{display:grid;gap:12px}
.simple-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--sv-line);border-radius:14px;background:var(--sv-card)}
.simple-row.late{border-left:6px solid #c05621}.simple-row.done{opacity:.65}.simple-row.done,.simple-row.done *{text-decoration:none}
.simple-room{font-size:26px;font-weight:700;color:var(--sv-accent)}
.simple-guest strong{display:block;font-size:20px}.simple-guest small{display:block;font-size:15px;opacity:.75;margin-top:2px}
.simple-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.simple-actions button{font-size:17px;padding:12px 18px;border-radius:12px;min-height:48px}
.simple-done{align-self:center;font-weight:600;color:#2f855a}
.simple-sub{margin:18px 0 0;font-size:18px}
.simple-empty{font-size:19px;padding:30px;text-align:center;border:1px dashed var(--sv-line);border-radius:14px;background:var(--sv-card)}
.simple-panels .panel{max-width:none}
.simple-panels{display:grid;gap:18px}
.simple-plan .command-matrix{border:1px solid var(--sv-line);border-radius:14px;background:var(--sv-card);overflow:auto}
.simple-selected{margin:10px 0}.simple-hint{margin:10px 0}
.simple-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:12px}
.simple-group{border:1px solid #dce3e8;border-radius:12px;padding:14px}
.simple-group h3{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px}
.simple-group .tag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:#eef1f4}.simple-group .tag.ok{background:#e3f3e9;color:#22603d}
.simple-switch{font-weight:600}
.simple-picks{display:grid;gap:2px;margin:4px 0 10px}.simple-picks label.check{align-items:flex-start}.simple-picks small.tag{color:#9c4221}
@media(max-width:760px){.simple-row{grid-template-columns:1fr}.simple-actions{justify-content:flex-start}.simple-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.simple-tile{min-height:120px;padding:16px 14px}.simple-tile strong{font-size:18px;overflow-wrap:anywhere}.simple-count{top:12px;right:12px;min-width:36px;font-size:18px}}

/* Sprachen der einfachen Ansicht (beta.125): Sprachknopf oben, Auswahl mit sechs großen Knöpfen. */
.simple-lang span{font-size:18px;line-height:1}
.simple-langs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(130px,100%),1fr));gap:12px;margin:14px 0}
.simple-lang-choice{display:grid;gap:4px;min-height:72px;padding:14px 16px;font-size:18px}
.simple-lang-choice b{font-size:24px;letter-spacing:.04em;opacity:.7}

/* Kontrollansicht „Unterseiten prüfen“ (beta.129): großes Fenster mit Seitenliste links und Rahmen rechts */
.modal-back.pc-back{align-items:stretch;place-items:stretch;padding:12px;overflow:hidden}
.modal.pc-panel{width:100%;max-width:none;height:calc(100vh - 24px);height:calc(100dvh - 24px);max-height:none;display:flex;flex-direction:column;padding:14px 16px;overflow:hidden}
.pc-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.pc-head h3{margin:0}.pc-head .eyebrow{margin:0}
.pc-head-actions{display:flex;gap:8px;align-items:center}
.pc-body{flex:1;min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px;margin-top:10px}
.pc-list{overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:4px}
.pc-group{margin:10px 0 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.7}.pc-group:first-child{margin-top:0}
.pc-item{text-align:left;border:1px solid var(--line,#d7dce3);border-radius:8px;background:transparent;color:inherit;padding:6px 9px;display:flex;flex-direction:column;gap:1px;font:inherit}
.pc-item small{opacity:.72;font-size:12px}.pc-item:hover{border-color:#8aa6bd}
.pc-item.active{border-color:#112e48;box-shadow:inset 4px 0 0 #112e48}
.pc-view{min-width:0;min-height:0;display:flex;flex-direction:column}
.pc-empty{margin:auto;max-width:420px;text-align:center}
.pc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-bottom:8px}.pc-title{margin-right:auto}
.pc-sizes,.pc-actions{display:flex;gap:4px;flex-wrap:wrap}
.pc-size.active{background:#112e48;color:#fff;border-color:#112e48}
.pc-stage{flex:1;min-height:0;overflow:auto;background:repeating-linear-gradient(135deg,#e9edf0,#e9edf0 8px,#e1e6ea 8px,#e1e6ea 16px);border-radius:10px;display:flex;justify-content:center;padding:8px}
.pc-frame{border:0;background:#fff;height:100%;min-height:460px;border-radius:6px;box-shadow:0 4px 18px #0003}
.pc-frame.w-full{width:100%}.pc-frame.w-tablet{width:1024px;flex:0 0 auto}.pc-frame.w-phone{width:390px;flex:0 0 auto}
body[data-layout="graphit"] .pc-item.active,body[data-layout="graphit"] .pc-size.active{border-color:#f5b544;box-shadow:inset 4px 0 0 #f5b544}
body[data-layout="graphit"] .pc-size.active{background:#f5b544;color:#1f2933;box-shadow:none}
@media (max-width:760px){.pc-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.pc-list{max-height:28vh}}
/* Support-Telefon NHZ (beta.130) */
.support-tel{font-weight:650;white-space:nowrap;text-decoration:none;color:inherit;border-bottom:1px dotted currentColor}
.support-tel:hover,.support-tel:focus{text-decoration:none;border-bottom-style:solid}
.app-footer .support-tel{color:inherit}
.login-support{margin:8px 0 0;text-align:center;font-size:13px;color:#6b7a88}
.license-support{margin:6px 0 0;font-size:14px}
.license-support span{margin-right:6px}
.demo-band .demo-tel{flex:0 0 auto;white-space:nowrap}
.demo-band .demo-tel .support-tel{color:#fff;border-bottom-color:#fff}
.technical-list .support-tel.state{font-size:14px}
.alfred-msg .support-tel{font-size:15px}

/* Summen- und Saldenliste und DATEV (beta.131) */
.susa-table tr.susa-class td{background:#f3f6f8;font-weight:750;color:#1e639b;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:8px 12px}
.susa-table tr.susa-sub td{font-weight:700;border-top:1px solid #c8d2da}
.susa-table td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.susa-print-head{display:none}
@media print{.susa-bar{display:none!important}.susa-print-head{display:block;font-weight:700;margin:0 0 8px}.susa-table{font-size:10px}.susa-table td,.susa-table th{padding:3px 5px}.susa-table tr.susa-class td{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Lexware-Anbindung (beta.132) */
.lex-cat{display:block}.lex-cat select,.lex-cat input{width:100%}
