.qc-tours {
    max-width: 1050px;
    margin: auto
}

.qc-tours h1,
.qc-tours h2 {
    color: var(--green, #a3cc41)
}

.qc-tours .panel {
    padding: 22px;
    margin-bottom: 18px
}

.qc-tour-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px
}

.qc-tours label {
    display: block;
    margin: 10px 0
}

.qc-tours input:not([type=checkbox]):not([type=hidden]),
.qc-tours select,
.qc-tours textarea {
    width: 100%;
    min-width: 0;
    padding: 9px;
    font: inherit;
    color: inherit;
    background: #111a1d;
    border: 1px solid #455057;
    border-radius: 6px
}

.qc-tours input[type=checkbox] {
    width: auto
}

.qc-tours textarea {
    min-height: 120px
}

.qc-tour-row {
    padding: 15px 0;
    border-bottom: 1px solid #455057;
    display: grid;
    grid-template-columns: minmax(140px, 1fr) 1fr;
    gap: 16px
}

.qc-tour-row form {
    display: flex;
    gap: 8px;
    align-items: end;
    flex-wrap: wrap
}

.qc-tour-row label {
    flex: 1 1 100px
}

.qc-tour-row .qc-tour-position {
    flex: 0 1 85px
}

.qc-tour-stops li {
    padding: 12px
}

.qc-tour-stops small {
    display: block
}

.qc-vehicle img {
    border-radius: 12px;
    object-fit: cover
}

.qc-tour-tag {
    font-size: .85rem;
    border: 1px solid #5c7436;
    padding: 3px 8px;
    border-radius: 12px
}

.qc-tour-note {
    padding: 10px;
    border-left: 3px solid var(--green, #a3cc41)
}

.qc-tour-roster {
    max-height: 650px;
    overflow: auto
}

.qc-tour-link {
    display: inline-block;
    margin: 8px 14px 8px 0
}

@media(max-width:650px) {
    .qc-tour-row {
        grid-template-columns: 1fr
    }
}

.qc-tour-sketch {
    width: 100%;
    height: auto;
    border-radius: 10px
}

.qc-vehicle label {
    display: block;
    margin: 10px 0
}

.qc-vehicle textarea {
    width: 100%;
    min-height: 90px;
    background: #151b1e;
    color: inherit;
    border: 1px solid #394348;
    border-radius: 7px;
    padding: 10px
}

.qc-tour-waypoint-editor fieldset {
    border: 1px solid #455057;
    border-radius: 8px;
    margin: 14px 0;
    padding: 14px
}

.qc-tour-waypoint-editor button {
    align-self: end
}

.qc-tours [hidden] {
    display: none !important
}

.qc-map-planner {
    border: 1px solid #5b7935;
    border-radius: 10px;
    padding: 16px;
    margin: 18px 0
}

.qc-planning-map {
    height: 420px;
    min-height: 300px;
    max-height: 65vh;
    isolation: isolate;
    border-radius: 8px;
    background: #263532;
    color: #17201d;
    margin: 14px 0
}

.qc-map-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: end
}

.qc-map-tools label {
    flex: 1 1 180px
}

.qc-map-results {
    width: 100%;
    display: grid;
    gap: 8px
}

.qc-map-results button {
    text-align: left;
    white-space: normal
}

.qc-map-marker {
    background: #a3cc41;
    border: 2px solid #14230c;
    border-radius: 50%;
    text-align: center;
    line-height: 24px;
    font-weight: 800;
    color: #11200b
}

.qc-map-credit {
    font-size: .82rem
}

.qc-tour-savebar {
    position: sticky;
    top: 10px;
    z-index: 1100;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 12px;
    background: #172517f2;
    border: 2px solid #a3cc41;
    border-radius: 10px;
    box-shadow: 0 4px 18px #0008;
    margin: 14px 0
}

.qc-tours .qc-tour-save {
    font-size: 1.15rem;
    padding: 13px 24px;
    min-height: 50px;
    font-weight: 800;
    white-space: nowrap
}

.qc-tour-save-bottom {
    width: 100%;
    margin-top: 18px
}

.qc-tour-savebar span {
    font-size: .85rem
}

.qc-map-pick {
    border: 1px solid #a3cc41
}

.qc-planning-map .leaflet-control a {
    color: #17201d
}

.qc-planning-map img {
    max-width: none
}

.qc-seat-details {
    flex: 1 1 100%;
    width: 100%;
    padding: 10px;
    border: 1px solid #455b48;
    border-radius: 8px
}

.qc-seat-details summary {
    cursor: pointer;
    color: var(--green, #a3cc41);
    font-weight: 600
}

.qc-seat-group {
    border: 0;
    margin: 10px 0;
    padding: 0;
    min-width: 0
}

.qc-seat-group p {
    font-size: .85rem
}

.qc-seat-vehicle {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: end;
    border-top: 1px solid #455057;
    padding: 10px 0
}

.qc-seat-vehicle>strong {
    width: 100%
}

.qc-seat-vehicle label {
    flex: 1 1 145px
}

.qc-seat-vehicle button {
    margin-bottom: 10px
}

.qc-tour-savebar {
    scroll-margin-top: 15px
}

/* Unterwegs: ein gemeinsamer Treffpunkt, kurze Halteliste und direkte Navigation. */
.qc-road-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap
}

.qc-road-heading h2 {
    margin: 0 0 16px
}

.qc-road-heading .eyebrow {
    margin: 0
}

.qc-road-heading>a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 14px
}

.qc-current-meeting {
    padding: 22px;
    border: 1px solid #a3cc4166;
    border-radius: 9px;
    background: #a3cc4109
}

.qc-current-meeting h3 {
    font-size: clamp(24px, 4vw, 32px);
    margin: 14px 0 8px
}

.qc-tours .qc-direct {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    margin: 12px 0;
    background: #a3cc41;
    color: #10180a;
    border: 1px solid #a3cc41;
    padding: 12px 20px;
    border-radius: 6px;
    font-weight: 700;
    text-align: center
}

.qc-road-stops {
    list-style: none;
    margin: 0;
    padding: 0
}

.qc-road-stops li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid #ffffff22
}

.qc-road-stops li:last-child {
    border: 0
}

.qc-road-stops h3 {
    margin: 2px 0;
    font-size: 19px
}

.qc-road-stops p {
    margin: 5px 0
}

.qc-stop-go {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 1px solid #a3cc4159;
    border-radius: 5px;
    padding: 8px 12px;
    font-weight: 600
}

.qc-tours summary {
    cursor: pointer;
    min-height: 44px;
    padding: 10px 0;
    color: var(--green, #a3cc41);
    font-weight: 700
}

.qc-tours details form {
    margin: 14px 0
}

.qc-meeting-editor {
    margin-top: 12px;
    border-top: 1px solid #ffffff22
}

.qc-meeting-editor form+details {
    border-top: 1px solid #ffffff22
}

.qc-tours .qc-stop-time {
    color: #c4ced0
}

.qc-tours a:focus-visible,
.qc-tours summary:focus-visible {
    outline: 2px solid #a3cc41;
    outline-offset: 4px
}

.qc-tour-waypoint-editor [hidden] {
    display: none !important
}

.qc-tours {
    min-width: 0;
    overflow-wrap: anywhere
}

.qc-tours fieldset {
    min-width: 0
}

.qc-tours button {
    min-height: 44px
}

@media(max-width:650px) {
    .qc-tours .qc-current-meeting {
        padding: 16px
    }

    .qc-direct {
        width: 100%
    }

    .qc-road-stops li {
        gap: 10px
    }

    .qc-stop-go {
        font-size: 14px;
        padding: 8px
    }

    .qc-tour-grid {
        grid-template-columns: minmax(0, 1fr)
    }

    .qc-tours .qc-tour-savebar {
        position: static;
        flex-wrap: wrap
    }

    .qc-road-heading {
        gap: 0
    }

    .qc-tours .qc-map-planner {
        padding: 12px
    }

    .qc-tours .qc-tour-save {
        white-space: normal
    }
}

/* Auswahl und Übernahme eines Wegpunkts sind getrennte Schritte. */
.qc-map-tools .qc-map-selection {
    flex-basis: 100%;
    margin: 4px 0;
    overflow-wrap: anywhere;
    color: #dce6da
}

.qc-map-tools .qc-map-results:empty {
    display: none
}

.qc-map-pending {
    background: #e9c15b;
    color: #18200c;
    border: 2px dashed #18200c;
    border-radius: 50%;
    text-align: center;
    line-height: 26px;
    font-weight: 800
}

.qc-map-tools .qc-map-confirm {
    background: #a3cc41;
    color: #111a0a;
    border: 1px solid #a3cc41;
    box-shadow: none
}

.qc-map-tools .qc-map-confirm:disabled {
    opacity: .45
}

/* Kartenplanung mit kompakter Punktliste und optionalen Details. */
.qc-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important
}

.qc-map-planner>.qc-map-tools {
    display: grid;
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
    gap: 12px;
    align-items: start
}

.qc-map-planner>.qc-map-tools>label {
    margin: 0
}

.qc-map-finder {
    min-width: 0
}

.qc-map-finder>summary {
    font-weight: 500
}

.qc-map-notes {
    font-size: 13px;
    margin-top: 12px
}

.qc-map-notes>summary {
    font-weight: 400;
    font-size: 13px;
    color: var(--muted)
}

.qc-map-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px
}

.qc-map-actions .qc-map-selection {
    flex-basis: 100%;
    margin: 0;
    font-size: 14px;
    overflow-wrap: anywhere
}

.qc-map-footer {
    margin-top: 16px
}

.qc-map-planner .qc-planning-map {
    height: 380px;
    min-height: 260px;
    max-height: 55svh
}

.qc-tour-waypoint-editor .qc-waypoint {
    display: block;
    padding: 10px 12px;
    margin: 8px 0;
    border: 1px solid #ffffff22;
    background: #10191a33
}

.qc-waypoint-head {
    display: flex;
    gap: 10px;
    align-items: center;
    min-width: 0
}

.qc-waypoint-number {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    height: 30px;
    border-radius: 50%;
    color: #a3cc41;
    border: 1px solid #a3cc4166;
    font-weight: 700
}

.qc-tours .qc-waypoint-name {
    min-width: 0;
    flex: 1;
    margin: 0;
    font-size: 16px
}

.qc-tours .qc-waypoint-name input {
    font-size: 16px;
    background: transparent;
    border-color: transparent;
    padding: 6px 8px;
    min-height: 44px
}

.qc-tours .qc-waypoint-name input:hover,
.qc-tours .qc-waypoint-name input:focus {
    border-color: #a3cc4166
}

.qc-tours .qc-waypoint-details>summary {
    min-height: 36px;
    padding: 4px 0;
    font-size: 13px;
    font-weight: 400;
    margin-left: 40px;
    color: var(--muted)
}

.qc-waypoint-details[open]>summary {
    margin-bottom: 8px;
    color: var(--green)
}

.qc-waypoint-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.qc-waypoint-actions button {
    font-size: 13px;
    padding: 7px 10px
}

.qc-tour-info {
    margin-bottom: 12px;
    border-bottom: 1px solid #ffffff22
}

.qc-tour-waypoint-editor {
    margin-top: 12px
}

.qc-map-planner>[role=status]:empty {
    display: none
}

.qc-tours .qc-map-planner h3 {
    margin: 0 0 8px
}

.qc-tours .qc-map-planner>p {
    font-size: 14px
}

.qc-map-planner .leaflet-popup-content button {
    font: inherit;
    color: #17201d;
    background: #a3cc41;
    border: 0;
    border-radius: 4px;
    min-height: 44px;
    padding: 8px 12px
}

@media(max-width:650px) {
    .qc-map-planner>.qc-map-tools {
        grid-template-columns: minmax(0, 1fr)
    }

    .qc-map-finder>summary {
        min-height: 36px;
        padding: 4px 0
    }

    .qc-map-actions .qc-map-confirm {
        flex: 1
    }

    .qc-tours .qc-map-planner {
        padding: 12px
    }

    .qc-tour-waypoint-editor .qc-waypoint {
        padding: 8px
    }

    .qc-tours .qc-waypoint-name input {
        padding: 4px
    }

    .qc-map-planner .qc-planning-map {
        height: 320px
    }
}

/* Jeder Tourpunkt hat eine direkt erreichbare Loeschaktion. */
.qc-tours .qc-waypoint-head>.qc-waypoint-remove {
    flex: 0 0 44px;
    width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 4px;
    background: transparent;
    color: #c9d2cb;
    border: 1px solid #ffffff33;
    border-radius: 5px;
    font-size: 26px;
    line-height: 1;
    box-shadow: none;
    transform: none
}

.qc-tours .qc-waypoint-head>.qc-waypoint-remove:hover {
    color: #ffb4a8;
    border-color: #ffb4a8;
    background: #ffb4a810;
    box-shadow: none;
    transform: none
}

.qc-tours .qc-waypoint-head>.qc-waypoint-remove:focus-visible {
    outline: 2px solid #a3cc41;
    outline-offset: 3px
}

.qc-map-finder {
    min-width: 0
}

.qc-map-results button {
    overflow-wrap: anywhere
}

.qc-map-search-preview {
    pointer-events: none;
    border: 3px solid #4da9ff;
    border-radius: 50%;
    background: #4da9ff44;
    box-shadow: 0 0 0 4px #4da9ff22
}

/* Gemeinsame Toolbar, dauerhafte Tourdaten und Erfolgsmeldungen. */
.qc-map-planner>.qc-map-tools {
    grid-template-columns: minmax(140px, 180px) minmax(160px, 1fr) auto;
    align-items: end
}

.qc-map-tools>.qc-map-finder {
    display: contents
}

.qc-map-tools>.qc-map-finder>summary {
    display: none
}

.qc-map-tools>.qc-map-finder>label {
    margin: 0
}

.qc-map-tools>.qc-map-finder>.qc-map-results {
    grid-column: 1/-1
}

.qc-map-tools>.qc-map-finder>button {
    margin: 0;
    min-height: 44px
}

.qc-map-footer {
    display: flex;
    gap: 10px;
    flex-wrap: wrap
}

.qc-route-summary {
    padding: 16px 0;
    border-top: 1px solid #a3cc4133;
    border-bottom: 1px solid #a3cc4133;
    margin: 18px 0
}

.qc-route-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0
}

.qc-route-stats>div {
    min-width: 0
}

.qc-route-stats dt {
    font-size: 13px;
    font-weight: 400;
    color: #b5c5b9
}

.qc-route-stats dd {
    margin: 3px 0 0;
    color: #d8edbc;
    font-size: 17px;
    font-weight: 700;
    overflow-wrap: anywhere
}

.qc-route-summary>small {
    display: block;
    margin-top: 12px;
    color: var(--muted);
    font-size: 12px
}

.qc-waypoint-arrival {
    display: block;
    margin: 0 0 0 40px;
    color: #c5d7a0;
    font-size: 13px
}

#qc-toast.qc-tour-toast {
    width: min(520px, 90vw);
    font-weight: 400 !important
}

#qc-toast.qc-tour-toast>strong {
    display: block;
    font-size: 18px;
    margin-bottom: 8px
}

#qc-toast.qc-tour-toast .qc-route-stats {
    gap: 10px;
    margin-top: 12px
}

#qc-toast.qc-tour-toast .qc-route-stats dd {
    font-size: 15px
}

.qc-tours .qc-map-actions>.qc-map-confirm {
    background: #a3cc41;
    color: #10180a;
    border: 1px solid #a3cc41;
    box-shadow: none
}

@media(max-width:650px) {
    .qc-map-planner>.qc-map-tools {
        grid-template-columns: minmax(100px, .7fr) minmax(0, 1.3fr);
        gap: 10px
    }

    .qc-map-tools>.qc-map-finder>button {
        grid-column: 2;
        justify-self: end
    }

    .qc-map-tools>.qc-map-finder>.qc-map-results {
        grid-column: 1/-1
    }

    .qc-route-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .qc-route-stats dd {
        font-size: 16px
    }

    .qc-map-footer>button {
        flex: 1 1 180px
    }
}

/* Kompakte Tourangaben und tatsächlich angemeldete Teilnehmer. */
.qc-tour-title-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center
}

.qc-tours .qc-tour-publish {
    display: flex;
    gap: 8px;
    align-items: center;
    white-space: nowrap;
    font-size: 14px
}

.qc-tour-meta {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
    gap: 18px;
    align-items: start
}

.qc-tour-meta>div,
.qc-tour-meta>label {
    min-width: 0
}

.qc-tours .qc-tour-meta textarea {
    min-height: 90px
}

.qc-tours .qc-tour-guests {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px
}

.qc-waypoint-start-date {
    margin: 4px 0 0 40px;
    min-width: 0
}

.qc-waypoint-start-date label {
    font-size: 13px
}

.qc-tours .qc-waypoint-start-date input {
    font-size: 16px;
    min-width: 0;
    width: 100%
}

.qc-compact-roster {
    margin-top: 12px
}

.qc-participant {
    border-top: 1px solid #ffffff22;
    padding: 4px 0
}

.qc-tours .qc-participant>summary {
    display: flex;
    gap: 10px;
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    min-height: 48px;
    cursor: pointer;
    list-style: none
}

.qc-participant>summary:after {
    content: '▸';
    margin-left: auto
}

.qc-participant[open]>summary:after {
    content: '▾'
}

.qc-participant>summary::-webkit-details-marker {
    display: none
}

.qc-participant-position {
    min-width: 26px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: #c4ced0
}

.qc-participant-name {
    font-weight: 700;
    overflow-wrap: anywhere
}

.qc-participant-duty {
    font-size: 13px;
    color: #b9c6bd
}

.qc-participant-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(90px, 140px);
    gap: 12px
}

.qc-tours .qc-participant-form {
    padding: 4px 12px 12px
}

.qc-participant-form>.qc-seat-details {
    margin: 10px 0
}

.qc-roster-seats {
    display: flex;
    gap: 8px 18px;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
    padding: 8px 0 12px
}

.qc-seat-good {
    color: #a3cc41
}

.qc-tours .qc-seat-danger {
    color: #ff9383;
    font-weight: 700
}

.qc-seat-unknown {
    position: relative;
    max-width: 100%
}

.qc-tours .qc-seat-warning {
    color: #f5d76b;
    background: transparent;
    border: 1px solid #f5d76466;
    padding: 7px 10px;
    white-space: normal;
    text-align: left;
    font: inherit;
    box-shadow: none;
    transform: none
}

.qc-tours .qc-seat-warning:hover {
    background: #f5d7640d;
    color: #ffe68a;
    box-shadow: none;
    transform: none
}

.qc-seat-names {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    width: max-content;
    min-width: 200px;
    max-width: min(320px, 70vw);
    max-height: 240px;
    overflow: auto;
    border: 1px solid #f5d76466;
    border-radius: 5px;
    background: #151e20;
    padding: 12px;
    box-shadow: 0 8px 20px #0008;
    color: #e2e8de
}

.qc-seat-names ul {
    margin: 8px 0 0;
    padding-left: 18px
}

.qc-seat-names li {
    overflow-wrap: anywhere
}

.qc-tour-roster-details {
    overflow: visible
}

.qc-tours #tourbezeichnungen input {
    max-width: 420px
}

.qc-tours #tourbezeichnungen form {
    display: flex;
    gap: 12px;
    align-items: end;
    flex-wrap: wrap
}

.qc-tours #tourbezeichnungen form label {
    flex: 1 1 200px;
    max-width: 420px
}

.qc-tours #tourbezeichnungen form button {
    margin-bottom: 10px
}

@media(max-width:650px) {
    .qc-tour-title-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 0
    }

    .qc-tour-meta {
        grid-template-columns: minmax(0, 1fr);
        gap: 0
    }

    .qc-tour-meta>div>label:first-child {
        max-width: 240px
    }

    .qc-tours .qc-participant>summary {
        flex-wrap: wrap;
        gap: 4px 8px
    }

    .qc-participant-duty {
        flex-basis: calc(100% - 40px);
        margin-left: 34px
    }

    .qc-participant>summary:after {
        position: absolute;
        right: 4px
    }

    .qc-participant {
        position: relative;
        padding-right: 14px
    }

    .qc-participant-controls {
        grid-template-columns: minmax(0, 1fr) 100px
    }

    .qc-tours .qc-participant-form {
        padding: 4px
    }

    .qc-seat-names {
        max-width: min(280px, 75vw)
    }

    .qc-waypoint-start-date {
        margin-left: 0
    }
}

/* Sichtbare Detailsaktion mit ausreichend grosser Touchflaeche. */
.qc-tours .qc-participant>summary:after {
    content: none
}

.qc-participant-details-label {
    margin-left: auto;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 10px;
    border: 1px solid #a3cc4166;
    border-radius: 5px;
    color: var(--green, #a3cc41);
    font-size: 14px
}

.qc-participant-details-label:before {
    content: "▸";
    font-size: 16px
}

.qc-participant[open] .qc-participant-details-label:before {
    content: "▾"
}

.qc-participant>summary:hover .qc-participant-details-label {
    background: #a3cc4112
}

@media(max-width:650px) {
    .qc-participant {
        padding-right: 0
    }

    .qc-tours .qc-participant>summary {
        display: grid;
        grid-template-columns: 26px minmax(0, 1fr) auto;
        column-gap: 8px
    }

    .qc-participant-position {
        grid-column: 1;
        grid-row: 1/3
    }

    .qc-participant-name {
        grid-column: 2;
        grid-row: 1
    }

    .qc-participant-duty {
        grid-column: 2;
        grid-row: 2;
        margin-left: 0
    }

    .qc-participant-details-label {
        grid-column: 3;
        grid-row: 1/3;
        padding: 0 8px
    }
}

/* Öffentliche Tour: kompakte Zusage und Platzübersicht im Kopf. */
.qc-public-tour-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
    gap: 24px;
    align-items: start
}

.qc-public-tour-info>div {
    min-width: 0
}

.qc-public-seat-overview {
    border-left: 1px solid #a3cc4133;
    padding-left: 20px;
    margin-top: 30px;
    font-size: 14px
}

.qc-public-seat-overview ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px
}

.qc-public-seat-warning {
    color: #f5d76b
}

.qc-public-signup-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(90px, .5fr);
    gap: 14px;
    align-items: end
}

.qc-public-signup-row label {
    min-width: 0
}

@media(max-width:650px) {
    .qc-public-tour-info {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px
    }

    .qc-public-seat-overview {
        border-left: 0;
        border-top: 1px solid #a3cc4133;
        padding: 14px 0 0;
        margin: 0
    }

    .qc-public-signup-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px
    }

    .qc-public-signup-row>label:last-child {
        grid-column: 1/-1;
        max-width: 150px
    }
}

/* Antworten, Startpunkt und Frist kompakt anzeigen. */
.qc-public-reply-counts,
.qc-public-start {
    display: grid;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #a3cc4133
}

.qc-public-reply-counts small,
.qc-public-start small {
    color: var(--muted);
    font-size: 12px
}

.qc-public-start .qc-stop-go {
    justify-self: start
}

.qc-tours .qc-reply-maybe {
    font: inherit;
    color: #f5d76b;
    background: transparent;
    padding: 0;
    border: 0;
    box-shadow: none;
    transform: none;
    min-height: 36px
}

.qc-response-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px
}

.qc-response-actions>button {
    flex: 1;
    min-width: 85px
}

.qc-tours .qc-response-maybe {
    background: transparent;
    border: 1px solid #f5d76b;
    color: #f5d76b
}

.qc-tours .qc-response-no {
    background: transparent;
    border: 1px solid #ff9383;
    color: #ff9383
}

.qc-response-actions>button[aria-pressed=true] {
    outline: 2px solid currentColor;
    outline-offset: 3px
}

.qc-public-signup-row {
    grid-template-columns: minmax(0, 1fr) minmax(90px, .5fr)
}

.qc-maybe-settings {
    border-top: 1px solid #ffffff22;
    padding: 8px 0;
    margin: 12px 0
}

.qc-maybe-window {
    display: grid;
    grid-template-columns: 120px 180px;
    gap: 14px
}

.qc-maybe-hint {
    font-size: 14px;
    color: #f5d76b
}

.qc-maybe-hint:empty {
    display: none
}

@media(max-width:650px) {
    .qc-public-signup-row>label:last-child {
        grid-column: auto;
        max-width: none
    }

    .qc-maybe-window {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr)
    }

    .qc-public-seat-overview .qc-seat-names {
        left: auto;
        right: 0
    }
}

/* Planung: Fahrzeugzahlen und Namenslisten für jede Antwort. */
.qc-tours .qc-reply-status {
    font: inherit;
    color: inherit;
    background: transparent;
    padding: 0;
    border: 0;
    box-shadow: none;
    transform: none;
    min-height: 36px;
    text-align: left
}

.qc-tours .qc-reply-status:hover {
    text-decoration: underline;
    box-shadow: none;
    transform: none
}

.qc-tours .qc-reply-maybe {
    color: #f5d76b
}

.qc-public-vehicle-counts {
    display: grid;
    gap: 10px;
    border-top: 1px solid #a3cc4133;
    padding-top: 14px;
    margin-top: 4px
}

.qc-public-tour-info>div>.qc-public-start {
    max-width: 360px
}

.qc-response-actions button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px
}

/* Farben der Teilnahmerueckmeldungen, auch ohne Namens-Popup. */
.qc-public-reply-counts .qc-reply-yes.qc-reply-positive {
    color: #a3cc41
}

.qc-public-reply-counts .qc-reply-maybe {
    color: #f5d76b
}

.qc-public-reply-counts .qc-reply-no {
    color: #ff9383
}

/* Statuszeilen mit und ohne Namensliste gleich hoch ausrichten. */
.qc-public-reply-counts>span,
.qc-public-reply-counts>.qc-seat-unknown {
    display: flex;
    align-items: center;
    min-height: 36px;
    line-height: 1.4
}

.qc-tours .qc-public-reply-counts .qc-reply-status {
    display: flex;
    align-items: center;
    line-height: 1.4;
    margin: 0;
    min-height: 36px
}

/* Kompakte, einheitliche Textzeilen fuer alle Teilnahmeantworten. */
.qc-public-reply-counts {
    gap: 6px
}

.qc-public-reply-counts>span,
.qc-public-reply-counts>.qc-seat-unknown {
    display: block;
    min-height: 0;
    line-height: 1.4
}

.qc-tours .qc-public-reply-counts .qc-reply-status {
    display: block;
    min-height: 0;
    height: auto;
    line-height: 1.4;
    padding: 0;
    margin: 0
}

/* Kalender und Terminliste: dieselben veröffentlichten Ausfahrten. */
.qc-calendar-tabs,
.qc-calendar-pagination {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.qc-calendar-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid #a3cc4166;
    border-radius: 6px
}

.qc-calendar-tabs a[aria-current=page] {
    background: #a3cc41;
    color: #10180a;
    font-weight: 700
}

.qc-calendar-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap
}

.qc-calendar-heading h2 {
    margin: 0
}

.qc-calendar-heading nav {
    display: flex;
    gap: 8px
}

.qc-calendar-heading nav a {
    display: inline-flex;
    min-height: 44px;
    min-width: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid #a3cc4144;
    border-radius: 5px;
    padding: 6px 10px
}

.qc-calendar-picker {
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: wrap;
    margin: 12px 0 20px
}

.qc-calendar-picker label {
    max-width: 240px
}

.qc-calendar-picker button {
    margin-bottom: 10px
}

.qc-month-grid {
    table-layout: fixed;
    width: 100%;
    border-collapse: collapse;
    font-size: 14px
}

.qc-month-grid th {
    text-align: center;
    color: #b9c6bd;
    padding: 10px 2px
}

.qc-month-grid abbr {
    text-decoration: none
}

.qc-month-grid td {
    vertical-align: top;
    border: 1px solid #ffffff22;
    padding: 8px;
    height: 100px;
    overflow-wrap: anywhere
}

.qc-month-grid time {
    display: block;
    font-weight: 700;
    margin-bottom: 6px
}

.qc-month-grid .qc-calendar-today {
    background: #a3cc4112;
    box-shadow: inset 0 0 0 2px #a3cc41
}

.qc-month-grid .qc-calendar-blank {
    background: #0002
}

.qc-calendar-day-link {
    display: inline-block;
    font-size: 12px;
    padding: 3px 5px;
    border-radius: 4px;
    background: #a3cc4120
}

.qc-calendar-cell-tours {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    display: grid;
    gap: 6px;
    font-size: 12px
}

.qc-calendar-tour {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 20px 0;
    border-top: 1px solid #ffffff22
}

.qc-calendar-tour h3 {
    margin: 0 0 8px;
    font-size: 19px
}

.qc-calendar-tour p {
    margin: 0 0 10px
}

.qc-calendar-tour time {
    color: #c5d7a0;
    font-variant-numeric: tabular-nums
}

.qc-calendar-tour>div {
    min-width: 0
}

.qc-calendar-agenda {
    scroll-margin-top: 18px
}

.qc-calendar-pagination a {
    display: inline-flex;
    align-items: center;
    min-height: 44px
}

.qc-calendar-tour .qc-stop-go {
    text-align: center
}

.qc-calendar-page .qc-calendar-picker input {
    color-scheme: dark
}

@media(max-width:650px) {
    .qc-calendar-page .panel {
        padding: 16px
    }

    .qc-month-grid td {
        height: 64px;
        padding: 5px 3px
    }

    .qc-month-grid {
        font-size: 13px
    }

    .qc-calendar-cell-tours {
        display: none
    }

    .qc-calendar-day-link {
        min-width: 26px;
        min-height: 26px;
        text-align: center;
        line-height: 20px;
        padding: 3px
    }

    .qc-calendar-day-link span {
        display: none
    }

    .qc-calendar-tour {
        grid-template-columns: 70px minmax(0, 1fr);
        gap: 10px;
        padding: 16px 0
    }

    .qc-calendar-tour>.qc-stop-go {
        grid-column: 2;
        justify-self: start
    }

    .qc-calendar-tour h3 {
        font-size: 17px
    }

    .qc-calendar-picker label {
        flex: 1;
        min-width: 130px
    }

    .qc-calendar-heading {
        gap: 6px
    }

    .qc-calendar-tabs {
        gap: 8px
    }
}

.buddys-site main table.qc-month-grid {
    display: table;
    width: 100%;
    max-width: 100%;
    overflow: visible
}

/* Jahresübersicht, Kalenderwochen, Tagesauswahl und Feiertage. */
.qc-calendar-year-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px
}

.qc-calendar-mini {
    min-width: 0;
    border: 1px solid #ffffff22;
    border-radius: 7px;
    padding: 10px
}

.qc-calendar-mini h3 {
    margin: 0 0 8px;
    font-size: 17px
}

.qc-calendar-mini h3 a {
    display: flex;
    align-items: center;
    min-height: 44px
}

.buddys-site main .qc-calendar-mini table {
    display: table;
    width: 100%;
    table-layout: fixed;
    overflow: visible;
    font-size: 12px
}

.qc-calendar-mini th,
.qc-calendar-mini td {
    text-align: center;
    padding: 4px 1px;
    height: 25px;
    border: 0
}

.qc-calendar-mini th {
    font-size: 10px;
    color: #bbc9bc
}

.qc-calendar-mini td a {
    display: block;
    color: inherit;
    border-radius: 3px;
    line-height: 20px
}

.qc-calendar-mini .qc-mini-has-tours a {
    background: #a3cc4138;
    color: #d9f3b6;
    font-weight: 800
}

.qc-mini-today {
    outline: 1px solid #a3cc41;
    outline-offset: -1px
}

.qc-mini-month-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    margin-top: 6px;
    font-size: 13px;
    border-top: 1px solid #ffffff22
}

.qc-tours .qc-calendar-kw {
    color: #a3cc41 !important;
    font-weight: 700;
    font-variant-numeric: tabular-nums
}

.qc-month-grid th.qc-calendar-kw {
    width: 30px;
    padding: 8px 2px
}

.qc-calendar-mini th.qc-calendar-kw {
    width: 22px
}

.qc-calendar-legend {
    display: flex;
    gap: 8px 16px;
    flex-wrap: wrap;
    font-size: 12px;
    color: #b9c6bd;
    margin: 14px 0
}

.qc-legend-sunday:before,
.qc-legend-holiday:before {
    content: "";
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-right: 6px;
    border-radius: 2px;
    background: #a3cc4122
}

.qc-legend-holiday:before {
    background: #a3cc4140;
    border-left: 2px solid #a3cc41
}

.qc-month-grid td.qc-calendar-sunday,
.qc-calendar-mini td.qc-calendar-sunday,
.qc-calendar-agenda.qc-calendar-sunday {
    background-color: #a3cc4116
}

.qc-month-grid td.qc-calendar-holiday,
.qc-calendar-mini td.qc-calendar-holiday,
.qc-calendar-agenda.qc-calendar-holiday {
    background-color: #a3cc412b;
    box-shadow: inset 3px 0 #a3cc41
}

.qc-holiday-name {
    display: block;
    color: #cceaa0;
    font-size: 12px;
    line-height: 1.3;
    margin: 4px 0;
    overflow-wrap: anywhere
}

.qc-month-grid .qc-calendar-date-link {
    display: flex;
    min-height: 32px;
    align-items: center;
    color: inherit
}

.qc-month-grid .qc-calendar-date-link time {
    margin: 0
}

.qc-calendar-date-link:hover {
    color: #a3cc41;
    text-decoration: underline
}

.qc-calendar-add {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 10px
}

.qc-calendar-scale {
    display: flex;
    gap: 8px;
    margin-top: 14px
}

.qc-calendar-scale>a,
.qc-calendar-scale>span {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 6px 12px;
    border: 1px solid #a3cc4144;
    border-radius: 5px
}

.qc-calendar-scale [aria-current=page] {
    background: #a3cc4122;
    color: #d4ecb3
}

.qc-week-day-name {
    font-size: 14px;
    color: #c5d7a0;
    margin: 12px 0 6px
}

.qc-calendar-mini td.qc-calendar-holiday a {
    font-weight: 700
}

.qc-calendar-mini td a:focus-visible {
    outline: 2px solid #a3cc41;
    outline-offset: 2px
}

@media(max-width:900px) {
    .qc-calendar-year-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px
    }
}

@media(max-width:650px) {
    .qc-calendar-year-grid {
        gap: 8px
    }

    .qc-calendar-mini {
        padding: 6px
    }

    .qc-calendar-mini h3 {
        font-size: 14px
    }

    .qc-calendar-mini th,
    .qc-calendar-mini td {
        font-size: 10px;
        padding: 3px 0;
        height: 23px
    }

    .qc-calendar-mini th {
        font-size: 9px
    }

    .qc-calendar-mini th.qc-calendar-kw {
        width: 18px
    }

    .qc-month-grid th.qc-calendar-kw {
        width: 24px
    }

    .qc-month-grid .qc-calendar-date-link {
        min-height: 28px
    }

    .qc-month-grid .qc-holiday-name {
        font-size: 9px
    }

    .qc-month-grid td {
        height: 72px
    }

    .qc-calendar-heading {
        align-items: start
    }

    .qc-calendar-mini .qc-mini-month-link {
        font-size: 12px
    }
}

#qc-calendar,
.qc-calendar-page .qc-calendar-agenda {
    scroll-margin-top: 90px
}

.qc-calendar-kw {
    white-space: nowrap
}

.qc-month-grid th.qc-calendar-kw {
    font-size: 12px;
    width: 28px
}

/* Heute ist blau; Sonn- und Feiertage behalten ihre grünen Markierungen. */
.qc-month-grid td.qc-calendar-today,
.qc-calendar-mini td.qc-mini-today,
.qc-calendar-agenda.qc-calendar-today {
    background-color: #4da9ff2b;
    box-shadow: inset 0 0 0 2px #75beff;
    outline: 0
}

.qc-month-grid td.qc-calendar-today>.qc-calendar-date-link,
.qc-calendar-mini td.qc-mini-today>a {
    color: #a5d4ff
}

.qc-legend-today:before {
    content: "";
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-right: 6px;
    border-radius: 2px;
    background: #4da9ff44;
    border: 1px solid #75beff
}

.qc-tours .qc-calendar-picker button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid #a3cc4166;
    border-radius: 6px;
    background: transparent;
    color: var(--green, #a3cc41);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    box-shadow: none;
    transform: none
}

.qc-tours .qc-calendar-picker button:hover {
    background: #a3cc4118;
    border-color: #a3cc41;
    color: #d7edb3;
    box-shadow: none;
    transform: none
}

.qc-calendar-load-error {
    padding: 12px;
    border: 1px solid #ff9383;
    border-radius: 6px;
    color: #ffb4a8
}

/* Termine in der Jahresansicht deutlich rot hervorheben. */
.qc-calendar-mini td.qc-mini-has-tours>a {
    background: #b94343;
    color: #fff1ed;
    box-shadow: inset 0 0 0 1px #ff9383;
    font-weight: 800;
    border-radius: 4px
}

.qc-calendar-mini td.qc-mini-has-tours>a:hover {
    background: #d05151;
    color: #fff
}

.qc-legend-event:before {
    content: "";
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-right: 6px;
    border-radius: 2px;
    background: #b94343;
    border: 1px solid #ff9383
}

.qc-tours .qc-maybe-hint {
    color: #ff8174;
    font-size: 17px;
    font-weight: 650;
    line-height: 1.55
}

.qc-event-responses {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0
}

.qc-event-response-group {
    min-width: 0;
    border: 1px solid #78946066;
    border-radius: 7px;
    padding: 14px
}

.qc-event-response-group h3 {
    font-size: 1rem;
    margin: 0 0 10px
}

.qc-event-response-group ul {
    padding-left: 20px;
    overflow-wrap: anywhere
}

@media(max-width:650px) {
    .qc-event-responses {
        grid-template-columns: 1fr
    }
}

/* Abgelaufene Rückmeldefrist: gesperrte Zusagen sichtbar abdunkeln. */
.qc-response-actions>button:disabled {
    opacity: .4;
    filter: grayscale(1);
    cursor: not-allowed;
    box-shadow: none;
    transform: none
}
/* ==========================================
   QuadCMS – Monatsnavigation stabilisieren
   ========================================== */

/* Nur die Monatsansicht */
.qc-calendar-heading:has(#qc-calendar-month) {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 24px;
}

/* Fester Platz für den Monatsnamen */
.qc-calendar-heading #qc-calendar-month {
    flex: 0 0 230px;
    width: 230px;
    margin: 0;
}

/* Pfeile und MONAT-Button bleiben an ihrer Position */
.qc-calendar-heading:has(#qc-calendar-month) > nav {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* Auf kleinen Bildschirmen wieder flexibel */
@media (max-width: 650px) {
    .qc-calendar-heading:has(#qc-calendar-month) {
        flex-wrap: wrap;
        gap: 12px;
    }

    .qc-calendar-heading #qc-calendar-month {
        flex: 0 1 100%;
        width: auto;
    }
}