.service-request-dialog,
.admin-request-dialog {
    width: min(760px, calc(100vw - 28px));
    max-height: min(88vh, 900px);
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: var(--panel, #fff);
    color: inherit;
    box-shadow: 0 28px 90px rgba(15, 23, 42, .28);
}

.service-request-dialog::backdrop,
.admin-request-dialog::backdrop {
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(7px);
}

.service-request-shell,
.admin-request-shell {
    display: grid;
    max-height: inherit;
    overflow: hidden;
}

.service-request-header,
.admin-request-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 26px;
    border-bottom: 1px solid var(--border, #dbe5ef);
}

.service-request-header h2,
.admin-request-header h2 { margin: 2px 0 0; }

.service-request-close,
.admin-request-close {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
    font-size: 25px;
    line-height: 1;
}

.service-request-dialog form { display: grid; min-height: 0; overflow: hidden; }
.service-request-list,
.admin-request-list { display: grid; gap: 12px; padding: 22px 26px; overflow: auto; }

.service-request-item {
    display: grid;
    grid-template-columns: auto 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 15px;
    border: 1px solid var(--border, #dbe5ef);
    border-radius: 16px;
    background: var(--panel, #fff);
    cursor: pointer;
}

.service-request-item.owned { border-color: #86efac; background: rgba(34, 197, 94, .09); cursor: default; }
.service-request-item.pending { border-color: #fdba74; background: rgba(249, 115, 22, .09); cursor: default; }
.service-request-item img { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; }
.service-request-copy { display: grid; min-width: 0; }
.service-request-copy strong,
.service-request-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.service-request-copy small,
.service-request-state,
.service-request-status,
.admin-request-status { color: var(--muted, #64748b); }
.service-request-state { font-size: 13px; font-weight: 700; }
.service-request-reason { display: grid; gap: 8px; padding: 0 26px 20px; }
.service-request-reason textarea,
.admin-request-item textarea { width: 100%; box-sizing: border-box; }
.service-request-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 26px 24px; border-top: 1px solid var(--border, #dbe5ef); }
.service-request-empty,
.admin-request-empty { padding: 28px; text-align: center; }
.service-request-empty p,
.admin-request-empty p { margin-bottom: 0; color: var(--muted, #64748b); }

.admin-request-banner { width: min(1180px, calc(100% - 32px)); margin: 20px auto 0; }
.admin-request-banner-button { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; padding: 16px 18px; border: 1px solid rgba(249, 115, 22, .45); border-radius: 16px; background: linear-gradient(135deg, rgba(249, 115, 22, .15), rgba(245, 158, 11, .10)); color: inherit; text-align: left; }
.admin-request-banner-button > span:first-child { display: grid; }
.admin-request-banner-button small { color: var(--muted, #64748b); }
.admin-request-count { display: grid; place-items: center; min-width: 38px; height: 38px; border-radius: 999px; background: #ea580c; color: #fff; font-weight: 800; }
.admin-request-list { max-height: 64vh; }
.admin-request-item { display: grid; gap: 15px; padding: 18px; border: 1px solid var(--border, #dbe5ef); border-radius: 17px; }
.admin-request-item-heading,
.admin-request-service,
.admin-request-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-request-item-heading > div { display: grid; }
.admin-request-item-heading small,
.admin-request-item-heading time,
.admin-request-service span { color: var(--muted, #64748b); font-size: 13px; }
.admin-request-service { padding: 14px 16px; border-radius: 13px; background: rgba(22, 119, 200, .08); }
.admin-request-reason { padding: 14px 16px; border-radius: 13px; background: rgba(100, 116, 139, .08); }
.admin-request-reason p { margin: 6px 0 0; white-space: pre-wrap; }
.admin-request-item label { display: grid; gap: 7px; }

@media (max-width: 680px) {
    .service-request-header,
    .admin-request-header,
    .service-request-list,
    .admin-request-list { padding-left: 18px; padding-right: 18px; }
    .service-request-item { grid-template-columns: auto 40px minmax(0, 1fr); }
    .service-request-state { grid-column: 2 / -1; }
    .service-request-reason { padding-left: 18px; padding-right: 18px; }
    .service-request-footer,
    .admin-request-item-heading,
    .admin-request-service,
    .admin-request-actions { align-items: stretch; flex-direction: column; }
    .service-request-footer { padding-left: 18px; padding-right: 18px; }
    .admin-request-actions button { width: 100%; }
}

/* SOFON_SERVICE_REQUESTS_DIALOG_LAYOUT_V2
 * Kompaktní seznam, skutečné vnitřní rolování a skrytý klíč služby.
 */
.service-request-shell {
    grid-template-rows: auto minmax(0, 1fr);
    height: min(88vh, 900px);
}

.service-request-dialog form {
    grid-template-rows: minmax(0, 1fr) auto auto;
    min-height: 0;
    overflow: hidden;
}

.service-request-list {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    align-content: start;
    grid-auto-rows: max-content;
    gap: 10px;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.service-request-item {
    min-height: 0;
    margin: 0;
    padding-top: 12px;
    padding-bottom: 12px;
}

.service-request-copy small {
    display: none;
}

@media (max-width: 680px) {
    .service-request-shell {
        height: min(92vh, 900px);
    }
}

/* SOFON_SERVICE_REQUEST_SELECTION_UI_V1
 * Viditelný výběr služby a zvýraznění celé vybrané karty.
 */
.service-request-item input[type="checkbox"] {
    appearance: auto;
    -webkit-appearance: checkbox;
    display: block;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    min-width: 22px;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    accent-color: #1677c8;
    cursor: pointer;
}

.service-request-item.available:hover {
    border-color: rgba(22, 119, 200, .55);
    background: rgba(22, 119, 200, .045);
    transform: translateY(-1px);
}

.service-request-item.available {
    transition:
        border-color .18s ease,
        background-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

.service-request-item.is-selected,
.service-request-item.available:has(
    input[type="checkbox"]:checked
) {
    border-color: #1677c8;
    background:
        linear-gradient(
            135deg,
            rgba(22, 119, 200, .13),
            rgba(52, 211, 153, .08)
        );
    box-shadow:
        0 0 0 2px rgba(22, 119, 200, .12),
        0 10px 26px rgba(15, 23, 42, .08);
}

.service-request-item.is-selected .service-request-state,
.service-request-item.available:has(
    input[type="checkbox"]:checked
) .service-request-state {
    color: #1677c8;
}

.service-request-item input[type="checkbox"]:disabled {
    cursor: default;
    opacity: .45;
}

@media (max-width: 680px) {
    .service-request-item input[type="checkbox"] {
        width: 24px;
        height: 24px;
        min-width: 24px;
    }
}

