/*
 * OpenPrint Modern — customer-facing theme, OpenPrint brand edition for HESK 3.7.10
 * This file is intentionally loaded after the stock HESK styles.
 * It changes presentation only; ticket logic and PHP forms remain untouched.
 */

:root {
    --op-brand: #7365f0;
    --op-brand-dark: #5b4ee8;
    --op-brand-deep: #4437bf;
    --op-brand-soft: #eeecff;
    --op-brand-softer: #f7f6ff;
    --op-ink: #1f1b32;
    --op-text: #49445f;
    --op-muted: #7b7690;
    --op-line: #e8e5f2;
    --op-line-strong: #dcd7eb;
    --op-surface: #ffffff;
    --op-page: #f7f6fb;
    --op-danger: #d84b4b;
    --op-warning: #c98912;
    --op-info: #3879c9;
    --op-radius-xs: 8px;
    --op-radius-sm: 12px;
    --op-radius: 18px;
    --op-radius-lg: 24px;
    --op-radius-xl: 32px;
    --op-shadow-xs: 0 1px 2px rgba(49, 42, 82, .04);
    --op-shadow-sm: 0 8px 24px rgba(63, 52, 123, .07);
    --op-shadow: 0 18px 48px rgba(63, 52, 123, .10);
    --op-shadow-hover: 0 22px 56px rgba(63, 52, 123, .14);
    --op-ring: 0 0 0 4px rgba(115, 101, 240, .14);

    /* HESK theme variables */
    --primary: var(--op-brand-deep);
    --secondary: var(--op-brand);
    --tertiary: var(--op-brand-dark);
    --surface: var(--op-surface);
    --foreground: var(--op-ink);
    --main-background: var(--op-page);
    --font__pri-clr: var(--op-ink);
    --font__sec-clr: var(--op-text);
    --header__bg: rgba(255,255,255,.92);
    --header_logo__clr: var(--op-ink);
    --header_nav__clr: var(--op-text);
    --header_nav__hover_clr: var(--op-brand-dark);
    --header_profile__clr: var(--op-text);
    --header_profile__menu-bg: var(--op-surface);
    --header_profile__user-avatar-bg: var(--op-brand);
    --header_profile__mobile-user-avatar-bg: var(--op-brand);
    --icon_circle__clr: var(--op-brand-dark);
    --icon_circle__bg: var(--op-brand-soft);
    --navlink_icon_hover__clr: #fff;
    --navlink_icon_hover__bg: var(--op-brand);
    --navlink__bg: var(--op-surface);
    --navlink__clr: var(--op-text);
    --navlink__hover-bg: var(--op-surface);
    --navlink__title-clr: var(--op-ink);
    --input-bg: #fbfaff;
    --input-clr: var(--op-ink);
    --link__pri-clr: var(--op-brand-dark);
    --link__pri-hover-clr: var(--op-brand-deep);
    --link__sec-clr: var(--op-brand);
    --link__sec-hover-clr: var(--op-brand-deep);
    --footer__link-clr: var(--op-brand-dark);
    --ticket_body__bg: transparent;
    --ticket_response__bg: var(--op-brand-softer);
    --preview__clr: var(--op-text);
    --preview__bg: var(--op-surface);
    --preview__border-clr: var(--op-line);
    --preview__hover-bg: var(--op-brand-softer);
    --preview__hover-icon-fill: #fff;
    --preview__title-clr: var(--op-ink);
    --article_preview__hover-clr: var(--op-brand-deep);
    --table_row__bg: var(--op-surface);
    --table_row__bg-even: #fbfaff;
    --table_row__bg-hover: var(--op-brand-softer);
    --step_bar__item-clr: var(--op-brand);
    --breadcrumbs__a-clr: var(--op-muted);
    --breadcrumbs__a-hover-clr: var(--op-brand-dark);
    --search__clr: var(--op-ink);
    --search__bg: transparent;
    --search__title-clr: var(--op-ink);
    --search__input-placeholder-clr: #8d9991;
    --search__icon-fill: var(--op-brand-dark);
    --search__input-bg: var(--op-surface);
    --modal_body__bg: var(--op-surface);
    --btn__bg-clr-pri: var(--op-brand);
    --btn__clr-pri: #fff;
    --btn__border-clr-pri: var(--op-brand);
    --dropdown__bg: var(--op-surface);
    --dropdown__clr: var(--op-ink);
    --dropdown__border-clr: var(--op-line-strong);
    --dropdown_ver1__border-clr: var(--op-line);
    --dropdown_ver2__border-clr: var(--op-line-strong);
    --dropdown__hover-bg: var(--op-brand-soft);
    --dropdown__hover-clr: var(--op-brand-deep);
    --dropdown__hover-border-clr: var(--op-brand);
    --radio__fill-clr: var(--op-brand);
    --radio__hover-bg: var(--op-brand-soft);
}

/* ---------- Base ---------- */
html {
    min-height: 100%;
    background: var(--op-page);
    color-scheme: light;
    scroll-behavior: smooth;
}

body.cust-help {
    min-height: 100vh;
    margin: 0;
    color: var(--op-text);
    background:
        radial-gradient(circle at 8% -10%, rgba(115,101,240,.10), transparent 34rem),
        radial-gradient(circle at 100% 18%, rgba(115,101,240,.06), transparent 30rem),
        var(--op-page);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.cust-help *,
body.cust-help *::before,
body.cust-help *::after {
    box-sizing: border-box;
}

body.cust-help a {
    color: var(--op-brand-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

body.cust-help a:hover {
    color: var(--op-brand-deep);
}

body.cust-help h1,
body.cust-help h2,
body.cust-help h3,
body.cust-help h4,
body.cust-help h5,
body.cust-help h6 {
    color: var(--op-ink);
    font-family: inherit;
    letter-spacing: -.025em;
}

body.cust-help p,
body.cust-help ul,
body.cust-help ol {
    color: inherit;
}

.wrapper {
    min-height: 100vh;
    overflow: clip;
}

.main {
    min-height: calc(100vh - 78px);
    background: transparent;
}

.contr {
    width: min(1180px, calc(100% - 40px));
    max-width: none;
    margin-inline: auto;
}

.main__content {
    min-height: auto;
    padding: 42px 0 72px;
    background: transparent;
}

.lightgrey {
    color: var(--op-muted) !important;
}

.divider {
    height: 1px;
    margin: 28px 0;
    background: var(--op-line);
    border: 0;
}

::selection {
    color: var(--op-brand-deep);
    background: rgba(115,101,240,.18);
}

/* ---------- Header ---------- */
.header {
    position: sticky;
    z-index: 900;
    top: 0;
    height: auto;
    min-height: 76px;
    background: rgba(255,255,255,.88);
    border-bottom: 1px solid rgba(212,224,216,.8);
    box-shadow: 0 4px 22px rgba(49,42,82,.04);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
}

.header .contr {
    min-height: 76px;
}

.header__inner {
    min-height: 76px;
    padding: 10px 0;
    align-items: center;
}

.header__logo {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    color: var(--op-ink) !important;
    text-decoration: none !important;
}

.header__logo::before,
.header__logo::after {
    content: none !important;
    display: none !important;
}

.header__logo-image {
    display: block;
    width: auto;
    height: 42px;
    max-width: min(230px, 42vw);
    object-fit: contain;
    object-position: left center;
}

.header__nav {
    display: flex;
    align-items: center;
    gap: 8px;
}

.header__nav .nav-item {
    margin: 0;
}

.header__nav .nav-item a,
.header__lang .selectize-input {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 9px 15px;
    color: var(--op-text) !important;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: 13px;
    box-shadow: var(--op-shadow-xs);
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
}

.header__nav .nav-item a:hover,
.header__lang .selectize-input:hover {
    color: var(--op-brand-deep) !important;
    border-color: rgba(115,101,240,.48);
    box-shadow: 0 7px 18px rgba(63,52,123,.08);
    transform: translateY(-1px);
}

.profile__item.profile__user {
    min-height: 46px;
    padding: 4px 7px 4px 5px;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: 15px;
    box-shadow: var(--op-shadow-xs);
}

.profile__item .user__ava {
    width: 36px;
    height: 36px;
    background: linear-gradient(145deg, #887df7, #6558eb);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 6px 14px rgba(115,101,240,.20);
    color: #fff;
    font-weight: 800;
}

.profile__item .user__name {
    color: var(--op-ink);
    font-size: 14px;
    font-weight: 650;
}

.profile__menu {
    top: calc(100% + 12px);
    min-width: 245px;
    padding: 10px;
    background: rgba(255,255,255,.98);
    border: 1px solid var(--op-line);
    border-radius: 18px;
    box-shadow: var(--op-shadow);
}

.profile__menu .profile--view {
    margin: 0 0 6px;
}

.profile__menu .profile--view .btn {
    min-height: 42px;
    justify-content: flex-start;
    background: transparent;
    border-color: transparent;
    border-radius: 11px;
    box-shadow: none;
    color: var(--op-text);
}

.profile__menu .profile--view .btn:hover {
    color: var(--op-brand-deep);
    background: var(--op-brand-soft);
    transform: none;
}

.profile--logout {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--op-line);
}

.profile--logout a {
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 11px;
}

.profile--logout a:hover {
    background: #fff4f4;
    color: var(--op-danger);
}

.header__lang {
    margin-left: 8px;
}

.header__lang .dropdown-select {
    min-width: 88px;
}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs {
    position: relative;
    z-index: 2;
    min-height: auto;
    background: transparent;
    border: 0;
}

.breadcrumbs__inner {
    min-height: 44px;
    padding: 13px 0 0;
    gap: 7px;
    color: var(--op-muted);
    font-size: 12px;
}

.breadcrumbs__inner a,
.breadcrumbs__inner .last {
    color: var(--op-muted);
    font-weight: 550;
}

.breadcrumbs__inner a:hover {
    color: var(--op-brand-dark);
}

.breadcrumbs__inner .icon-chevron-right {
    width: 12px;
    height: 12px;
    fill: #b0aabd;
}

/* ---------- Common cards, headings and notifications ---------- */
.article__heading,
.select__title,
.search__title {
    color: var(--op-ink);
}

.article__heading {
    margin: 0 0 24px;
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 800;
    line-height: 1.15;
    text-align: left;
}

.article__heading a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.article__heading--form {
    margin-bottom: 14px;
    text-align: center;
}

.article-heading-tip {
    max-width: 690px;
    margin: 0 auto 28px;
    color: var(--op-muted);
    font-size: 14px;
    line-height: 1.6;
}

.notification,
.notification-flash,
.main__content.notice-flash {
    color: var(--op-text);
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow-sm);
}

.notification {
    padding: 17px 18px 17px 54px;
}

.notification::before,
.notification-flash::before {
    border-radius: 999px;
}

.notification.green,
.notification-flash.green {
    background: #f8f7ff;
    border-color: #ddd8ff;
}

.notification.red,
.notification-flash.red {
    background: #fff6f6;
    border-color: #f0d1d1;
}

.notification.orange,
.notification-flash.orange {
    background: #fffaf0;
    border-color: #eddfbd;
}

.notification.blue,
.notification-flash.blue {
    background: #f4f8fd;
    border-color: #dddaf5;
}

.notification-flash .close {
    border-radius: 999px;
}

/* ---------- Buttons ---------- */
.btn,
button.btn,
input[type="submit"].btn {
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--op-brand);
    border-radius: 13px;
    box-shadow: 0 7px 18px rgba(115,101,240,.16);
    color: #fff;
    background: linear-gradient(145deg, #28ae6d, #6255e8);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -.01em;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}

.btn:hover,
.btn:focus-visible,
button.btn:hover,
input[type="submit"].btn:hover {
    color: #fff;
    background: linear-gradient(145deg, #239f63, #137b49);
    border-color: var(--op-brand-dark);
    box-shadow: 0 11px 24px rgba(115,101,240,.23);
    transform: translateY(-1px);
}

.btn:active {
    box-shadow: 0 4px 10px rgba(115,101,240,.16);
    transform: translateY(0);
}

.btn-full {
    min-width: 190px;
}

.btn--blue-border,
.btn-border,
.btn.btn-link,
.btn.link {
    color: var(--op-brand-dark);
    background: #fff;
    border-color: var(--op-line-strong);
    box-shadow: var(--op-shadow-xs);
}

.btn--blue-border:hover,
.btn-border:hover,
.btn.btn-link:hover,
.btn.link:hover {
    color: var(--op-brand-deep);
    background: var(--op-brand-soft);
    border-color: rgba(115,101,240,.44);
    box-shadow: 0 8px 18px rgba(63,52,123,.08);
}

.btn-action,
.btn-refresh,
.btn-toggler {
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    background: #fff;
    border-color: var(--op-line);
    border-radius: 12px;
    box-shadow: var(--op-shadow-xs);
    color: var(--op-brand-dark);
}

.btn-action .icon,
.btn-refresh .icon,
.btn-toggler .icon {
    fill: currentColor;
}

.btn-action:hover,
.btn-refresh:hover,
.btn-toggler:hover {
    color: var(--op-brand-deep);
    background: var(--op-brand-soft);
}

.link {
    color: var(--op-brand-dark);
    font-weight: 650;
}

/* ---------- Inputs, selects and forms ---------- */
.form,
.form-submit-ticket {
    color: var(--op-text);
}

.form-submit-ticket,
.page-login .form-submit-ticket,
.page-register .form-submit-ticket,
.page-reset-password .form-submit-ticket,
.page-form .form-submit-ticket,
.page-create-ticket .form-submit-ticket,
.page-profile .form-submit-ticket,
.page-manage-mfa .form-submit-ticket {
    width: min(760px, 100%);
    max-width: none;
    margin: 0 auto;
    padding: 30px;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    box-shadow: var(--op-shadow-sm);
}

.page-create-ticket .form-submit-ticket {
    width: min(850px, 100%);
}

.form-groups.centered,
.form-submit-ticket .form-groups.centered {
    width: 100%;
    max-width: none;
}

.form-group,
.form-submit-ticket .form-group,
.form-submit-ticket .param {
    width: 100%;
    margin-bottom: 22px;
}

.form .label,
.form label,
.param > .label {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--op-ink);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.form-group.required .label::after,
.form-group.required label::after,
.label.required::after,
label.required::after {
    color: var(--op-danger);
}

.form-control,
.form input.form-control,
.form textarea.form-control,
.form select.form-control,
.selectize-input,
.dropdown-select > select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="search"],
textarea,
select {
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
    color: var(--op-ink);
    background: #fbfaff;
    border: 1px solid var(--op-line-strong);
    border-radius: 13px;
    box-shadow: inset 0 1px 2px rgba(49,42,82,.02);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.45;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea.form-control,
.form-submit-ticket textarea.form-control,
.form--reply textarea.form-control {
    min-height: 150px;
    resize: vertical;
}

.form-control:hover,
.selectize-input:hover,
input:hover,
textarea:hover,
select:hover {
    border-color: #c7c2d4;
}

.form-control:focus,
.form input.form-control:focus,
.form textarea.form-control:focus,
.selectize-input.focus,
.selectize-control.single .selectize-input.input-active,
input:focus,
textarea:focus,
select:focus {
    outline: none;
    background: #fff;
    border-color: var(--op-brand);
    box-shadow: var(--op-ring);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: #97a29a;
    opacity: 1;
}

.form-control.isError,
.form-control.invalid,
.form.invalid .form-control:invalid,
.selectize-control.isError .selectize-input {
    border-color: #df7777;
    box-shadow: 0 0 0 4px rgba(216,75,75,.09);
}

.form-control__error {
    margin-top: 7px;
    color: var(--op-danger);
    font-size: 12px;
    font-weight: 650;
}

.form-footer,
.form__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--op-line);
}

.form-footer .btn,
.form__submit .btn {
    margin: 0;
}

.form-footer .link {
    margin: 0 8px;
}

.checkbox-custom label,
.radio-custom label {
    min-height: 24px;
    color: var(--op-text);
    font-weight: 550;
}

.checkbox-custom label::before,
.radio-custom label::before {
    border-color: var(--op-line-strong);
    box-shadow: none;
}

.checkbox-custom input:focus + label::before,
.radio-custom input:focus + label::before {
    box-shadow: var(--op-ring);
}

/* Selectize / dropdowns */
.selectize-control {
    width: 100%;
}

.selectize-control .selectize-input {
    display: flex;
    align-items: center;
    padding: 11px 42px 11px 14px;
    background: #fbfaff;
    border-radius: 13px;
    box-shadow: none;
}

.selectize-control .selectize-input::after {
    right: 15px;
}

.selectize-dropdown,
.dropdown-list,
.tooltype__content {
    margin-top: 8px;
    padding: 7px;
    background: rgba(255,255,255,.99);
    border: 1px solid var(--op-line);
    border-radius: 14px;
    box-shadow: var(--op-shadow);
    overflow: hidden;
}

.selectize-dropdown .option,
.selectize-dropdown [data-selectable],
.dropdown-list li {
    margin: 2px 0;
    padding: 10px 12px;
    border-radius: 9px;
}

.selectize-dropdown .option.active,
.selectize-dropdown [data-selectable].active,
.dropdown-list li:hover {
    color: var(--op-brand-deep);
    background: var(--op-brand-soft);
}

/* ---------- Home page ---------- */
.page-index .main__content {
    padding-top: 34px;
}

.help-search {
    position: relative;
    width: 100%;
    margin: 0 0 28px;
    padding: clamp(28px, 5vw, 54px);
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 0%, rgba(255,255,255,.22), transparent 19rem),
        linear-gradient(135deg, #0f6840 0%, #1fa062 62%, #37b97a 100%);
    border: 0;
    border-radius: var(--op-radius-xl);
    box-shadow: 0 22px 55px rgba(20,123,74,.20);
}

.help-search::before,
.help-search::after {
    content: "";
    position: absolute;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
}

.help-search::before {
    width: 260px;
    height: 260px;
    right: -80px;
    top: -120px;
}

.help-search::after {
    width: 150px;
    height: 150px;
    right: 100px;
    bottom: -105px;
}

.help-search .search__title {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto 22px;
    color: #fff;
    font-size: clamp(28px, 5vw, 46px);
    font-weight: 820;
    line-height: 1.08;
    text-align: center;
    letter-spacing: -.045em;
}

.help-search .search__form {
    position: relative;
    z-index: 2;
    width: min(720px, 100%);
    margin: 0 auto;
}

.help-search .search__form .form-control,
.help-search .search__form input {
    min-height: 60px;
    padding: 15px 58px 15px 20px;
    background: rgba(255,255,255,.98);
    border-color: transparent;
    border-radius: 17px;
    box-shadow: 0 12px 30px rgba(7,69,39,.19);
    font-size: 16px;
}

.help-search .search__submit {
    right: 9px;
    top: 50%;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--op-brand-soft);
    transform: translateY(-50%);
}

.help-search .search__submit:hover {
    background: #e8e5ff;
}

.page-my-tickets .help-search {
    padding: 30px;
    border-radius: var(--op-radius-lg);
}

.page-my-tickets .help-search .search__title {
    font-size: clamp(26px, 4vw, 36px);
}

.nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 40px;
}

.navlink {
    position: relative;
    display: flex;
    min-height: 142px;
    align-items: center;
    gap: 18px;
    padding: 24px;
    overflow: hidden;
    color: var(--op-text) !important;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    box-shadow: var(--op-shadow-sm);
    text-decoration: none !important;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.navlink::after {
    content: "→";
    position: absolute;
    right: 22px;
    top: 22px;
    color: #aaa4bc;
    font-size: 22px;
    font-weight: 600;
    transition: color .2s ease, transform .2s ease;
}

.navlink:hover {
    color: var(--op-text) !important;
    background: #fff;
    border-color: rgba(115,101,240,.30);
    box-shadow: var(--op-shadow-hover);
    transform: translateY(-4px);
}

.navlink:hover::after {
    color: var(--op-brand);
    transform: translateX(4px);
}

.icon-in-circle {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    margin: 0;
    color: var(--op-brand-dark);
    background: var(--op-brand-soft);
    border: 1px solid rgba(115,101,240,.12);
    border-radius: 17px;
    box-shadow: none;
}

.icon-in-circle .icon {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.navlink:hover .icon-in-circle,
.article__heading a:hover .icon-in-circle,
.preview:hover .icon-in-circle {
    color: #fff;
    background: linear-gradient(145deg, #2ab06f, #6255e8);
    border-color: transparent;
    box-shadow: 0 9px 20px rgba(115,101,240,.20);
}

.navlink__title {
    margin: 0 34px 5px 0;
    color: var(--op-ink);
    font-size: 19px;
    font-weight: 760;
    line-height: 1.25;
}

.navlink__descr {
    color: var(--op-muted);
    font-size: 14px;
    line-height: 1.55;
}

/* ---------- Knowledge base ---------- */
.article {
    margin: 46px 0 0;
}

.article .block__head {
    padding: 20px;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius) var(--op-radius) 0 0;
    box-shadow: none;
}

.article .article__heading {
    margin-bottom: 22px;
    font-size: clamp(24px, 4vw, 34px);
    text-align: center;
}

.tabbed__head {
    border: 0;
    background: transparent;
}

.tabbed__head .tabbed__head_tabs {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 14px;
    padding: 5px;
    gap: 4px;
    background: #efedf6;
    border: 1px solid var(--op-line);
    border-radius: 14px;
}

.tabbed__head .tabbed__head_tabs li {
    min-width: 150px;
    min-height: 40px;
    margin: 0;
    padding: 9px 16px;
    color: var(--op-muted);
    background: transparent;
    border: 0;
    border-radius: 10px;
    font-weight: 700;
}

.tabbed__head .tabbed__head_tabs li.current {
    color: var(--op-brand-deep);
    background: #fff;
    border: 0;
    box-shadow: 0 4px 12px rgba(63,52,123,.08);
}

.tabbed__head .tabbed__head_tabs li:not(.current):hover {
    color: var(--op-brand-deep);
    background: rgba(255,255,255,.54);
    border: 0;
}

.tabbed__tabs .tabbed__tabs_tab {
    display: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.tabbed__tabs .tabbed__tabs_tab.is-visible {
    display: grid;
}

.preview,
a.preview {
    position: relative;
    display: flex;
    min-height: 132px;
    gap: 14px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow-xs);
    color: var(--op-text);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.preview:hover,
a.preview:hover {
    color: var(--op-text) !important;
    background: #fff;
    border-color: rgba(115,101,240,.28);
    box-shadow: var(--op-shadow-sm);
    transform: translateY(-2px);
}

.preview .preview__title {
    margin: 0 0 7px;
    color: var(--op-ink);
    font-size: 16px;
    font-weight: 750;
}

.preview__text {
    max-width: none;
    min-width: 0;
}

.preview .rate {
    margin-left: auto;
    color: var(--op-muted);
}

.article__footer {
    margin: 28px 0 8px;
}

/* KB category pages */
.topics,
.content,
.kb-category,
.kb-article,
.article-view {
    border-radius: var(--op-radius);
}

.topics__block,
.article-view,
.page-view-article .article,
.page-view-category .content,
.page-search-results .content {
    background: rgba(255,255,255,.96);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    box-shadow: var(--op-shadow-sm);
}

.topics__block {
    overflow: hidden;
}

.topic,
.category,
.search-result {
    border-color: var(--op-line) !important;
}

/* ---------- Ticket list ---------- */
.table-wrap {
    width: 100%;
    padding: 8px;
    overflow: auto;
    background: rgba(255,255,255,.98);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    box-shadow: var(--op-shadow-sm);
}

.table {
    width: 100%;
    min-width: 760px;
    border: 0;
    border-collapse: separate;
    border-spacing: 0 7px;
    background: transparent;
}

.table thead th {
    padding: 10px 14px;
    color: var(--op-muted);
    background: transparent;
    border: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.table thead th a {
    color: inherit;
    text-decoration: none;
}

.table tbody tr {
    background: #fff;
    border-radius: 13px;
    box-shadow: 0 1px 0 var(--op-line);
    transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.table tbody tr:hover {
    background: var(--op-brand-softer);
    box-shadow: 0 7px 18px rgba(63,52,123,.07);
    transform: translateY(-1px);
}

.table tbody tr.new {
    background: #f4f2ff;
    box-shadow: inset 3px 0 0 var(--op-brand), 0 1px 0 var(--op-line);
}

.table tbody td {
    padding: 15px 14px;
    color: var(--op-text);
    background: transparent !important;
    border: 0;
    font-size: 13px;
    vertical-align: middle;
}

.table tbody td:first-child {
    border-radius: 12px 0 0 12px;
}

.table tbody td:last-child {
    border-radius: 0 12px 12px 0;
}

.table tbody td a {
    color: var(--op-brand-dark);
    font-weight: 700;
}

.table .status,
.table [class*="status"] {
    font-weight: 700;
}

.priority_img {
    border-radius: 4px;
}

.pager,
.pagination {
    margin-top: 24px;
}

.pagination__link,
.pagination__nav-btn {
    min-width: 38px;
    min-height: 38px;
    border: 1px solid var(--op-line);
    border-radius: 11px;
    background: #fff;
    box-shadow: var(--op-shadow-xs);
}

.pagination__item.current .pagination__link,
.pagination__link:hover,
.pagination__nav-btn:hover {
    color: #fff;
    background: var(--op-brand);
    border-color: var(--op-brand);
}

/* ---------- Ticket page / conversation ---------- */
.page-view-ticket .main__content {
    padding-top: 26px;
}

.main__content.ticket,
.page-view-ticket .ticket {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    align-items: start;
    gap: 22px;
    width: 100%;
    padding: 0;
}

.page-view-ticket .ticket__body {
    min-width: 0;
    margin: 0;
    padding: 0;
}

.page-view-ticket .ticket__params {
    position: sticky;
    top: 96px;
    width: auto;
    min-width: 0;
}

.ticket__body_block {
    position: relative;
    margin: 0 0 16px;
    padding: 22px;
    overflow: visible;
    color: var(--op-text);
    background: rgba(255,255,255,.98);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow-xs);
}

.ticket__body_block.original-message {
    border-left: 4px solid #d4d0df;
}

.ticket__body_block.response {
    margin-left: 46px;
    background: linear-gradient(145deg, #faf9ff, #f1efff);
    border-color: #e4e0ff;
    border-left: 4px solid var(--op-brand);
}

.ticket__body_block.response::before {
    content: "";
    position: absolute;
    left: -31px;
    top: 24px;
    width: 16px;
    height: 16px;
    background: var(--op-brand);
    border: 5px solid var(--op-page);
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(115,101,240,.16);
}

.ticket__body_block > h1 {
    margin: 0 0 17px;
    color: var(--op-ink);
    font-size: clamp(22px, 3.8vw, 31px);
    font-weight: 800;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

.ticket__body_block .block--head {
    display: flex;
    min-height: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 18px;
    padding: 0 0 15px;
    color: var(--op-muted);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--op-line);
    box-shadow: none;
    font-size: 12px;
}

.ticket__body_block .contact,
.ticket__body_block .requester,
.ticket__body_block time {
    color: var(--op-muted);
}

.ticket__body_block .dropdown.customer label {
    color: var(--op-text);
    background: #f7f6fb;
    border-radius: 9px;
}

.ticket__body_block .block--description {
    padding: 0;
    color: var(--op-text);
    font-size: 15px;
    line-height: 1.72;
    overflow-wrap: anywhere;
}

.ticket__body_block .block--description p:first-child {
    margin-top: 0;
}

.ticket__body_block .block--description p:last-child {
    margin-bottom: 0;
}

.ticket__block-footer {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--op-line);
    color: var(--op-muted);
}

.block--uploads {
    margin-top: 17px;
    padding: 13px 15px;
    color: var(--op-text);
    background: #f8f7fc;
    border: 1px solid var(--op-line);
    border-radius: 12px;
}

.block--uploads a {
    font-weight: 650;
}

.params--block {
    overflow: hidden;
    background: rgba(255,255,255,.98);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow-sm);
}

.params--block .accordion-title {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0;
    padding: 15px 16px;
    color: var(--op-ink);
    background: linear-gradient(180deg, #fff, #fbfaff);
    border-bottom: 1px solid var(--op-line);
    font-size: 16px;
    font-weight: 780;
}

.params--block .accordion-title .btn.link {
    width: auto;
    min-width: 0;
    min-height: 34px;
    height: 34px;
    padding: 7px 9px;
    border: 0;
    box-shadow: none;
    background: var(--op-brand-soft);
    font-size: 11px;
}

.params--block .accordion-body {
    padding: 9px 16px 15px;
}

.params--block .row {
    display: grid;
    grid-template-columns: minmax(88px, .9fr) minmax(0, 1.1fr);
    gap: 12px;
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid #f0eef6;
}

.params--block .row:last-child {
    border-bottom: 0;
}

.params--block .row .title {
    color: var(--op-muted);
    font-size: 12px;
}

.params--block .row .value {
    min-width: 0;
    color: var(--op-ink);
    font-size: 12px;
    font-weight: 650;
    overflow-wrap: anywhere;
}

/* Reply composer */
.ticket__body_block:has(.form--reply) {
    padding: 24px;
    background: #fff;
    border-color: #ded9ff;
    box-shadow: 0 14px 38px rgba(63,52,123,.08);
}

.ticket__body_block > .text-bold:first-child {
    margin-bottom: 15px;
    color: var(--op-ink);
    font-size: 18px;
    font-weight: 800;
}

.form--reply .form-group {
    margin-bottom: 17px;
}

.form--reply textarea.form-control {
    min-height: 170px;
    background: #fbfaff;
}

.form--reply .form__submit {
    justify-content: flex-end;
    margin-top: 18px;
    padding-top: 18px;
}

/* ---------- Attachments / dropzone ---------- */
.param--attach {
    padding: 0;
}

.attach .block--attach,
.dropzone {
    min-height: 112px;
    padding: 18px;
    background: #faf9ff;
    border: 1.5px dashed #cfc9f5;
    border-radius: 15px;
    transition: background .18s ease, border-color .18s ease;
}

.attach .block--attach:hover,
.dropzone:hover,
.dropzone.dz-drag-hover {
    background: var(--op-brand-softer);
    border-color: var(--op-brand);
}

.dropzone .dz-message .dz-button,
.attach .link {
    color: var(--op-brand-dark);
    font-weight: 700;
}

.attach-tooltype {
    margin-top: 8px;
    color: var(--op-muted);
    font-size: 12px;
}

.attachment-row {
    margin-top: 8px;
    padding: 11px 12px;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: 11px;
}

/* ---------- Category selection ---------- */
.page-category-select .select__title {
    margin: 0 0 24px;
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 800;
    text-align: center;
}

.page-category-select .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(900px, 100%);
    margin-inline: auto;
}

.page-category-select .navlink {
    min-height: 106px;
}

.page-category-select .form-submit-ticket {
    margin-bottom: 22px;
}

/* ---------- Login, registration, profile and utility pages ---------- */
.page-login .main__content,
.page-register .main__content,
.page-reset-password .main__content,
.page-form .main__content,
.page-manage-mfa .main__content,
.page-elevator .main__content,
.page-error .main__content,
.page-maintenance .main__content,
.page-register-success .main__content,
.page-verify-registration .main__content {
    padding-top: 52px;
}

.page-login .contr,
.page-register .contr,
.page-reset-password .contr,
.page-form .contr,
.page-manage-mfa .contr,
.page-elevator .contr,
.page-error .contr,
.page-maintenance .contr,
.page-register-success .contr,
.page-verify-registration .contr {
    width: min(720px, calc(100% - 40px));
}

.page-login .form-submit-ticket,
.page-form .form-submit-ticket {
    width: min(560px, 100%);
}

.page-login .article__heading,
.page-register .article__heading,
.page-reset-password .article__heading,
.page-form .article__heading {
    font-size: clamp(28px, 5vw, 40px);
}

.page-profile .profile__info,
.page-profile .profile__edit,
.profile--view,
.profile__control {
    background: #fff;
    border-color: var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow-xs);
}

.step-bar {
    gap: 8px;
}

.step-bar .step-item,
.step-item {
    border-radius: var(--op-radius);
}

.modal,
.jquery-modal.blocker {
    backdrop-filter: blur(8px);
}

.modal a.close-modal {
    border-radius: 999px;
}

#modal-contents,
.modal > div {
    border-radius: var(--op-radius);
}

/* ---------- Loading ---------- */
.loading-overlay {
    background: rgba(245,248,246,.82);
    backdrop-filter: blur(5px);
}

.loading-message {
    padding: 22px 28px;
    background: #fff;
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius);
    box-shadow: var(--op-shadow);
}

.spinner {
    border-color: #e8e5f1;
    border-top-color: var(--op-brand);
}

/* ---------- Footer ---------- */
.footer {
    display: block !important;
    margin-top: 26px;
    padding: 24px 20px 32px;
    color: var(--op-muted);
    background: transparent;
    border-top: 1px solid rgba(212,224,216,.75);
    font-size: 12px;
}

.footer p {
    display: block !important;
    margin: 0;
    color: var(--op-muted);
}

.footer a {
    display: inline !important;
    color: var(--op-brand-dark);
}

/* ---------- Tooltips and misc ---------- */
.tooltipster-base,
.Zebra_Tooltip,
.tooltype__content {
    border-radius: 12px !important;
    box-shadow: var(--op-shadow-sm) !important;
}

.browser-default blockquote {
    margin: 18px 0;
    padding: 12px 16px;
    background: #faf9ff;
    border-left: 4px solid #cbc5f3;
    border-radius: 0 10px 10px 0;
}

.browser-default code,
.browser-default pre {
    border-radius: 10px;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
    .contr {
        width: min(100% - 28px, 1180px);
    }

    .main__content {
        padding: 30px 0 54px;
    }

    .main__content.ticket,
    .page-view-ticket .ticket {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .page-view-ticket .ticket__body {
        width: 100%;
        order: 2;
    }

    .page-view-ticket .ticket__params {
        position: static;
        width: 100%;
        order: 1;
    }

    .params--block .accordion-title {
        min-height: 58px;
    }

    .ticket__body_block.response {
        margin-left: 28px;
    }

    .ticket__body_block.response::before {
        left: -22px;
    }
}

@media (max-width: 760px) {
    body.cust-help {
        font-size: 14px;
    }

    .header,
    .header .contr,
    .header__inner {
        min-height: 66px;
    }

    .header__inner {
        gap: 10px;
    }

    .header__logo {
        max-width: 62%;
        font-size: 17px;
    }

    .header__logo::before {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
        border-radius: 11px;
    }

    .header__logo::after {
        width: 34px;
        line-height: 34px;
    }

    .header__nav {
        gap: 5px;
    }

    .header__nav .nav-item a {
        min-height: 38px;
        padding: 8px 10px;
        border-radius: 11px;
        font-size: 12px;
    }

    .header__lang {
        display: none;
    }

    .profile__item.profile__user {
        min-height: 42px;
        padding: 3px;
    }

    .profile__item .user__ava {
        width: 34px;
        height: 34px;
    }

    .profile__item .user__name {
        display: none;
    }

    .breadcrumbs__inner {
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .help-search {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .help-search .search__title {
        font-size: 31px;
    }

    .help-search .search__form .form-control,
    .help-search .search__form input {
        min-height: 54px;
        padding-left: 16px;
    }

    .nav,
    .page-category-select .nav,
    .tabbed__tabs .tabbed__tabs_tab.is-visible {
        grid-template-columns: 1fr;
    }

    .navlink {
        min-height: 116px;
        padding: 20px;
        border-radius: 20px;
    }

    .form-submit-ticket,
    .page-login .form-submit-ticket,
    .page-register .form-submit-ticket,
    .page-reset-password .form-submit-ticket,
    .page-form .form-submit-ticket,
    .page-create-ticket .form-submit-ticket,
    .page-profile .form-submit-ticket,
    .page-manage-mfa .form-submit-ticket {
        padding: 22px 18px;
        border-radius: 20px;
    }

    .form-footer,
    .form__submit {
        flex-direction: column;
        align-items: stretch;
    }

    .form-footer .btn,
    .form__submit .btn,
    .btn-full {
        width: 100%;
        min-width: 0;
    }

    .table-wrap {
        padding: 5px;
        border-radius: 18px;
    }

    .ticket__body_block,
    .ticket__body_block:has(.form--reply) {
        padding: 18px;
        border-radius: 17px;
    }

    .ticket__body_block.response {
        margin-left: 14px;
    }

    .ticket__body_block.response::before {
        display: none;
    }

    .ticket__body_block .block--head {
        flex-direction: column;
    }

    .ticket__body_block .block--head .btn-action {
        position: absolute;
        right: 15px;
        top: 15px;
    }

    .ticket__body_block .contact.grid {
        padding-right: 42px;
    }

    .params--block .row {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .params--block .accordion-title .btn.link .ml-1 {
        display: none;
    }

    .tabbed__head .tabbed__head_tabs {
        width: 100%;
    }

    .tabbed__head .tabbed__head_tabs li {
        min-width: 0;
        flex: 1;
        padding-inline: 9px;
        font-size: 12px;
    }
}

@media (max-width: 460px) {
    .contr,
    .page-login .contr,
    .page-register .contr,
    .page-reset-password .contr,
    .page-form .contr,
    .page-manage-mfa .contr,
    .page-elevator .contr,
    .page-error .contr,
    .page-maintenance .contr,
    .page-register-success .contr,
    .page-verify-registration .contr {
        width: calc(100% - 20px);
    }

    .main__content {
        padding: 22px 0 42px;
    }

    .header__logo {
        max-width: 54%;
        font-size: 15px;
    }

    .header__logo::before,
    .header__logo::after {
        display: none;
    }

    .header__nav .nav-item a {
        padding-inline: 8px;
    }

    .help-search {
        padding: 24px 14px;
    }

    .help-search .search__title {
        font-size: 27px;
    }

    .navlink {
        gap: 13px;
        padding: 17px;
    }

    .icon-in-circle {
        width: 46px;
        height: 46px;
        flex-basis: 46px;
        border-radius: 14px;
    }

    .navlink__title {
        font-size: 17px;
    }

    .article__heading {
        font-size: 29px;
    }

    .params--block .accordion-title {
        padding-inline: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
