/* Базовые токены обеспечивают единые цвета, размеры и интервалы зрительской части Quick Tickets */
:root {
    --quick-tickets-color-brand: #f37334;
    --quick-tickets-color-brand-hover: #e2652b;
    --quick-tickets-color-brand-active: #d45c23;
    --quick-tickets-color-focus: #a33d0d;
    --quick-tickets-color-text: #363636;
    --quick-tickets-color-text-muted: #6f6f6f;
    --quick-tickets-color-surface: #ffffff;
    --quick-tickets-color-surface-muted: #f5f5f5;
    --quick-tickets-color-border: #e2e2e2;
    --quick-tickets-radius-small: 4px;
    --quick-tickets-radius-medium: 6px;
    --quick-tickets-space-1: 4px;
    --quick-tickets-space-2: 8px;
    --quick-tickets-space-3: 12px;
    --quick-tickets-space-4: 16px;
    --quick-tickets-space-5: 24px;
    --quick-tickets-touch-target: 44px;
    /* Изображения организации используют единый адаптивный размер в мобильной карточке и шапке */
    --quick-tickets-mobile-organisation-media-width: clamp(96px, 32vw, 120px);
}

/* Пустые состояния используют единую спокойную карточку во всех разделах зрительской части */
.quick-tickets-empty-state {
    box-sizing: border-box;
    width: 100%;
    padding: var(--quick-tickets-space-5);
    border: 1px solid var(--quick-tickets-color-border);
    border-radius: var(--quick-tickets-radius-medium);
    background: rgba(255, 255, 255, 0.9);
    color: var(--quick-tickets-color-text);
    line-height: 1.45;
    text-align: center;
}

.quick-tickets-empty-state p {
    margin: 0;
}

.quick-tickets-empty-state p + p {
    margin-top: var(--quick-tickets-space-2);
}

.quick-tickets-empty-state__title {
    font-size: 18px;
    font-weight: 600;
}

/* Ссылки пустого состояния сохраняют фирменный цвет во всех интерактивных состояниях */
.quick-tickets-empty-state a,
.quick-tickets-empty-state a:hover,
.quick-tickets-empty-state a:focus,
.quick-tickets-empty-state .quick-tickets-link-button,
.quick-tickets-empty-state .quick-tickets-link-button:hover,
.quick-tickets-empty-state .quick-tickets-link-button:focus {
    color: var(--quick-tickets-color-brand);
}

/* Подчёркивания текстовых ссылок используют единый размер и расстояние от строки */
a {
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Основные элементы интерфейса используют токены без изменения утверждённой палитры */
.btn-orange,
.btn-orange:focus {
    border-color: var(--quick-tickets-color-brand);
    background-color: var(--quick-tickets-color-brand);
}

.btn-orange:hover {
    border-color: var(--quick-tickets-color-brand-hover);
    background-color: var(--quick-tickets-color-brand-hover);
}

.btn-orange:active,
.btn-orange.active {
    border-color: var(--quick-tickets-color-brand-active);
    background-color: var(--quick-tickets-color-brand-active);
}

.btn-orange.disabled,
.btn-orange.disabled:hover,
.btn-orange.disabled:focus,
.btn-orange.disabled:active,
.btn-orange[disabled],
.btn-orange[disabled]:hover,
.btn-orange[disabled]:focus,
.btn-orange[disabled]:active {
    border-color: var(--quick-tickets-color-brand);
    background-color: var(--quick-tickets-color-brand);
}

.form-control:focus {
    border-color: var(--quick-tickets-color-brand);
}

/* Одиночные текстовые ссылки сохраняют смысловое подчёркивание во всех состояниях */
.quick-tickets-text-link,
.quick-tickets-text-link:hover,
.quick-tickets-text-link:focus,
#article p a[href]:not(.btn):not(.quick-tickets-action-link),
#article li a[href]:not(.btn):not(.quick-tickets-action-link),
#article td a[href]:not(.btn):not(.quick-tickets-action-link),
#article .error_text > a[href]:not(.btn):not(.quick-tickets-action-link),
.ck-content p a[href]:not(.btn):not(.quick-tickets-action-link),
.ck-content li a[href]:not(.btn):not(.quick-tickets-action-link),
.ck-content td a[href]:not(.btn):not(.quick-tickets-action-link),
#organisation .organisation-contacts .icons p a[href]:not(.btn):not(.quick-tickets-action-link) {
    border-bottom: 0;
    color: var(--quick-tickets-color-brand);
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Ссылки-заголовки сохраняют цвет и не получают подчёркивание при смене состояния */
.quick-tickets-heading-link,
.quick-tickets-heading-link:hover,
.quick-tickets-heading-link:focus,
.quick-tickets-heading-link .underline,
.quick-tickets-heading-link:hover .underline,
.quick-tickets-heading-link:focus .underline {
    text-decoration: none !important;
}

.quick-tickets-heading-link--brand,
.quick-tickets-heading-link--brand:hover,
.quick-tickets-heading-link--brand:focus {
    color: var(--quick-tickets-color-brand) !important;
}

.quick-tickets-heading-link--neutral,
.quick-tickets-heading-link--neutral:hover,
.quick-tickets-heading-link--neutral:focus {
    color: var(--quick-tickets-color-text) !important;
}

/* Белая подложка заполняет только внутреннюю часть иконки отзыва и сохраняет цветные рамку и смайлик */
.qxf-positiveReview,
.qxf-negativeReview {
    position: relative;
}

.qxf-positiveReview::before,
.qxf-negativeReview::before {
    position: relative;
    z-index: 1;
}

.qxf-positiveReview::after,
.qxf-negativeReview::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: #fff;
    clip-path: polygon(10% 10%, 90% 10%, 90% 89%, 70% 76%, 10% 76%);
    content: "";
    pointer-events: none;
}

/* Пагинация остаётся единым кнопочным элементом без подчёркивания текста */
#article .pagination > li > a[href]:not(.btn):not(.quick-tickets-action-link) {
    text-decoration: none;
}

/* Одиночные действия текущей страницы обозначаются пунктирной линией */
.quick-tickets-action-link,
.quick-tickets-action-link:hover,
.quick-tickets-action-link:focus {
    border-bottom: 0;
    text-decoration-line: underline;
    text-decoration-style: dashed;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.table > thead > tr > th,
.pagination > .active > a,
.pagination > .active > span {
    border-color: var(--quick-tickets-color-brand);
    background-color: var(--quick-tickets-color-brand);
}

/* Интерактивные элементы получают заметный единый фокус для управления с клавиатуры */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus {
    outline: 2px solid var(--quick-tickets-color-focus) !important;
    outline-offset: 2px !important;
}

/* В современных браузерах контур не показывается после обычного нажатия указателем */
@supports selector(:focus-visible) {
    a:focus:not(:focus-visible),
    button:focus:not(:focus-visible),
    input:focus:not(:focus-visible),
    select:focus:not(:focus-visible),
    textarea:focus:not(:focus-visible),
    [tabindex]:focus:not(:focus-visible) {
        outline: none !important;
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible,
    [tabindex]:focus-visible {
        outline: 2px solid var(--quick-tickets-color-focus) !important;
        outline-offset: 2px !important;
    }
}

@media (max-width: 767.999px) {
    /* На узком экране карточка сохраняет рамку и использует компактные внутренние отступы */
    .quick-tickets-empty-state {
        padding: 18px 14px;
    }

    /* Пустые результаты сохраняют нижний интервал обычной карточки */
    #elems-list > .quick-tickets-empty-state {
        margin-bottom: 20px;
    }
}

/* Поля формы используют только одну фирменную рамку без внешнего дублирующего контура */
.form-control:focus,
.form-control:focus-visible {
    outline: none !important;
}

/* Нативный флажок остаётся доступным скринридерам и клавиатуре без ухода за пределы страницы */
input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
}

/* Флажки отображаются символами штатного набора Quick X Icons */
input[type="checkbox"] + label {
    position: relative;
    display: inline-block;
    height: auto;
    min-height: 18px;
    padding-left: 25px;
    background: none;
    cursor: pointer;
}

input[type="checkbox"] + label::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "\e03e";
    width: 18px;
    height: 18px;
    color: #a0a0a0;
    font-family: "Quick X Icons" !important;
    font-size: 18px;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    line-height: 1;
    text-shadow: none;
    text-transform: none;
    speak: never;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

input[type="checkbox"]:checked + label::before {
    content: "\e03d";
    color: var(--quick-tickets-color-brand);
}

input[type="checkbox"]:disabled + label {
    cursor: not-allowed;
    opacity: 0.55;
}

input[type="checkbox"]:focus + label::before {
    border-radius: 2px;
    outline: 2px solid var(--quick-tickets-color-focus);
    outline-offset: 2px;
}

@supports selector(:focus-visible) {
    input[type="checkbox"]:focus:not(:focus-visible) + label::before {
        outline: none;
    }
}

/* На сенсорных экранах основные элементы управления получают удобную область нажатия */
@media (max-width: 767.999px) {
    .btn,
    .form-control,
    .input-group-btn > .btn {
        min-height: var(--quick-tickets-touch-target);
    }

    /* Ссылки-кнопки сохраняют естественную высоту симметричных внутренних отступов */
    a.btn,
    .btn[aria-current="page"] {
        min-height: 0;
    }

    input[type="checkbox"] + label {
        min-height: var(--quick-tickets-touch-target);
    }
}

/* Системная настройка уменьшения движения отключает декоративные длительные переходы */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
