/* ===== HOTEL — Hotelliste (Stammdaten, Preise, rote Liste) ===== */

.hotel-bar { display:flex; align-items:center; gap:14px; margin:0 0 16px; flex-wrap:wrap; }
.hotel-search { position:relative; flex:0 0 340px; max-width:100%; }
.hotel-search i { position:absolute; left:10px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--text-muted); }
.hotel-search input { width:100%; padding:8px 10px 8px 32px; border:1px solid var(--border); border-radius:8px; font-size:13px; }
.hotel-search input:focus { outline:none; border-color:var(--brand); }
.hotel-toggle { display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--text-muted); cursor:pointer; }
.hotel-count { margin-left:auto; font-size:12.5px; color:var(--text-muted); }
.hotel-count-red { color:#b91c1c; font-weight:600; }

.hotel-tablewrap { border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.hotel-table { width:100%; border-collapse:collapse; font-size:13px; background:var(--surface,#fff); }
.hotel-table thead th { text-align:left; padding:9px 14px; font-size:11.5px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-muted); background:var(--bg-soft,#f2f4f7); border-bottom:1px solid var(--border); font-weight:600; }
.hotel-table th.num, .hotel-table td.num { text-align:right; }
.hotel-table td { padding:11px 14px; border-top:1px solid var(--border); vertical-align:top; }
.hotel-row:hover td { background:var(--bg-soft,#f8fafc); }
.hotel-row.is-gesperrt td { background:#fef2f2; }
.hotel-row.is-gesperrt:hover td { background:#fee2e2; }
.hotel-row.is-inaktiv { opacity:.6; }
.hotel-row.is-open td { background:var(--brand-soft,#e0f2fe); }

.hotel-name b { font-size:13.5px; color:var(--text); }
.hotel-ort { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--text-muted); margin-top:2px; }
.hotel-dim { color:var(--text-dim,#9ca3af); font-size:12px; }
.hotel-mini { width:13px; height:13px; vertical-align:-2px; margin-right:3px; }
.hotel-linkbtn { background:none; border:none; color:var(--brand-dark); font-size:12px; cursor:pointer; padding:0; text-decoration:underline; }
.hotel-geo { width:14px; height:14px; vertical-align:-2px; margin-left:5px; }
.hotel-geo.ok { color:#0099cc; }
.hotel-geo.no { color:var(--text-dim,#cbd5e1); }

/* Kontakt-Firma Tag (Liste) + Autocomplete (Formular) */
.hotel-firma-tag { display:inline-flex; align-items:center; gap:2px; color:var(--text-muted); font-size:12.5px; }
.hotel-firma-tag a { color:var(--brand-dark); text-decoration:none; }
.hotel-firma-tag a:hover { text-decoration:underline; }
.hotel-firma { position:relative; display:flex; align-items:center; gap:6px; }
.hotel-firma > input:not([type=hidden]) { flex:1; padding:7px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; font-weight:400; color:var(--text); background:#fff; }
.hotel-firma > input:focus { outline:none; border-color:var(--brand); }
.hotel-firma-x { border:1px solid var(--border); background:#fff; border-radius:8px; width:32px; min-width:32px; cursor:pointer; color:var(--text-muted); font-size:16px; line-height:1; }
.hotel-firma-x:hover { border-color:#dc2626; color:#dc2626; }
.hotel-firma-res { position:absolute; top:100%; left:0; right:38px; z-index:20; background:#fff; border:1px solid var(--border-strong,#cbd5e1); border-radius:8px; margin-top:4px; box-shadow:0 8px 24px rgba(0,0,0,.12); max-height:220px; overflow:auto; }
.hotel-firma-opt { padding:7px 10px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--border); }
.hotel-firma-opt:last-child { border-bottom:none; }
.hotel-firma-opt:hover { background:var(--brand-soft,#e0f2fe); }
.hotel-firma-opt.none { color:var(--text-muted); cursor:default; }
.hotel-firma-picked { padding:6px 2px; font-size:12.5px; color:#15803d; display:flex; align-items:center; gap:4px; }
.hotel-firma-picked i { width:14px; height:14px; }

/* Sortier-Header + Zeilenklick */
.hotel-sortable { cursor:pointer; user-select:none; white-space:nowrap; }
.hotel-sortable:hover { color:var(--brand-dark); }
.hotel-row.hotel-clk { cursor:pointer; }
.hotel-caret { width:14px; height:14px; vertical-align:-2px; margin-right:4px; color:var(--text-muted); }

/* Zusatzinfos Zeile/Preis */
.hotel-zusatz { font-size:11px; color:var(--text-muted); }
.hotel-extra { font-size:11.5px; color:var(--text-muted); margin-top:3px; }

/* Bewertung + Rote-Liste-Warnung */
.hotel-bew-badge { display:inline-block; background:#fef9c3; color:#854d0e; border-radius:20px; padding:0 7px; font-size:11px; font-weight:700; margin-left:5px; }
.hotel-bew-badge.schlecht { background:#fee2e2; color:#b91c1c; }
.hotel-redlist-warn { display:flex; align-items:center; gap:3px; font-size:11px; color:#b45309; margin-top:4px; }
.hotel-bew { margin-top:12px; border-top:1px solid var(--border); padding-top:10px; }
.hotel-bew-list { display:flex; flex-direction:column; gap:4px; margin:6px 0; }
.hotel-bew-item { font-size:12.5px; }
.hotel-bew-stars { color:#f59e0b; letter-spacing:1px; }
.hotel-bew-add { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.hotel-bew-add select, .hotel-bew-add input { padding:6px 9px; border:1px solid var(--border); border-radius:8px; font-size:13px; }
.hotel-bew-add input { flex:1; min-width:160px; }

/* Checkboxen (Parkplatz/Zahlungsarten) im Hotel-Formular */
.hotel-f-grid label.chk { flex-direction:row; align-items:center; gap:6px; align-self:end; padding-bottom:8px; }
.hotel-f-grid label.chk input { width:auto; }
.hotel-checks { display:flex; flex-wrap:wrap; gap:12px; }
.hotel-chk { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:400; color:var(--text); }

/* Anlagen-Sektion */
.hotel-beleg-sec { margin-top:14px; border-top:1px solid var(--border); padding-top:12px; }
.hotel-beleg-lbl { display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--text-muted); margin-bottom:8px; }

.hotel-kontakt { display:flex; flex-direction:column; gap:3px; }
.hotel-kontakt a { color:var(--brand-dark); text-decoration:none; font-size:12.5px; }
.hotel-kontakt a:hover { text-decoration:underline; }

/* Aktuelle Preise (Listenspalte) */
.hotel-preise { display:flex; flex-direction:column; gap:4px; }
.hotel-pline { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.hotel-ztyp { font-size:12px; color:var(--text-muted); min-width:70px; }
.hotel-preis { font-weight:600; color:var(--text); font-size:13px; }
.hotel-tag { display:inline-block; padding:1px 8px; border-radius:20px; font-size:11.5px; font-weight:600; }
.hotel-tag.rab { background:#dcfce7; color:#15803d; }
.hotel-tag.code { background:var(--brand-soft); color:var(--brand-dark); font-family:ui-monospace,monospace; }
.hotel-kond-txt { font-size:12px; color:var(--text-muted); max-width:260px; }

.hotel-status { display:inline-flex; align-items:center; gap:2px; padding:2px 9px; border-radius:20px; font-size:11.5px; font-weight:600; }
.hotel-status.aktiv { background:#dcfce7; color:#15803d; }
.hotel-status.inaktiv { background:var(--border,#e5e7eb); color:var(--text-muted); }
.hotel-status.gesperrt { background:#fee2e2; color:#b91c1c; }
.hotel-sperr-grund { font-size:11.5px; color:#b91c1c; margin-top:3px; max-width:200px; }

.hotel-act { white-space:nowrap; }
.hotel-ic { width:16px; height:16px; margin-left:9px; color:var(--text-muted); cursor:pointer; vertical-align:middle; }
.hotel-ic:hover { color:var(--brand-dark); }
.hotel-ic.active { color:var(--brand-dark); }
.hotel-ic.warn:hover { color:#b45309; }
.hotel-ic.del:hover { color:#dc2626; }
.hotel-ic.ok { color:#15803d; }

.hotel-empty { text-align:center; color:var(--text-muted); padding:26px 14px; }
.hotel-foot { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim,#9ca3af); margin-top:12px; }

/* ===== Hotel-Stammdaten-Formular ===== */
.hotel-edit td { background:var(--brand-soft,#e0f2fe) !important; padding:0 !important; }
.hotel-form { padding:16px; }
.hotel-f-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.hotel-f-grid label { display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:600; color:var(--text-muted); }
.hotel-f-grid label.wide { grid-column:span 2; }
.hotel-f-grid input { padding:7px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; font-weight:400; color:var(--text); background:#fff; }
.hotel-f-grid input:focus { outline:none; border-color:var(--brand); }
.hotel-f-hint { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-muted); margin-top:12px; }
.hotel-f-actions { display:flex; gap:8px; margin-top:14px; }
@media (max-width:900px) { .hotel-f-grid { grid-template-columns:repeat(2,1fr); } .hotel-f-grid label.wide { grid-column:span 2; } }

/* ===== Preis-Panel (Subtabelle) ===== */
.hotel-price-panel td { background:#f8fafc !important; padding:0 !important; border-top:none !important; }
.hotel-pp { padding:14px 16px 18px; border-left:3px solid var(--brand); }
.hotel-pp-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; font-size:13.5px; color:var(--text); }
.hotel-pp-head > span { display:flex; align-items:center; gap:6px; }
.btn.sm { padding:5px 10px; font-size:12px; }

.hotel-ptable { width:100%; border-collapse:collapse; font-size:12.5px; background:var(--surface,#fff); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.hotel-ptable thead th { text-align:left; padding:7px 10px; font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--text-muted); background:var(--bg-soft,#f2f4f7); border-bottom:1px solid var(--border); font-weight:600; }
.hotel-ptable th.num, .hotel-ptable td.num { text-align:right; }
.hotel-ptable th.ctr, .hotel-ptable td.ctr { text-align:center; }
.hotel-ptable td { padding:8px 10px; border-top:1px solid var(--border); vertical-align:top; }
.hotel-prow.is-current td { background:#f0fdf4; }
.hotel-prow.is-future td { background:#fffbeb; }
.hotel-prow.is-future b, .hotel-prow.is-future td { color:var(--text-muted); }

.hotel-badge { display:inline-block; margin-left:6px; padding:0 7px; border-radius:20px; font-size:10.5px; font-weight:700; vertical-align:1px; }
.hotel-badge.cur { background:#dcfce7; color:#15803d; }
.hotel-badge.fut { background:#fef3c7; color:#92400e; }
.hotel-badge.old { background:var(--border,#e5e7eb); color:var(--text-muted); }
.hotel-pp-foot { font-size:11.5px; color:var(--text-dim,#9ca3af); margin:10px 2px 0; }

/* Preiszeilen-Editor */
.hotel-pedit td { background:var(--brand-soft,#e0f2fe) !important; padding:0 !important; }
.hotel-pform { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:14px; }
.hotel-pform label { display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:600; color:var(--text-muted); }
.hotel-pform label.full { grid-column:1 / -1; }
.hotel-pform label.chk { flex-direction:row; align-items:center; gap:6px; align-self:end; padding-bottom:8px; }
.hotel-pform input, .hotel-pform select, .hotel-pform textarea { padding:7px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; font-weight:400; color:var(--text); background:#fff; }
.hotel-pform input:focus, .hotel-pform select:focus, .hotel-pform textarea:focus { outline:none; border-color:var(--brand); }
.hotel-pform label.chk input { width:auto; }
.hotel-pform textarea { resize:vertical; font-family:inherit; }
.hotel-pform-actions { grid-column:1 / -1; display:flex; gap:8px; margin-top:2px; }
@media (max-width:900px) { .hotel-pform { grid-template-columns:repeat(2,1fr); } }

/* ===== Sperr-Popup ===== */
.hotel-pop { position:fixed; z-index:1000; background:var(--surface,#fff); border:1px solid var(--border-strong,#cbd5e1); border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.18); padding:14px; width:280px; display:flex; flex-direction:column; gap:10px; }
.hotel-pop-t { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:#b91c1c; }
.hotel-pop input { padding:8px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; }
.hotel-pop input:focus { outline:none; border-color:var(--brand); }
.hotel-pop-btns { display:flex; gap:8px; justify-content:flex-end; }
