    body {
        font-family: Arial, sans-serif;
        margin: 0;
        background: #f3eef7;
        color: #251b2f
    }

    body.login-page {
        background: #7A003C;
        min-height: 100vh
    }

    .wrap {
        max-width: 1400px;
        margin: 0 auto;
        padding: 16px
    }

    .card {
        background: #fff;
        border: 1px solid #e4dae9;
        border-radius: 14px;
        padding: 16px;
        margin-bottom: 12px
    }

    h1,
    h2,
    h3 {
        margin: 0 0 12px
    }

    input,
    select,
    textarea,
    button {
        font: inherit;
        box-sizing: border-box
    }

    label {
        display: block;
        margin-bottom: 4px;
        font-size: 12px;
        font-weight: 600;
        color: #7a7381;
        letter-spacing: .01em;
    }

    /* Hvězdičku vkládá skript hned za text popisku (partials/layout/inline_script.php).
       ::after zůstává jen pro popisky, kde pole není uvnitř – tam je až na konci správně. */
    label.required-label .required-mark {
        color: #9b1f50;
        font-weight: 700;
    }

    label.required-label:not(:has(.required-mark))::after {
        content: " *";
        color: #9b1f50;
        font-weight: 700;
    }

    input,
    select,
    textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #cabbd4;
        border-radius: 8px;
        background: #fff
    }

    textarea {
        min-height: 80px
    }

    .row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px
    }

    .row3 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 10px
    }

    .location-menu-availability {
        margin-top: 10px;
        padding: 10px 12px;
        border: 1px solid #eadce7;
        border-radius: 14px;
        background: #fffafd;
    }

    .location-menu-availability-title {
        margin: 0 0 8px;
        color: #7A1B3A;
        font-weight: 800;
        font-size: 13px;
        letter-spacing: .02em;
        text-transform: uppercase;
    }

    .location-menu-availability-row {
        display: grid;
        grid-template-columns: 112px 132px 132px minmax(420px, 1fr);
        gap: 10px;
        align-items: center;
    }

    .location-menu-availability input[type="time"] {
        height: 34px;
        border-radius: 999px;
        padding: 6px 10px;
        color: #2a2132;
    }

    .location-menu-visible-switch {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        color: #7a7381;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
    }

    .location-menu-visible-switch .form-switch {
        min-height: auto;
        padding-top: 0;
        gap: 0;
    }

    .weekday-chip-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
        min-height: 34px;
    }

    .weekday-chip {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        cursor: pointer;
        user-select: none;
    }

    .weekday-chip span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 34px;
        height: 34px;
        padding: 0 10px;
        border: 1px solid #d9c8d3;
        border-radius: 999px;
        background: #fff;
        color: #7a7381;
        font-size: 12px;
        font-weight: 800;
        transition: background .15s ease, border-color .15s ease, color .15s ease;
    }

    .weekday-chip input {
        position: absolute;
        opacity: 0;
        pointer-events: none;
        width: 1px;
        height: 1px;
    }

    .weekday-chip input:checked+span {
        background: #7A1B3A;
        border-color: #7A1B3A;
        color: #fff;
    }

    .weekday-chip:hover span {
        border-color: #7A1B3A;
        color: #7A1B3A;
    }

    .weekday-chip input:checked+span,
    .weekday-chip input:checked+span:hover {
        color: #fff;
    }

    .location-menu-availability-note {
        margin-top: 8px;
        color: #8a8290;
        font-size: 12px;
    }

    .location-menu-pauses {
        margin-top: 14px;
        padding-top: 12px;
        border-top: 1px solid #eadce7;
    }

    .location-menu-pauses-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 6px;
    }

    .location-menu-pauses-head .location-menu-availability-title,
    .location-menu-pauses-head .location-menu-availability-note {
        margin: 0;
    }

    .location-menu-add-pause {
        flex: 0 0 auto;
        padding: 7px 12px;
    }

    .location-menu-pause-row {
        display: grid;
        grid-template-columns: 120px 120px minmax(300px, 1fr) minmax(260px, 1fr) 36px;
        gap: 10px;
        align-items: end;
        padding: 10px 0;
        border-bottom: 1px solid #f0e6ed;
    }

    .location-menu-pause-row input[type="time"] {
        height: 34px;
        border-radius: 999px;
        padding: 6px 10px;
    }

    .location-menu-remove-pause {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        padding: 0;
        border-radius: 999px;
        background: #fff;
        color: #7A1B3A;
        font-size: 22px;
        line-height: 1;
    }

    .location-menu-items-table.is-reorderable tbody tr {
        cursor: grab;
    }

    .location-menu-items-table.is-reorderable tbody tr.is-dragging {
        opacity: .42;
    }

    .location-menu-drag-cell {
        width: 38px;
        text-align: center;
    }

    .location-menu-drag-handle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 999px;
        color: #9b8da2;
        background: #f7f0f5;
        font-weight: 900;
        line-height: 1;
        cursor: grab;
        user-select: none;
    }

    .location-menu-reorder-actions {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-top: 10px;
    }

    @media (max-width: 1100px) {
        .location-menu-availability-row {
            grid-template-columns: 1fr 1fr;
        }

        .location-menu-weekdays-field {
            grid-column: span 2;
        }

        .location-menu-pause-row {
            grid-template-columns: 1fr 1fr 36px;
        }

        .location-menu-pause-weekdays {
            grid-column: span 2;
        }

        .location-menu-pause-row>div:nth-child(4) {
            grid-column: span 2;
        }
    }

    @media (max-width: 720px) {
        .location-menu-availability-row {
            grid-template-columns: 1fr;
        }

        .location-menu-weekdays-field {
            grid-column: auto;
        }

        .location-menu-pauses-head {
            align-items: flex-start;
            flex-direction: column;
        }

        .location-menu-pause-row {
            grid-template-columns: 1fr 1fr 36px;
        }
    }

    .row4 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 10px
    }

    .menu {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        margin-bottom: 12px
    }

    .menu a {
        padding: 8px 12px;
        border: 1px solid #c4b3cd;
        border-radius: 999px;
        text-decoration: none;
        color: #67143a;
        background: #fff
    }

    .menu a.active {
        background: #7A1B3A;
        color: #fff;
        border-color: #7A1B3A
    }

    button {
        padding: 9px 14px;
        border-radius: 999px;
        border: 1px solid #7A1B3A;
        background: #7A1B3A;
        color: #fff;
        cursor: pointer
    }

    .btn-light {
        background: #fff;
        color: #7A1B3A
    }

    .flash {
        padding: 10px 12px;
        border-radius: 10px;
        margin-bottom: 12px
    }

    .ok {
        background: #e9f8ea;
        color: #176227
    }

    .err {
        background: #fdeaea;
        color: #7e2020
    }

    table {
        width: 100%;
        border-collapse: collapse
    }

    th,
    td {
        padding: 8px;
        border-bottom: 1px solid #eee;
        text-align: left;
        vertical-align: middle
    }

    .muted {
        color: #7a7381;
        font-size: 13px
    }

    .codebox {
        font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
        font-size: 13px;
        line-height: 1.45
    }

    .hint {
        background: #f8f4fb;
        border: 1px solid #e4dae9;
        border-radius: 10px;
        padding: 10px
    }

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

    .title-block h1 {
        margin: 0;
        font-size: 24px;
        line-height: 1.1;
        font-weight: 700;
    }

    .title-sub {
        margin-top: 4px;
        font-size: 13px;
        color: #7a7381;
        font-weight: 600;
        letter-spacing: .02em;
    }

    .top-right {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap
    }

    .top-user {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 4px 8px;
        border-radius: 999px;
        background: #f8f4fb;
        border: 1px solid #e4dae9;
    }

    .top-user-avatar {
        width: 28px;
        height: 28px;
        border-radius: 50%;
        object-fit: cover;
        border: 1px solid #d8cadf;
        background: #fff;
        display: block
    }

    .top-user-avatar-fallback {
        width: 28px;
        height: 28px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid #d8cadf;
        background: #fff;
        color: #7A1B3A;
        font-size: 14px
    }

    .logout-link {
        margin-left: 6px;
        color: #7A1B3A;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-weight: 600;
    }

    .logout-link svg {
        width: 16px;
        height: 16px;
        display: block;
        fill: currentColor
    }

    .login-shell {
        min-height: calc(100vh - 32px);
        display: flex;
        align-items: flex-start;
        justify-content: center;
        padding: 56px 12px 20px;
    }

    .login-panel {
        width: min(440px, 100%);
        text-align: center;
        color: #fff;
    }

    .login-logo {
        width: 82px;
        height: 82px;
        margin: 0 auto 8px;
        display: block;
        color: #fff;
        object-fit: contain;
    }

    .login-title {
        font-size: 36px;
        line-height: 1.08;
        margin: 0;
        color: #fff;
        font-weight: 700;
        letter-spacing: .01em;
    }

    .login-title-sub {
        margin-top: 4px;
        font-size: 20px;
        line-height: 1.15;
        color: #fff;
        font-weight: 400;
        letter-spacing: .01em;
    }

    .login-version {
        margin-top: 10px;
        font-size: 11px;
        line-height: 1.35;
        color: #ecd6e2;
        font-weight: 500;
        letter-spacing: .02em;
        text-align: center;
    }

    .login-version span {
        display: block;
    }

    .login-version-date {
        font-size: 10px;
    }

    .login-card {
        margin: 14px auto 0;
        background: #fff;
        border: 1px solid #ead8e3;
        border-radius: 24px;
        padding: 18px;
        box-shadow: 0 16px 38px rgba(24, 0, 13, .22);
        text-align: left;
        color: #251b2f;
        max-width: 360px;
    }

    .login-input-wrap {
        display: flex;
        align-items: center;
        gap: 10px;
        background: #edf2fa;
        border: 1px solid #d4deef;
        border-radius: 999px;
        padding: 0 12px;
        height: 46px;
    }

    .login-input-wrap+.login-input-wrap {
        margin-top: 12px
    }

    .login-input-wrap .icon {
        width: 20px;
        height: 20px;
        color: #7A1B3A;
        flex: 0 0 20px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .login-input-wrap .icon svg {
        width: 20px;
        height: 20px;
        display: block;
        fill: currentColor
    }

    .login-input-wrap input {
        border: none;
        background: transparent;
        padding: 0;
        outline: none;
        height: auto;
        border-radius: 0;
        font-size: 16px;
        line-height: 1.2;
        color: #333;
        flex: 1;
    }

    .login-input-wrap input::placeholder {
        color: #8490a0
    }

    .login-input-wrap .pwd-toggle {
        border: none;
        background: transparent;
        color: #7f8794;
        padding: 0;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .login-input-wrap .pwd-toggle:hover {
        background: #e4ebf7
    }

    .login-input-wrap .pwd-toggle svg {
        width: 20px;
        height: 20px;
        display: block;
        fill: currentColor
    }

    .login-submit-row {
        display: flex;
        justify-content: center;
        margin-top: 16px
    }

    .login-submit {
        min-width: 180px;
        height: 44px;
        border-radius: 999px;
        background: #7A003C;
        border: 1px solid #7A003C;
        color: #fff;
        font-weight: 800;
        font-size: 16px;
        letter-spacing: .02em;
    }

    @media (max-width:640px) {
        .login-shell {
            padding-top: 32px
        }

        .login-title {
            font-size: 30px
        }

        .login-title-sub {
            font-size: 18px
        }

        .login-card {
            padding: 14px;
            max-width: 340px
        }

        .login-input-wrap {
            height: 44px
        }

        .login-input-wrap input {
            font-size: 15px
        }

        .login-submit {
            min-width: 170px;
            height: 42px;
            font-size: 15px
        }
    }

    .badge {
        display: inline-block;
        padding: 2px 8px;
        border-radius: 999px;
        background: #f1ebf5;
        color: #6c5a78;
        font-size: 12px
    }

    .autocomplete-wrap {
        position: relative
    }

    .autocomplete-list {
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 4px);
        z-index: 50;
        max-height: 320px;
        overflow: auto;
        background: #fff;
        border: 1px solid #cabbd4;
        border-radius: 10px;
        box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
        display: none
    }

    .autocomplete-item {
        padding: 8px 10px;
        cursor: pointer;
        color: #251b2f;
        background: #fff
    }

    .autocomplete-item:hover,
    .autocomplete-item.active {
        background: #f3eef7
    }

    .autocomplete-empty {
        padding: 8px 10px;
        color: #7a7381
    }

    .winery-switcher {
        min-width: 360px;
        max-width: 520px;
        position: relative
    }

    .winery-current-btn {
        width: 100%;
        text-align: left;
        background: #f8f4fb;
        border: 1px solid #e4dae9;
        color: #5e2550;
        border-radius: 999px;
        padding: 8px 14px;
        min-height: 38px;
        cursor: pointer;
        font-weight: 700;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .winery-switcher-panel {
        display: none;
        margin-top: 8px;
        padding: 10px;
        border: 1px solid #e4dae9;
        border-radius: 10px;
        background: #fff;
        position: absolute;
        left: 0;
        right: 0;
        z-index: 60
    }

    .winery-switcher.open .winery-switcher-panel {
        display: block
    }

    .winery-switcher-title {
        font-size: 13px;
        color: #7a7381;
        margin-bottom: 6px
    }

    .autocomplete-input {
        padding-right: 36px
    }

    .autocomplete-clear {
        position: absolute;
        right: 8px;
        top: 0;
        bottom: 0;
        margin: auto 0;
        transform: none;
        width: 24px;
        height: 24px;
        padding: 0;
        border: none;
        background: transparent;
        color: #7A1B3A;
        border-radius: 50%;
        display: none;
        cursor: pointer;
        line-height: 1;
    }

    .autocomplete-clear:hover {
        background: #efe7f5
    }

    .autocomplete-clear svg {
        width: 16px;
        height: 16px;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round
    }

    .autocomplete-clear.show {
        display: inline-flex;
        align-items: center;
        justify-content: center
    }

    .clearable-input-wrap {
        position: relative;
        display: block;
        width: 100%;
    }

    .clearable-input-wrap>input,
    .clearable-input-wrap>textarea {
        padding-right: 36px;
    }

    .clearable-input-clear {
        position: absolute;
        right: 8px;
        top: 0;
        bottom: 0;
        margin: auto 0;
        width: 24px;
        height: 24px;
        padding: 0;
        border: none;
        background: transparent;
        color: #7A1B3A;
        border-radius: 50%;
        display: none;
        cursor: pointer;
        line-height: 1;
    }

    .clearable-input-clear.show {
        display: inline-flex;
        align-items: center;
        justify-content: center
    }

    .clearable-input-clear:hover {
        background: #efe7f5
    }

    .clearable-input-clear svg {
        width: 16px;
        height: 16px;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round
    }

    .clearable-input-wrap>textarea+.clearable-input-clear {
        top: 8px;
        bottom: auto;
        margin: 0;
    }

    .admin-list {
        display: flex;
        flex-direction: column;
        gap: 10px
    }

    .admin-list-toolbar {
        display: flex;
        align-items: flex-end;
        gap: 8px;
        flex-wrap: wrap
    }

    .admin-list-search {
        flex: 0 1 480px;
        min-width: 280px
    }

    .admin-list-actions {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        flex: 0 0 auto
    }

    .admin-list-filter-toggle {
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        height: 40px;
        padding: 0 14px;
        border-radius: 999px;
        border: 1px solid #b4839d;
        background: #fff;
        color: #7A1B3A;
        font-weight: 600;
        white-space: nowrap;
        cursor: pointer;
    }

    .admin-list-duplicate-btn {
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        height: 40px;
        padding: 0 14px;
        border-radius: 999px;
        border: 1px solid #b4839d;
        background: #fff;
        color: #7A1B3A;
        font-weight: 600;
        white-space: nowrap;
        cursor: pointer;
    }

    .admin-list-filter-toggle svg {
        width: 16px;
        height: 16px;
        display: block;
        fill: currentColor;
        margin-right: 8px
    }

    .admin-list-duplicate-btn svg {
        width: 16px;
        height: 16px;
        display: block;
        fill: currentColor;
        margin-right: 8px
    }

    .admin-list-duplicate-btn:hover {
        background: #f8f2fa
    }

    .admin-list-filters {
        display: none;
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
        gap: 10px;
        padding: 10px;
        border: 1px solid #e4dae9;
        border-radius: 10px;
        background: #fcfafe;
    }

    .admin-list-filters.open {
        display: grid
    }

    .select-typeahead {
        position: relative
    }

    .select-typeahead-native {
        display: none !important
    }

    .select-typeahead-input {
        width: 100%;
        height: 36px;
        border: 1px solid #cabbd4;
        border-radius: 10px;
        padding: 0 34px 0 10px;
        background: #fff;
        color: #251b2f;
    }

    .select-typeahead-input:focus {
        outline: none;
        border-color: #b4839d;
        box-shadow: 0 0 0 2px rgba(180, 131, 157, .15);
    }

    .select-typeahead-panel {
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 4px);
        z-index: 80;
        max-height: 240px;
        overflow: auto;
        background: #fff;
        border: 1px solid #cabbd4;
        border-radius: 10px;
        box-shadow: 0 10px 24px rgba(0, 0, 0, .09);
        display: none;
    }

    .select-typeahead.open .select-typeahead-panel {
        display: block
    }

    .select-typeahead-item {
        padding: 7px 10px;
        color: #251b2f;
        cursor: pointer;
        font-size: 14px;
    }

    .select-typeahead-item:hover,
    .select-typeahead-item.active {
        background: #f3eef7
    }

    .select-typeahead-empty {
        padding: 7px 10px;
        color: #7a7381;
        font-size: 13px
    }

    .select-typeahead-clear {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        width: 20px;
        height: 20px;
        border: none;
        background: transparent;
        padding: 0;
        margin: 0;
        color: #7A1B3A;
        border-radius: 50%;
        cursor: pointer;
        display: none;
        align-items: center;
        justify-content: center;
    }

    .select-typeahead-clear.show {
        display: inline-flex
    }

    .select-typeahead-clear:hover {
        background: #efe7f5
    }

    .select-typeahead-clear svg {
        width: 14px;
        height: 14px;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round;
    }

    .admin-list-meta {
        display: flex;
        justify-content: flex-start
    }

    .admin-list-count {
        font-size: 13px;
        color: #6b6074
    }

    .admin-list-count .count-current {
        font-weight: 700;
        color: #1f8c4b
    }

    .admin-list-count .count-total {
        font-weight: 700;
        color: #2d8cff
    }

    .admin-list-search-input {
        border-radius: 999px;
        height: 40px;
        width: 100%;
        padding-left: 12px;
        border-color: #b4839d;
    }

    .admin-list-create-btn {
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        height: 40px;
        padding: 0 16px;
        border-radius: 999px;
        border: 1px solid #8b7442;
        background: #8b7442;
        color: #fff;
        font-weight: 700;
        white-space: nowrap;
    }

    .admin-list-create-btn .icon {
        display: inline-flex;
        width: 16px;
        height: 16px;
        margin-right: 8px
    }

    .admin-list-create-btn .icon svg {
        width: 16px;
        height: 16px;
        display: block;
        fill: currentColor
    }

    .admin-list-table th[data-list-sort] {
        cursor: pointer;
        user-select: none;
        white-space: nowrap
    }

    .admin-list-table th[data-list-sort] .sort-label {
        display: inline-flex;
        align-items: center;
        gap: 6px
    }

    .admin-list-table th[data-list-sort] .sort-caret {
        font-size: 11px;
        color: #9f8cab
    }

    .admin-list-table th.sorted-asc .sort-caret,
    .admin-list-table th.sorted-desc .sort-caret {
        color: #7A1B3A
    }

    .admin-list-table th.sorted-asc,
    .admin-list-table th.sorted-desc {
        background: #f8eef3;
        color: #7A1B3A;
        box-shadow: inset 0 -2px 0 #7A1B3A
    }

    .access-users-table td:last-child {
        text-align: center
    }

    .admin-list-table th.drag-over {
        outline: 2px dashed #c6b5d1;
        outline-offset: -2px
    }

    .admin-list-table th.dragging {
        opacity: .45
    }

    .admin-list-table tr.dup-exact {
        background: #fff3f6
    }

    .admin-list-table tr.dup-similar {
        background: #fffaf0
    }

    .admin-list-dup-result {
        display: none;
        margin-top: 8px;
        padding: 10px 12px;
        border: 1px solid #e5d7c0;
        background: #fff9ec;
        border-radius: 10px;
        color: #5f4a25;
        font-size: 13px;
        line-height: 1.45;
        white-space: normal;
    }

    .admin-list-dup-result.show {
        display: block
    }

    .wine-search-wrap {
        position: relative
    }

    .wine-search-wrap .autocomplete-clear {
        top: auto;
        bottom: 8px;
        margin: 0;
        transform: none;
    }

    .wine-no-results {
        display: none;
        margin-top: 8px;
        color: #7a7381;
        font-size: 13px
    }

    .list-action-row {
        display: flex;
        align-items: center;
        gap: 8px
    }

    .icon-btn {
        width: 30px;
        height: 30px;
        border-radius: 8px;
        border: 1px solid #d5c7de;
        background: #fff;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #7A1B3A;
        text-decoration: none
    }

    .icon-btn svg {
        width: 17px;
        height: 17px;
        display: block;
        fill: currentColor
    }

    .icon-btn:hover {
        background: #f7f1fa
    }

    .icon-btn.danger {
        color: #9b2c2c;
        border-color: #e1b5b5
    }

    .icon-btn.danger:hover {
        background: #fff3f3
    }

    .icon-btn.eye-on {
        color: #1f8c4b;
        border-color: #a9d7bc
    }

    .icon-btn.eye-on:hover {
        background: #eef9f2
    }

    .icon-btn.eye-off {
        color: #7f8592;
        border-color: #d2d6de
    }

    .icon-btn.eye-off:hover {
        background: #f2f4f7
    }

    .icon-btn.info {
        color: #2b5a8a;
        border-color: #b9cbe0
    }

    .icon-btn.info:hover {
        background: #eef4fb
    }

    .sr-only {
        position: absolute !important;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .subscriber-uid {
        display: inline-block;
        max-width: 240px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 12px;
        color: #5a4968;
        background: #f7f3fb;
        border: 1px solid #d9cde4;
        border-radius: 8px;
        padding: 4px 8px;
        font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    }

    .subscriber-routes-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
        min-width: 360px;
    }

    .subscriber-route-item {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        padding: 6px 8px;
        border: 1px solid #e4dae9;
        border-radius: 10px;
        background: #fcfafe;
    }

    .subscriber-route-name {
        display: inline-flex;
        align-items: center;
        max-width: 220px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        padding: 4px 10px;
        border: 1px solid #cfc6da;
        border-radius: 999px;
        background: #f7f3fb;
        color: #4f4560;
        font-size: 12px;
        line-height: 1.2;
        font-weight: 600;
    }

    .subscriber-route-edit-form {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-left: auto;
    }

    .subscriber-discount-input {
        width: 94px;
        min-width: 94px;
    }

    .subscriber-mini-btn {
        padding: 7px 12px;
        line-height: 1.1;
    }

    .subscriber-route-remove-form {
        display: inline-flex;
        align-items: center;
    }

    .subscriber-remove-btn {
        width: 30px;
        height: 30px;
        min-width: 30px;
        padding: 0;
        border-radius: 999px;
        border: 1px solid #d7c9df;
        background: #fff;
        color: #8b2a58;
        font-size: 18px;
        line-height: 1;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .subscriber-remove-btn:hover {
        background: #f9f2f7
    }

    .subscriber-add-route-form {
        display: grid;
        grid-template-columns: minmax(170px, 1fr) 100px auto;
        gap: 8px;
        align-items: center;
        min-width: 360px;
    }

    .subscriber-add-route-form select {
        min-width: 0
    }

    .subscriber-actions-cell,
    .subscriber-routes-cell {
        vertical-align: top;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    @media (max-width:1280px) {
        .subscriber-routes-list {
            min-width: 300px
        }

        .subscriber-route-name {
            max-width: 180px
        }

        .subscriber-add-route-form {
            min-width: 300px;
            grid-template-columns: 1fr 90px auto
        }

        .subscriber-uid {
            max-width: 190px
        }
    }

    .field-link-row {
        position: relative;
    }

    .field-link-row input {
        width: 100%;
        padding-right: 70px;
    }

    .field-link-actions {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2px;
    }

    .field-link-test {
        width: 28px;
        height: 28px;
        border-radius: 999px;
        border: 0;
        background: #f1e9f6;
        padding: 0;
        display: none;
        align-items: center;
        justify-content: center;
        color: #7A1B3A;
        text-decoration: none;
        cursor: pointer;
    }

    .field-link-clear {
        width: 24px;
        height: 24px;
        border-radius: 50%;
        border: 0;
        background: transparent;
        padding: 0;
        display: none;
        align-items: center;
        justify-content: center;
        color: #7A1B3A;
        cursor: pointer;
    }

    .field-link-test.show,
    .field-link-clear.show {
        display: inline-flex
    }

    .field-link-test:hover {
        background: #e6d8ef
    }

    .field-link-clear:hover {
        background: #efe7f5
    }

    .field-link-test svg,
    .field-link-clear svg {
        width: 16px;
        height: 16px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round
    }

    .field-link-row.field-link-invalid input {
        border-color: #c92f63 !important;
        box-shadow: 0 0 0 3px rgba(201, 47, 99, .12) !important;
    }

    .field-link-error-text {
        margin-top: 5px;
        color: #9d174d;
        font-size: 12px;
        font-weight: 700;
    }

    .winery-icon-chips {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .winery-icon-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        border: 1px solid #d7dbe4;
        background: #f3f4f7;
        color: #261f2c;
        border-radius: 999px;
        height: 34px;
        padding: 0 12px;
        font-size: 13px;
        font-weight: 500;
    }

    .winery-icon-chip-icon {
        width: 15px;
        height: 15px;
        object-fit: contain;
        opacity: .9;
        flex: 0 0 auto;
    }

    .winery-icon-chip.active {
        background: #ece4f3;
        border-color: #7A1B3A;
        color: #7A1B3A;
    }

    .coord-modal {
        position: fixed;
        inset: 0;
        background: rgba(23, 16, 29, .46);
        display: none;
        align-items: center;
        justify-content: center;
        z-index: 500;
        padding: 18px;
    }

    .coord-modal.show {
        display: flex
    }

    .coord-modal-card {
        width: min(980px, 96vw);
        max-height: 92vh;
        overflow: auto;
        background: #fff;
        border: 1px solid #dbcde6;
        border-radius: 14px;
        box-shadow: 0 20px 45px rgba(0, 0, 0, .2);
        padding: 14px;
    }

    .coord-modal-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 10px;
    }

    .coord-modal-close {
        width: 42px !important;
        height: 42px;
        min-width: 42px;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        background: #8a173f !important;
        color: #fff !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .coord-modal-close svg {
        width: 17px;
        height: 17px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.4;
        stroke-linecap: round;
    }

    .coord-map-wrap {
        height: 430px;
        border: 1px solid #ddcfE7;
        border-radius: 10px;
        overflow: hidden
    }

    #coord_picker_map {
        height: 100%;
        width: 100%
    }

    .coord-toolbar {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 8px;
        margin-bottom: 10px
    }

    .coord-toolbar .btn-light {
        white-space: nowrap
    }

    .coord-selected {
        margin-top: 8px;
        font-size: 13px;
        color: #6f5f79;
    }

    .coord-modal-actions {
        display: flex;
        justify-content: flex-end;
        gap: 8px;
        margin-top: 12px;
    }

    .acl-picker-modal .coord-modal-card {
        width: min(1120px, 96vw);
        min-height: 420px;
        max-height: 86vh;
        overflow: visible;
    }

    .acl-picker-modal .autocomplete-wrap {
        position: relative;
        margin-top: 4px;
    }

    .acl-picker-modal .autocomplete-list {
        max-height: 52vh;
        z-index: 900;
    }

    .image-manager {
        margin-top: 16px;
        border: 1px solid #e4dae9;
        border-radius: 12px;
        background: #fcfafe;
        padding: 12px;
    }

    .image-manager-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 10px;
        flex-wrap: wrap;
    }

    .image-manager-title {
        margin: 0;
        font-size: 18px;
        color: #251b2f;
    }

    .image-manager-tools {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .image-manager-tools input[type="file"] {
        display: none;
    }

    .image-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap: 10px;
    }

    .image-card {
        background: #fff;
        border: 1px solid #decfe8;
        border-radius: 12px;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        min-height: 170px;
    }

    .image-preview {
        width: 100%;
        aspect-ratio: 16/10;
        object-fit: cover;
        background: #f0e8f6;
        border-bottom: 1px solid #eee;
    }

    .image-meta {
        padding: 8px 10px 10px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        color: #6f5d7b;
        font-size: 12px;
    }

    .image-meta .path {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        flex: 1 1 auto;
    }

    .image-actions {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-shrink: 0;
    }

    .image-handle {
        cursor: grab;
        color: #8b7a97;
        font-size: 18px;
        line-height: 1;
        letter-spacing: 0;
        user-select: none;
        padding: 2px 0;
    }

    .image-handle:active {
        cursor: grabbing
    }

    .image-empty {
        padding: 14px;
        border: 1px dashed #d3c6de;
        border-radius: 10px;
        color: #7a7381;
        font-size: 13px;
        text-align: center;
        background: #fff;
    }

    .image-manager-status {
        margin-top: 8px;
        font-size: 13px;
        color: #6e6079;
        min-height: 18px;
    }

    .image-manager-status.err {
        color: #9e1b1b
    }

    .image-manager-status.ok {
        color: #1f8c4b
    }

    .form-switch {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        min-height: 36px;
        padding-top: 2px;
    }

    .form-switch input[type="checkbox"] {
        position: absolute;
        opacity: 0;
        width: 1px;
        height: 1px;
        pointer-events: none;
    }

    .form-switch-track {
        position: relative;
        width: 46px;
        height: 26px;
        border-radius: 999px;
        background: #d5d9e2;
        border: 1px solid #c4cada;
        transition: all .16s ease;
        cursor: pointer;
        display: inline-block;
    }

    .form-switch-thumb {
        position: absolute;
        top: 2px;
        left: 2px;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
        transition: transform .16s ease;
    }

    .form-switch input[type="checkbox"]:checked+.form-switch-track {
        background: #7A1B3A;
        border-color: #7A1B3A;
    }

    .form-switch input[type="checkbox"]:checked+.form-switch-track .form-switch-thumb {
        transform: translateX(20px);
    }

    .row-preview-anchor {
        position: relative;
        display: inline-flex;
        vertical-align: middle;
        margin-right: 6px
    }

    .row-preview-pop {
        position: absolute;
        top: calc(100% + 6px);
        right: 0;
        min-width: 280px;
        max-width: 460px;
        max-height: 320px;
        overflow: auto;
        background: #fff;
        border: 1px solid #d8cde0;
        border-radius: 12px;
        box-shadow: 0 12px 28px rgba(0, 0, 0, .14);
        padding: 10px 12px;
        z-index: 120;
        display: none;
    }

    .row-preview-pop.show {
        display: block
    }

    .row-preview-item {
        display: grid;
        grid-template-columns: 130px 1fr;
        gap: 8px;
        padding: 4px 0
    }

    .row-preview-key {
        color: #7a7381;
        font-size: 12px
    }

    .row-preview-val {
        color: #251b2f;
        font-size: 13px;
        word-break: break-word
    }

    .layout {
        display: grid;
        grid-template-columns: 260px 1fr;
        gap: 14px;
        align-items: start
    }

    .sidebar {
        position: sticky;
        top: 16px;
        max-height: calc(100vh - 48px);
        overflow: auto;
        scrollbar-width: thin;
        padding-bottom: 22px;
        scroll-padding-bottom: 22px;
        display: flex;
        flex-direction: column;
    }

    .sidebar-head {
        position: sticky;
        top: 0;
        z-index: 12;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        min-height: 42px;
        margin: -4px -4px 6px;
        padding: 4px;
        background: linear-gradient(to bottom, #fff 72%, rgba(255, 255, 255, 0));
    }

    .sidebar-toggle {
        flex: 0 0 36px;
        min-width: 36px;
        max-width: 36px;
        width: 36px;
        min-height: 36px;
        max-height: 36px;
        height: 36px;
        border: 1px solid #d7bfd0;
        border-radius: 50%;
        background: #fff;
        color: #7A1B3A;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        line-height: 1;
        box-shadow: 0 4px 12px rgba(65, 35, 59, .14);
        transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
    }

    .sidebar-toggle:hover {
        background: #f8eef3;
        border-color: #b987a3;
        box-shadow: 0 5px 15px rgba(65, 35, 59, .2);
    }

    .sidebar-toggle svg {
        flex: 0 0 20px;
        width: 20px;
        height: 20px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 2.4;
        stroke-linecap: round;
        stroke-linejoin: round;
        transform: rotate(0deg);
        transition: transform .16s ease;
    }

    .sidebar-group {
        margin: 10px 0
    }

    .sidebar-version {
        margin-top: auto;
        padding-top: 12px;
        border-top: 1px solid #eadff0;
        font-size: 11px;
        line-height: 1.35;
        color: #8a8093;
        font-weight: 400;
        letter-spacing: .01em;
        text-align: center;
    }

    .sidebar-version span {
        display: block;
    }

    .sidebar-version-date {
        font-size: 9px;
    }

    .acl-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px
    }

    .acl-box {
        border: 1px solid #e4dae9;
        border-radius: 12px;
        background: #fcfafc;
        padding: 10px;
        max-height: 230px;
        overflow: auto;
    }

    .acl-box .item {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 4px 0
    }

    .acl-box .item label {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        font-size: 14px;
        color: #3f3449;
        font-weight: 500
    }

    .acl-user-head {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 12px;
        align-items: end;
        margin-bottom: 12px
    }

    .acl-hint {
        font-size: 12px;
        color: #7a7381
    }

    .acl-search {
        position: relative
    }

    .acl-search input {
        padding-right: 34px
    }

    .acl-search .autocomplete-clear {
        right: 8px;
        top: 0;
        bottom: 0;
        margin: auto 0;
        transform: none;
    }

    .acl-users-panel {
        border: 1px solid #e4dae9;
        border-radius: 12px;
        background: #fcfafc;
        padding: 10px;
        margin-bottom: 12px
    }

    .acl-users-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 8px
    }

    .acl-users-count {
        font-size: 12px;
        color: #7a7381
    }

    .acl-users-list {
        max-height: 240px;
        overflow: auto;
        display: grid;
        gap: 6px
    }

    .acl-user-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 8px 10px;
        border: 1px solid #eadff0;
        border-radius: 10px;
        background: #fff;
        color: #3f3449;
        text-decoration: none;
    }

    .acl-user-row.active {
        border-color: #7A1B3A;
        background: #fff6fb
    }

    .acl-user-main {
        min-width: 0
    }

    .acl-user-name {
        font-size: 14px;
        font-weight: 600;
        color: #3f3449;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .acl-user-meta {
        font-size: 12px;
        color: #7a7381;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .acl-user-tags {
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
        justify-content: flex-end
    }

    .acl-tag {
        font-size: 11px;
        padding: 2px 8px;
        border-radius: 999px;
        border: 1px solid #e4dae9;
        color: #7a7381;
        background: #fff
    }

    .acl-tag.super {
        border-color: #7A1B3A;
        color: #7A1B3A;
        background: #fff6fb
    }

    .acl-tag.admin {
        border-color: #b99d3f;
        color: #7d6823;
        background: #fffbef
    }

    .acl-tag.off {
        border-color: #d9c6d1;
        color: #99808f;
        background: #faf7f9
    }

    .acl-tree-group {
        padding: 6px 0;
        border-bottom: 1px solid #efe8f3
    }

    .acl-tree-group:last-child {
        border-bottom: none
    }

    .acl-tree-head {
        display: flex;
        align-items: center
    }

    .acl-tree-head label {
        display: grid;
        grid-template-columns: 20px auto;
        align-items: start;
        gap: 10px;
        margin: 0;
        font-weight: 700;
        color: #4f2a45;
        font-size: 15px;
        line-height: 1.25;
    }

    .acl-tree-pages {
        padding-left: 28px;
        display: grid;
        gap: 4px;
        margin-top: 4px
    }

    .acl-tree-pages .item {
        display: flex;
        align-items: flex-start
    }

    .acl-tree-pages .item label {
        display: grid;
        grid-template-columns: 20px auto;
        align-items: start;
        gap: 10px;
        margin: 0;
        font-weight: 500;
        font-size: 14px;
        color: #5c5165;
        line-height: 1.25;
    }

    .acl-tree-pages .item input[type=checkbox] {
        margin-top: 2px
    }

    .acl-rights-row {
        display: grid;
        grid-template-columns: repeat(5, minmax(145px, max-content));
        align-items: center;
        column-gap: 16px;
        row-gap: 6px;
        overflow-x: auto;
        padding: 2px 0 6px;
    }

    .acl-inline-check {
        display: inline-flex !important;
        align-items: center;
        gap: 8px;
        margin: 0 !important;
        white-space: nowrap;
        font-size: 14px;
        font-weight: 600;
        color: #4f2a45;
        line-height: 1.2;
    }

    .acl-inline-check input[type=checkbox] {
        margin: 0;
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
        transform: translateY(-1px);
    }

    .acl-inline-check span {
        display: inline-block;
        transform: translateY(-1px);
    }

    .acl-scope-box {
        border: 1px solid #e4dae9;
        border-radius: 12px;
        background: #fcfafc;
        padding: 10px;
    }

    .acl-scope-top {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: nowrap;
        overflow: auto;
        padding-bottom: 8px;
    }

    .acl-scope-actions {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex-wrap: nowrap;
    }

    .acl-scope-actions .btn-light {
        white-space: nowrap
    }

    .acl-selected-block {
        border-top: 1px solid #efe8f3;
        padding-top: 10px;
        margin-top: 2px;
    }

    .acl-selected-title {
        font-size: 12px;
        color: #7a7381;
        margin: 0 0 6px;
        font-weight: 600;
    }

    .acl-chip-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        min-height: 28px
    }

    .acl-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 5px 8px;
        border-radius: 999px;
        border: 1px solid #e2d6e8;
        background: #fff;
        color: #4f2a45;
        font-size: 12px;
        max-width: 100%;
    }

    .acl-chip .label {
        max-width: 420px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .acl-chip .remove {
        border: none;
        background: transparent;
        color: #8c7996;
        cursor: pointer;
        font-size: 16px;
        line-height: 1;
        padding: 0 2px;
    }

    .acl-chip .remove:hover {
        color: #7A1B3A
    }

    .sidebar-group-toggle {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 8px;
        justify-content: space-between;
        font-weight: 700;
        color: #4f2a45;
        margin: 0 0 8px;
        border: 0;
        background: transparent;
        padding: 0;
        border-radius: 0;
        cursor: pointer;
        text-align: left;
    }

    .sidebar-group-title-left {
        display: flex;
        align-items: center;
        gap: 8px
    }

    .sidebar-group-chevron {
        color: #8f7aa0;
        font-size: 12px;
        transition: transform .16s ease;
    }

    .sidebar-group.collapsed .sidebar-group-chevron {
        transform: rotate(-90deg)
    }

    .sidebar-group.collapsed .sidebar-links {
        display: none
    }

    .sidebar-links {
        display: flex;
        flex-direction: column;
        gap: 6px
    }

    .sidebar-link {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 10px;
        border-radius: 10px;
        border: 1px solid transparent;
        color: #4a3c52;
        text-decoration: none
    }

    .sidebar-link:hover {
        background: #f7f3fa;
        border-color: #e4dae9
    }

    .sidebar-link.active {
        background: #7A1B3A;
        color: #fff;
        border-color: #7A1B3A
    }

    .sidebar-link.disabled {
        opacity: .55;
        cursor: not-allowed
    }

    .sidebar-icon {
        width: 20px;
        display: inline-flex;
        justify-content: center
    }

    .sidebar-label {
        white-space: nowrap
    }

    body.sidebar-collapsed .layout {
        grid-template-columns: 78px 1fr
    }

    body.sidebar-collapsed .sidebar-group-title-left .sidebar-label {
        display: none
    }

    body.sidebar-collapsed .sidebar-group-chevron {
        display: none
    }

    body.sidebar-collapsed .sidebar-link {
        justify-content: center;
        padding: 8px
    }

    body.sidebar-collapsed .sidebar-link .sidebar-label {
        display: none
    }

    body.sidebar-collapsed .sidebar-head {
        justify-content: center;
        margin-left: 0;
        margin-right: 0;
    }

    body.sidebar-collapsed .sidebar {
        padding-left: 10px;
        padding-right: 10px;
    }

    body.sidebar-collapsed .sidebar-toggle svg {
        transform: rotate(180deg)
    }

    body.sidebar-collapsed .sidebar-version-date {
        display: none;
    }

    .open-editor-wrap {
        display: flex;
        flex-direction: column;
        gap: 12px
    }

    .open-group {
        border: 1px solid #e4dae9;
        border-radius: 12px;
        background: #fcfafe;
        padding: 12px
    }

    .open-group-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        flex-wrap: wrap;
        margin-bottom: 8px
    }

    .open-group-title {
        font-weight: 700;
        color: #5e2550
    }

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

    .open-period {
        border: 1px solid #dfd1e8;
        border-radius: 10px;
        background: #fff;
        padding: 10px;
        margin-bottom: 10px
    }

    .open-period-summary {
        padding: 8px 10px;
        border: 1px solid #eee3f2;
        border-radius: 8px;
        background: #faf6fc;
        color: #554a5d;
        font-size: 13px;
        line-height: 1.35
    }

    .open-period-editor {
        margin-top: 8px
    }

    .open-period.compact .open-period-summary {
        display: block
    }

    .open-period.compact .open-period-editor {
        display: none
    }

    .open-single-day-card {
        border: 1px solid #e6daec;
        border-radius: 10px;
        background: #fcf8ff;
        padding: 10px 12px;
        margin-bottom: 10px
    }

    .open-single-day-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px
    }

    .open-single-day-title {
        font-size: 14px;
        font-weight: 700;
        color: #5e2550
    }

    .open-single-day-note {
        font-size: 12px;
        color: #756680;
        margin-top: 6px;
        line-height: 1.35
    }

    .open-single-day-form-switch {
        display: inline-flex;
        align-items: center;
        min-height: auto;
        padding-top: 0;
        gap: 0;
    }

    .open-week-row {
        border: 1px dashed #dfd1e8;
        border-radius: 8px;
        padding: 8px;
        margin-bottom: 8px;
        background: #fdfcff
    }

    .open-week-row:last-child,
    .open-period:last-child,
    .open-block:last-child {
        margin-bottom: 0
    }

    .open-block {
        display: grid;
        grid-template-columns: 120px 120px 1fr auto;
        gap: 8px;
        align-items: end;
        margin-bottom: 8px
    }

    .open-row {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr auto;
        gap: 8px;
        align-items: end
    }

    .open-small-btn {
        padding: 7px 10px;
        font-size: 13px;
        border-radius: 999px
    }

    .open-ghost-btn {
        padding: 7px 10px;
        font-size: 13px;
        border-radius: 999px;
        background: #fff;
        color: #7A1B3A;
        border: 1px solid #c4b3cd
    }

    .open-danger-btn {
        padding: 7px 10px;
        font-size: 13px;
        border-radius: 999px;
        background: #fff;
        color: #a93030;
        border: 1px solid #d9a7a7
    }

    .open-json-preview {
        display: none
    }

    .import-wizard {
        display: flex;
        flex-direction: column;
        gap: 14px
    }

    .import-wizard-steps {
        display: flex;
        gap: 8px;
        flex-wrap: wrap
    }

    .import-wizard-steps .step {
        padding: 7px 12px;
        border-radius: 999px;
        border: 1px solid #e0d4e7;
        font-size: 13px;
        font-weight: 600;
        color: #756680;
        background: #fff
    }

    .import-wizard-steps .step.active {
        background: #7A1B3A;
        color: #fff;
        border-color: #7A1B3A
    }

    .import-wizard-steps .step.done {
        background: #f5ecf8;
        color: #5f2d53
    }

    .import-upload-row {
        display: flex;
        gap: 10px;
        align-items: center;
        flex-wrap: wrap
    }

    .import-mapping-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(220px, 1fr));
        gap: 12px
    }

    .import-mapping-grid label {
        display: block;
        margin-bottom: 6px;
        font-size: 13px;
        color: #72657a
    }

    .import-mapping-grid select {
        width: 100%
    }

    .import-step-actions {
        display: flex;
        gap: 8px;
        align-items: center;
        justify-content: flex-end;
        margin-top: 12px;
        flex-wrap: wrap
    }

    .import-analysis-summary,
    .import-final-result {
        margin-top: 10px;
        padding: 10px;
        border-radius: 10px;
        border: 1px solid #e2d6e8;
        background: #fbf7fd
    }

    .import-review-head {
        display: flex;
        gap: 12px;
        justify-content: space-between;
        align-items: flex-end;
        flex-wrap: wrap
    }

    .import-review-filters {
        display: flex;
        gap: 8px;
        align-items: center;
        flex-wrap: wrap
    }

    .import-review-filters select,
    .import-review-filters input {
        min-width: 180px
    }

    .import-batch-counters {
        margin: 8px 0 12px 0;
        padding: 9px 10px;
        border-radius: 10px;
        border: 1px solid #e2d6e8;
        background: #fff;
        font-size: 14px;
        color: #584e5f
    }

    .import-review-list {
        display: flex;
        flex-direction: column;
        gap: 10px
    }

    .import-row-card {
        border: 1px solid #e2d6e8;
        border-radius: 12px;
        padding: 12px;
        background: #fff
    }

    .import-row-head {
        display: flex;
        justify-content: space-between;
        gap: 8px;
        align-items: flex-start;
        flex-wrap: wrap
    }

    .import-imported-row {
        margin-top: 6px;
        display: grid;
        grid-template-columns: repeat(2, minmax(220px, 1fr));
        gap: 6px 10px;
        padding: 8px;
        border-radius: 8px;
        background: #faf6fc;
        border: 1px solid #eadff0
    }

    .import-candidates {
        margin-top: 10px;
        display: flex;
        flex-direction: column;
        gap: 8px
    }

    .import-candidate {
        border: 1px solid #ecdff2;
        border-radius: 10px;
        padding: 8px;
        background: #fcf9fe
    }

    .cand-select {
        display: block
    }

    .import-compare-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 13px
    }

    .import-compare-table th,
    .import-compare-table td {
        padding: 6px;
        border-bottom: 1px solid #efe4f3;
        text-align: left;
        vertical-align: top
    }

    .import-compare-table tr.changed td {
        background: #fff3f4
    }

    .import-row-actions {
        display: flex;
        gap: 8px;
        align-items: center;
        flex-wrap: wrap;
        margin-top: 10px
    }

    .import-wizard-msg {
        border-radius: 10px;
        padding: 10px 12px;
        font-size: 14px
    }

    .import-wizard-msg.ok {
        background: #e8f7ed;
        border: 1px solid #b7e2c2;
        color: #1f6c36
    }

    .import-wizard-msg.err {
        background: #fff1f1;
        border: 1px solid #efc0c0;
        color: #8e2d2d
    }

    .import-wizard-msg.info {
        background: #f7f3fa;
        border: 1px solid #e2d6e8;
        color: #5a4f62
    }

    @media (max-width:980px) {
        .layout {
            grid-template-columns: 1fr
        }

        .sidebar {
            position: static;
            max-height: none;
            overflow: visible;
        }

        .sidebar-head {
            position: static;
            margin: 0 0 10px;
            padding: 0;
            min-height: 36px;
            background: transparent;
        }

        .winery-switcher {
            min-width: 280px;
            max-width: 100%
        }

        body.sidebar-collapsed .layout {
            grid-template-columns: 1fr
        }

        body.sidebar-collapsed .sidebar-group-title-left .sidebar-label {
            display: inline
        }

        body.sidebar-collapsed .sidebar-link .sidebar-label {
            display: inline
        }

        body.sidebar-collapsed .sidebar-link {
            justify-content: flex-start;
            padding: 8px 10px
        }

        body.sidebar-collapsed .sidebar-head {
            justify-content: space-between
        }

        .open-row {
            grid-template-columns: 1fr
        }

        .open-block {
            grid-template-columns: 1fr 1fr 1fr auto
        }

        .sidebar-version {
            margin-top: 10px
        }

        .acl-grid {
            grid-template-columns: 1fr
        }

        .acl-user-head {
            grid-template-columns: 1fr
        }

        .import-mapping-grid {
            grid-template-columns: 1fr
        }

        .import-imported-row {
            grid-template-columns: 1fr
        }

        .import-review-filters select,
        .import-review-filters input {
            min-width: 0;
            width: 100%
        }
    }
