/* ── Listen / Tabellen ────────────────────────────────────────────────────── */

/* ── List Box Card (systemweit) ─────────────────────────────────────────── */
.li-box-card { min-width: 0; border-radius: 12px; padding: .7rem; border: 1px solid var(--border); margin-bottom: 1.5rem; }
.li-box-card--mini { padding: .7rem; }
.li-box-card h2 { padding-top: .2rem; padding-left: .4rem; font-size: 1.1rem; }

/* ── List Box (systemweit) ───────────────────────────────────────────────── */
.list-box { list-style: none; margin: 0; padding: 0; }
.list-box li { padding: 5px 0; }
.list-box li:last-child { padding-bottom: 0; }
.li-item { border-radius: 10px; display: flex; flex-direction: column; justify-content: center; padding: .7rem .8rem; background: var(--bg-white); color: inherit; text-decoration: none; }
a.li-item { transition: background-color .12s; cursor: pointer; }
a.li-item:hover { background: var(--body-bg); }
.li-item--row { display: grid; grid-template-columns: 2fr 1fr 1fr; align-items: center; gap: 3rem; flex-direction: unset; }
.li-item--admin { display: grid; grid-template-columns: 60px 40px 2rem 2fr 1.5fr auto; align-items: center; gap: 1rem; flex-direction: unset; }
.admin-knd-id-btn { background: none; border: none; padding: 0; font-family: inherit; font-size: 1rem; font-weight: 800; color: var(--accent); cursor: pointer; }
.admin-knd-id-btn:hover { text-decoration: underline; }
.admin-test-accounts { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.admin-search-form { display: flex; gap: .5rem; max-width: 420px; margin-bottom: 1.5rem; }
.admin-search-input { max-width: 260px; }
.admin-por-logo { height: 20px; border-radius: 4px; }
.admin-tabs { margin-bottom: 1.5rem; }
.admin-memo-form { margin-bottom: 1.5rem; }
.admin-memo-board { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.admin-memo-note {
    width: 207px;
    min-height: 160px;
    padding: 1rem;
    background: #fdf6b2;
    color: #4a4210;
    box-shadow: 2px 4px 10px rgba(0,0,0,.15);
    transform: rotate(-1deg);
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.admin-memo-note:nth-child(even) { transform: rotate(1deg); }
.admin-memo-note--erledigt { opacity: .5; }
.admin-memo-note-head { display: flex; align-items: center; justify-content: space-between; }
.admin-memo-knd { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .85rem; color: inherit; text-decoration: none; }
.admin-memo-knd:hover { text-decoration: underline; }
.admin-memo-note .btn-icon { color: inherit; }
.admin-memo-text { flex: 1; white-space: pre-wrap; font-size: .95rem; }
.admin-memo-note--erledigt .admin-memo-text { text-decoration: line-through; }
.admin-memo-date { font-size: .75rem; opacity: .7; }
.badge--primaer { background: var(--accent-yellow); color: #fff; }
.nach-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.nach-filter { margin-bottom: 1rem; }
.nach-item { grid-template-columns: 2fr 1.4fr 1.4fr 160px 110px; gap: 1rem; align-items: center; }
.nach-item--header { background: transparent; padding-bottom: 0; letter-spacing: .03em; color: var(--muted); }
.nach-led { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-left: .3rem; margin-right: .5rem; flex-shrink: 0; background: currentColor; animation: nach-led-pulse 1.8s ease-in-out infinite; }
.nach-led--anfrage      { color: #00d1ff; }
.nach-led--reservierung { color: #f7b650; }
.nach-led--frei    { color: #16a34a; animation: none; }
.nach-led--belegt  { color: #dc2626; animation: none; }
.nach-led--aus     { color: var(--body-bg); animation: none; }
@keyframes nach-led-pulse {
    0%   { box-shadow: 0 0 0 0 currentColor; }
    60%  { box-shadow: 0 0 0 6px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}
.nach-versand-ok { color: #16a34a; }
.nach-versand-wartend { color: #b7791f; }
.nach-wrap { max-width: 900px; }
.nach-anmerkung { margin-top: 1rem; padding: .8rem 1rem; background: var(--body-bg); border-radius: 8px; }
.nach-antwort-tabs { margin-bottom: 1rem; }
.nach-antwort-text { width: 100%; box-sizing: border-box; font-family: inherit; }
.nach-pager { display: flex; align-items: center; gap: .75rem; justify-content: center; margin-top: 1rem; }
.nach-antworten-btn { margin-left: auto; }
.admin-typ-id { font-size: .75rem; margin-right: .3em; }
.mapping-body { padding: 1rem; }
.li-item--channels { display: grid; grid-template-columns: minmax(160px, 2fr) 1fr 1fr auto; align-items: center; gap: 1rem; flex-direction: unset; }
.li-channels-name { display: flex; align-items: center; gap: .6rem; min-width: 0; }
.li-box-actions { display: flex; align-items: center; gap: 1.8rem; justify-content: flex-end; }
.list-box li a { text-decoration: none; }

.li-item--step { flex-direction: row; align-items: center; justify-content: flex-start; gap: 1rem; min-height: unset; font-weight: 400; padding-right: 20px; }
.li-item--step:hover { background: var(--bg-white); }
.li-item--step .step-icon { flex-shrink: 0; font-size: 1.3rem; margin-left: .3rem; }
.li-item--step .step-text { flex: 1; display: flex; flex-direction: column; }
.li-item--step .step-text strong { display: block; }
.li-item--step .step-status { flex-shrink: 0; margin-left: auto; display: flex; align-items: center; justify-content: center; width: 1.4rem; height: 1.4rem; border-radius: 50%; }
.li-item--step .step-status--done { background: var(--bg-green); }
.li-item--step .step-status--done svg { width: .8rem; height: .8rem; stroke: var(--text-green); stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.gast-bezahlt { display: inline-flex; align-items: center; justify-content: center; width: 1rem; height: 1rem; border-radius: 50%; background: var(--body-bg); margin-left: -1px; margin-right: 4px; }
.gast-bezahlt .ti { font-size: .7rem; color: var(--body-text); }
.gast-naechte .ti-coins { margin-right: 3px; font-size: 1rem; }
.gast-naechte .ti-moon { margin-right: 4px; }
.li-item--step .step-status--todo { background: var(--border); color: var(--muted-light); }
.li-box-row1 { display: flex; align-items: center; gap: .7rem; }
.li-box-row2 { display: flex; align-items: center; gap: .35rem; margin-top: .6rem; padding-left: 3px; }
.li-box-row3 { display: flex; align-items: center; gap: .75rem; margin-top: .1rem; padding-left: 3px; }
.li-box-detail { display: inline-flex; align-items: center; gap: .25rem; }
.li-box-meta { margin-left: auto; display: flex; flex-direction: row; gap: .6rem; }
.li-item--row .li-box-meta { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-left: 0; }
.doc-list .li-item--row { grid-template-columns: auto 1fr auto; gap: 1rem; white-space: nowrap; }
.doc-list .li-box-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-list li a { border-left: 8px solid var(--accent-yellow); border-radius: 8px; }
.li-item--channels .li-box-meta { display: flex; flex-direction: column; gap: .1rem; margin-left: 0; }
.li-box-ort { font-weight: 400; display: inline-flex; align-items: center; gap: 1rem; color: inherit; }
.li-box-ort .ti { color: inherit; }
.li-box-date { margin-left: auto; font-size: .8rem; color: var(--muted); font-weight: 400; white-space: nowrap; }
.li-box-time { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; margin-left: auto; }
.li-box-time svg { width: .8rem; height: .8rem; flex-shrink: 0; stroke-width: 2; }
.li-box-name { display: inline-flex; align-items: center; gap: 1rem; font-weight: 400; color: inherit; }
.li-box-name .ti { color: inherit; }
.li-box-text { padding: 0 .4rem .1rem .4rem; font-weight: 400; }
.li-box-btn { margin: 1.5rem 0 .5rem 0; }


/* ── Objekt-Gruppen ───────────────────────────────────────────────────────── */
.li-box-card-header {
    padding: .2rem 1rem .8rem .6rem;
    font-weight: 700;
    font-size: 1rem;
    display: flex;
    align-items: center;
}

.cockpit-grid .li-box-card-header {
    padding: 0 0 .3rem 0;
}

.cockpit-grid .li-box-card-header .btn {
    font-size: .85rem;
    background: transparent;
}

.li-box-card-header .btn {
    margin-left: auto;
    transition: border-color .2s;
}

.li-box-card-header .btn:hover {
    border-color: var(--border);
}

.cockpit-ota-logos {
    display: flex;
    gap: .6rem;
    padding: .75rem .4rem;
}

.cockpit-ota-logo {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .75rem .5rem;
    border-radius: 8px;
}

.cockpit-ota-logo img {
    height: 32px;
    width: auto;
}

.cockpit-ota-logo--booking  { background: #0c3b7c; }
.cockpit-ota-logo--airbnb   { background: #FF5A5F; }
.cockpit-ota-logo--expedia  { background: #ffc60b; }
.cockpit-ota-logo--vrbo     { background: #143A74; }


.li-box-card-header-actions { display: flex; gap: 2rem; align-items: center; font-size: 14px; margin-left: auto; }
.li-box-card-action { padding: 1.3rem 1rem .6rem .4rem; }
.li-box-card-action--split { display: flex; align-items: center; justify-content: space-between; }
.tbl {
    width: 100%;
    border-collapse: collapse;
}

.tbl th {
    background: var(--bg-white);
    padding: .7rem 1rem;
    text-align: left;
    font-size: .9rem;
    font-weight: normal;
    color: var(--body-text);
    white-space: nowrap;
    border-bottom: 1px solid var(--border);
}

.tbl td {
    padding: .6rem 1rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.tbl tbody tr:last-child td { border-bottom: none; }

.tbl td.cell-actions { padding-left: 1.2rem; white-space: nowrap; display: flex; gap: 2rem; align-items: center; justify-content: flex-start; }
.tbl td.cell-del     { white-space: nowrap; width: 1px; }
.tbl .col-right      { text-align: right; white-space: nowrap; }
.tbl td.cell-right   { text-align: right; white-space: nowrap; }
.tbl td.cell-name    { font-weight: 600; white-space: nowrap; }
.tbl td.cell-meta    { font-size: 0.9rem; white-space: nowrap; }
.tbl td.cell-code    { font-size: 0.9rem; white-space: normal; }
.tbl td.cell-center  { text-align: center; }

.tbl input[type=text],
.tbl input[type=number] {
    width: 80px;
    padding: .45rem .75rem;
    border: 1px solid var(--border-input);
    border-radius: 4px;
    font-size: .9rem;
}

.tbl .input-addon input[type=text],
.tbl .input-addon input[type=number] { border-radius: 0 4px 4px 0; }

.tbl input[type=number]:focus {
    outline: 2px solid var(--accent);
    border-color: transparent;
}

/* ── Gast-Liste ──────────────────────────────────────────────────────────── */
.gast-filter-row { padding-top: 0; margin-top: -.6rem; margin-bottom: .8rem; }
.gast-export-wrap { position: relative; margin-left: auto; }
.gast-export-btn { white-space: nowrap; }
.gast-export-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 4px); background: var(--bg-white); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,.1); min-width: 180px; z-index: 100; overflow: hidden; }
.gast-export-wrap.open .gast-export-dropdown { display: block; }
.gast-export-dropdown a { display: block; padding: .55rem 1rem; color: var(--body-text); text-decoration: none; font-size: .9rem; }
.gast-export-dropdown a:hover { background: var(--sidebar-hover); }

.select2-img-flag { width: 20px; height: 20px; border-radius: 3px; padding: 0; margin-top: -3px; margin-right: 7px; vertical-align: middle; }
.select2-sub-option { display: inline-flex; align-items: center; }
.gast-pagination-bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 1.5rem 0 .25rem; }
.gast-perpage { display: flex; align-items: center; gap: .6rem; }
.gast-perpage-label { font-size: .85rem; color: var(--muted); white-space: nowrap; }
.gast-pagination { display: flex; align-items: center; gap: .5rem; }
.gast-pagination .btn-icon { padding: .65rem 1.1rem; }
.gast-pagination .btn-icon .ti { font-size: 1.2rem; }
.gast-pagination-info { font-size: .9rem; color: var(--muted); min-width: 50px; text-align: center; }
.gast-pagination .disabled { opacity: .4; pointer-events: none; }

.gast-header-row { padding: 0 !important; }
.gast-header {
    padding: .5rem 1.25rem !important;
    font-size: .75rem !important;
    font-weight: 700 !important;
    color: var(--muted) !important;
    letter-spacing: .04em;
    padding-top: .3rem !important;
    padding-bottom: .3rem !important;
    background: transparent !important;
    pointer-events: auto;
}
.gast-sort-link { display: inline-flex; align-items: center; gap: .25rem; color: var(--body-text); text-decoration: none; font-weight: 500; font-size: .85rem; letter-spacing: .04em; }
.gast-sort-link .ti { font-size: 1.05rem; }
.gast-sort-link:hover { color: var(--body-text); text-decoration: none; }
.gast-header li:last-child { text-align: right; }

.gast-liste { list-style: none; margin: 0; padding: 0; }
.gast-li { margin-bottom: .4rem; }
.gast-row { display: flex; }

.gast-toggle {
    flex-shrink: 0;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--body-bg);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    font-size: 1.1rem;
    -webkit-text-stroke: .5px currentColor;
    transition: background .15s, color .15s, transform .18s ease;
    border: none;
    color: var(--body-text);
}
.gast-toggle:hover { background: var(--border); color: var(--body-text); }
.gast-toggle--neu { position: relative; }
.gast-toggle--neu::after { content: ''; position: absolute; top: -2px; right: -2px; width: 12px; height: 12px; border-radius: 50%; background: #00d1ff; border: 2px solid var(--bg-white); }
.gast-toggle:active { transform: scale(.85); }
.gast-toggle .ti { transition: transform .25s ease; }
.gast-toggle[aria-expanded="true"] .ti { transform: rotate(180deg); }

.gast-details { background: var(--body-bg); border: 2px solid var(--bg-white); border-top: none; border-radius: 0 0 10px 10px; margin-top: -5px; margin-bottom: 20px; }
.gast-details-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    font-size: .9rem;
}
.gast-details-inner a[href^="mailto:"] { color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor; }
.gast-details-inner a[href^="mailto:"]:hover { opacity: .65; border-bottom-color: transparent; }
.gast-details-left { display: flex; flex-direction: column; }
.gast-details-cell { padding: 1rem 1.2rem; line-height: 1.7; }
.gast-details-extra .gast-details-cell { line-height: inherit; }
.gast-details-cell:first-child { border-bottom: 2px solid var(--bg-white); }
.gast-details-extra { display: flex; flex-direction: column; border-left: 2px solid var(--bg-white); }
.gast-details-extra .gast-details-cell:first-child { border-bottom: 2px solid var(--bg-white); }
.gast-details-label { font-weight: 600; display: block; margin-bottom: .15rem; font-size: .85rem; color: var(--muted); }
.gast-details-cell .ti { margin-right: 10px; }
.gast-badge-heute { display: inline-block; font-size: .75rem; font-weight: 500; background: var(--accent-yellow); color: var(--text-green); border-radius: 6px; padding: 1px 9px; margin-left: .4rem; vertical-align: middle; }
.gast-details-bearbeiten { display: flex; align-items: center; gap: 1rem; }
.gast-details-bearbeiten .btn-danger { margin-left: auto; }
.gast-details-bearbeiten .btn-danger .ti { margin-right: 0; }
.btn-inline-link { background: none; border: none; border-bottom: 1px dotted currentColor; padding: 0; font-size: inherit; color: inherit; cursor: pointer; line-height: 1.2; }
.btn-inline-link:hover { opacity: .65; border-bottom-color: transparent; }

/* child 4 = .gast-channel-img — nur mobil sichtbar */
.gast-item li:nth-child(4) { display: none; }

.gast-item {
    --gast-cols: 40px 90px 90px 70px 20px 1fr 130px 180px 80px;
    display: grid !important;
    list-style: none;
    margin: 0;
    width: 100%;
    grid-template-columns: var(--gast-cols);
    align-items: center;
    gap: .75rem;
    padding: .7rem 1rem;
    text-decoration: none;
    color: var(--body-text);
    transition: background .15s;
}

@media (max-width: 1200px) {
    /* Toggle · Anreise · Abreise · Nächte · Gastname · Badge · Erstellt */
    .gast-item {
        --gast-cols: 42px 88px 88px 70px 1fr 120px 65px;
        grid-template-rows: auto;
    }
    .gast-item li:nth-child(4)  { display: none; }
    .gast-item li:nth-child(6)  { display: none; }
    .gast-item li:nth-child(9)  { display: none; }
    .gast-header li:nth-child(4),
    .gast-header li:nth-child(6),
    .gast-header li:nth-child(9) { display: none !important; }
}

@media (max-width: 700px) {
    /* 3-Zeilen-Layout */
    /* Zeile 1: Toggle · Anreise · Abreise · ChannelImg */
    /* Zeile 2: (toggle) · Nächte · Gastname           */
    /* Zeile 3: (toggle) · Unterkunft · Erstellt        */
    .gast-item {
        grid-template-columns: 42px 1fr 1fr auto !important;
        grid-template-rows: auto auto auto;
        padding: .6rem .75rem;
        gap: .25rem .5rem;
    }
    .gast-item li:nth-child(1)  { grid-column: 1; grid-row: 1 / 4; align-self: start; }
    .gast-item li:nth-child(2)  { grid-column: 2; grid-row: 1; }
    .gast-item li:nth-child(3)  { grid-column: 3; grid-row: 1; }
    .gast-item li:nth-child(4)  { display: block; grid-column: 4; grid-row: 1; }
    .gast-item li:nth-child(5)  { grid-column: 2; grid-row: 2; }
    .gast-item li:nth-child(6)  { display: none; }
    .gast-item li:nth-child(7)  { grid-column: 3 / 5; grid-row: 2; }
    .gast-item li:nth-child(8)  { display: none; }
    .gast-item li:nth-child(9)  { display: block; grid-column: 2; grid-row: 3; }
    .gast-item li:nth-child(10) { display: block; grid-column: 3 / 5; grid-row: 3; }
    .gast-header-row { display: block !important; }
    .gast-header {
        grid-template-columns: 42px 78px 78px 58px 1fr 65px !important;
        grid-template-rows: auto !important;
    }
    .gast-header li { grid-column: auto !important; grid-row: auto !important; display: block !important; }
    .gast-header li:nth-child(4),
    .gast-header li:nth-child(6),
    .gast-header li:nth-child(8),
    .gast-header li:nth-child(9) { display: none !important; }

    /* view-toggle: horizontal scrollbar statt Wrap */
    .view-toggle { display: flex; overflow-x: auto; flex-wrap: nowrap; border-radius: 30px; scrollbar-width: none; margin-bottom: 1rem; }
    .view-toggle::-webkit-scrollbar { display: none; }
    .vt-tab { flex-shrink: 0; padding: .4rem .9rem; }

    /* Filter */
    .gast-filter-row .form-group { min-width: 0; flex: 1 1 100%; }
    .gast-filter-row .select2-container { width: 100% !important; min-width: 0 !important; }

    /* Details-Klappsbereich */
    .gast-details-inner { grid-template-columns: 1fr; }
    .gast-details-extra { border-left: none; border-top: 3px solid var(--bg-white); }

    /* Pagination */
    .gast-pagination-bar { grid-template-columns: auto 1fr auto; gap: .5rem; }
    .gast-perpage-label { display: none; }
}
.gast-item { cursor: pointer; }
.gast-item:hover { text-decoration: none; }

.gast-badge {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: .35rem;
    border-radius: 10px 5px 10px 5px;
    padding: 0 .8rem 0 0;
    white-space: nowrap;
    color: rgba(255,255,255,.95);
    background: var(--gast-badge-bg, #888);
    min-width: 115px;
    margin-top: 5px;
}
.sort-icon--inactive { opacity: .35; }
#filter-channel { width: 200px; }
#filter-jahr { width: 150px; }
.gast-badge-logo, .gast-badge-logo-m { width: 30px; height: 30px; border-radius: 8px 0 0 4px; object-fit: cover; margin-right: 3px; border: 1px solid var(--gast-badge-bg, #888); border-right: none; }
.gast-badge-logo[src$="liste-eigene-webseite.png"], .gast-badge-logo-m[src$="liste-eigene-webseite.png"] { width: 20px; height: 20px; margin: 5px; }
.gast-badge-logo[src$="liste-eigene.png"], .gast-badge-logo-m[src$="liste-eigene.png"],
.gast-badge-logo[src$="res_20.png"], .gast-badge-logo-m[src$="res_20.png"],
.gast-badge-logo[src$="res_21.png"], .gast-badge-logo-m[src$="res_21.png"] { width: 24px; height: 24px; margin: 3px; }
.gast-badge-label { font-size: .85rem; }

.gast-icons { display: flex; flex-direction: column; gap: 3px; }
.gast-icon-doc, .gast-icon-msg { display: block; width: 16px; height: 16px; }
.gast-icon-note { font-size: 1rem; }
.gast-icon-doc::before { content: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5 5.25581V16.5C17.5 19.5376 15.0376 22 12 22C8.96243 22 6.5 19.5376 6.5 16.5V5.66667C6.5 3.64162 8.14162 2 10.1667 2C12.1917 2 13.8333 3.64162 13.8333 5.66667V16.4457C13.8333 17.4583 13.0125 18.2791 12 18.2791C10.9875 18.2791 10.1667 17.4583 10.1667 16.4457V6.65116' stroke='%23000000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gast-icon-msg::before { content: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.99962 9.5H11.9996M7.99962 13H14.9996M12.4996 20C17.194 20 20.9996 16.1944 20.9996 11.5C20.9996 6.80558 17.194 3 12.4996 3C7.8052 3 3.99962 6.80558 3.99962 11.5C3.99962 12.45 4.15547 13.3636 4.443 14.2166C4.55119 14.5376 4.60529 14.6981 4.61505 14.8214C4.62469 14.9432 4.6174 15.0286 4.58728 15.1469C4.55677 15.2668 4.48942 15.3915 4.35472 15.6408L2.71906 18.6684C2.48575 19.1002 2.36909 19.3161 2.3952 19.4828C2.41794 19.6279 2.50337 19.7557 2.6288 19.8322C2.7728 19.9201 3.01692 19.8948 3.50517 19.8444L8.62619 19.315C8.78127 19.299 8.85881 19.291 8.92949 19.2937C8.999 19.2963 9.04807 19.3029 9.11586 19.3185C9.18478 19.3344 9.27145 19.3678 9.44478 19.4345C10.3928 19.7998 11.4228 20 12.4996 20Z' stroke='%23000000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gast-name { min-width: 0; padding-right: 5px; }
.gast-personen { display: flex; flex-direction: row; gap: .5rem; flex-wrap: wrap; }
.gast-hunde { margin-left: 15px; }
.gast-hunde::after { content: url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000000' stroke='%23000000' stroke-width='20' d='M393.3,161.33,334.532,76.438a48.09,48.09,0,0,0-38.775-20.673l-111.527-1.6-.23,0c-57.579,0-101.757,9.631-130.21,56.634C27.3,154.551,16,229.08,16,360v16H52.557L29.024,496h32.61L85.167,376H96a99.521,99.521,0,0,0,70.088-27.992c16.979-16.246,29.226-38.472,35.419-64.274l.056-.232L229.006,152h-32.69L170.337,276.488C162.425,309.168,138.766,344,96,344H48.06c.869-113.266,11.182-180.419,33.105-216.634,18.4-30.4,45.295-41.191,102.724-41.206l111.408,1.6a16.026,16.026,0,0,1,12.925,6.891L374.7,190.67,464,205.554v16.959l-14.892,79.421c-4.395,23.441-11.908,35.249-42.718,38.95L280.084,362.493,279.249,496h32l.667-106.493,98.7-16.9c22.36-2.749,38.857-9.955,50.426-22.023,9.89-10.318,15.909-23.5,19.519-42.752L496,225.487V178.446Z'/%3E%3C/svg%3E"); margin-left: 5px; vertical-align: middle; position: relative; top: -1px; }
.gast-gastname { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gast-gastname .ti { font-size: 1.3rem; }


.gast-reisezeit { display: flex; flex-direction: column; align-items: flex-start; white-space: nowrap; }

.gast-unterkunft { display: flex; flex-direction: column; overflow: hidden; font-weight: 400; color: var(--muted); }
.gast-unterkunft div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 400; }

.gast-erstellt { white-space: nowrap; color: var(--muted); font-weight: 400; text-align: right; }
.gast-subrow { margin-top: 3px; }
.gast-reisezeit small { display: block; margin-top: 5px; }
.gast-badge--reinigung {
  background: var(--accent-yellow);
  min-width: 77px;
  text-align: center;
  margin-top: 5px;
  padding: 2px 0;
  border-radius: 5px;
}

/* ── Unterkunft: Fotos ───────────────────────────────────────────────────── */
.foto-filter-wrap { align-self: center; margin-left: .5rem; }
.foto-typ-tabs { margin-bottom: 1.25rem; margin-top: .25rem; }
.foto-dropzone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 90px;
    margin-bottom: 1.25rem;
    border: 1px dashed var(--muted);
    border-radius: 10px;
    background: var(--bg-white-light);
    color: var(--muted);
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease;
}
.foto-dropzone .ti { font-size: 1.5rem; }
.foto-dropzone:hover,
.foto-dropzone--over { background: var(--bg-white); border-color: var(--accent); color: var(--body-text); }
.foto-dropzone--busy { opacity: .5; pointer-events: none; }

.foto-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 15px;
    user-select: none;
}
.foto-kachel {
    position: relative;
    aspect-ratio: 3 / 2;
    border-radius: 8px;
    overflow: hidden;
    cursor: grab;
    background: var(--bg-white-light);
}
.foto-kachel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}
.foto-kachel img.foto-lazy { filter: blur(2px); }
.foto-ghost { opacity: .4; }
.foto-warnung {
    position: absolute;
    top: 6px;
    left: 6px;
    padding: 2px 8px;
    font-size: .72rem;
    border-radius: 5px;
    background: rgba(255, 255, 255, .85);
    color: #ff6a00;
}
.foto-desc {
    position: absolute;
    bottom: 0;
    left: 0;
    max-width: 90%;
    padding: 3px 9px 5px;
    font-size: .75rem;
    line-height: 1.2;
    background: rgba(255, 255, 255, .8);
    border-top-right-radius: 8px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.foto-hinweis { margin-top: 1rem; }
.foto-hinweis .ti { font-size: 1rem; vertical-align: -2px; }
.foto-modal-bild {
    max-height: 380px;
    border-radius: 10px;
    display: block;
    margin-top: .5rem;
}
.foto-modal-footer { flex-wrap: wrap; }
.foto-btn-del { margin-left: auto; }
.unterkunft-startfoto {
    width: 150px;
    border-radius: 5px;
    object-fit: cover;
    margin: -.3rem .2rem -.3rem -.4rem;
    flex-shrink: 0;
}
.li-box-action-group { display: inline-flex; align-items: center; gap: 1.5rem; }

/* ── Rechnung ────────────────────────────────────────────────────────────── */
.rec-wrap { max-width: 900px; }
.rec-card { padding: 1.5rem 1.75rem; }
.rec-kopf { display: flex; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.rec-gast { font-weight: 400; margin-bottom: 1.5rem; }
.rec-titel { margin: 0 0 .4rem; }
.rec-meta { text-align: left; min-width: 220px; font-weight: 400; }
.rec-tabelle { margin-bottom: .5rem; }
.rec-tabelle td { font-weight: 400; }
.rec-add-pos { align-items: center; padding: .75rem 0 1rem; border-bottom: 1px solid var(--border); }
.rec-add-pos .form-group { margin: 0; }
.rec-add-pos .grow { flex: 1; min-width: 180px; }
.rec-summen { padding: .75rem 1rem .5rem 0; }
.rec-summe-zeile { display: flex; justify-content: flex-end; gap: 3rem; }
.rec-summe-zeile--gesamt { font-weight: 700; font-size: 1rem; margin-bottom: .3rem; }
.rec-zahlung { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.rec-qr-wrap { display: flex; gap: 1.5rem; flex-shrink: 0; }
.rec-qr { display: flex; flex-direction: column; gap: .3rem; font-size: .8rem; text-align: center; }
.rec-qr img { width: 90px; height: 90px; background: #fff; border-radius: 6px; padding: 4px; }
.rec-hinweis { padding: 0 .6rem .5rem; }
.rec-doc-item { grid-template-columns: 2fr 1fr auto; }
@media (max-width: 700px) {
    .rec-kopf, .rec-zahlung { flex-direction: column; gap: 1rem; }
}
.rec-vorlage-row { align-items: center; padding: 0 .6rem .75rem; }
.rec-vorlage-row .form-group { margin: 0; }

/* ── Dokument-Vorschau ───────────────────────────────────────────────────── */
.doc-vorschau-actions { margin-left: auto; }
.doc-vorschau-frame {
    width: 100%;
    height: calc(100vh - 140px);
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-white);
}
