/* ==========================================================================
   Control Center (admin+)
   Builds on the .ops-* primitives from dashboard.css.
   ========================================================================== */

.cc {
    --cc-ok: var(--success);
    --cc-warn: var(--warning);
    --cc-fail: var(--danger);
    --cc-info: var(--info);
}

/* hero / page head */

.cc-hero__side {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
}

.cc-pagehead {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 32px;
    padding: 18px 24px;
    border: 1px solid var(--border);
    background:
        linear-gradient(100deg, rgba(245, 166, 35, 0.1), transparent 55%),
        var(--panel);
    box-shadow: inset 3px 0 0 var(--accent);
}

.cc-pagehead__title {
    margin: 8px 0 0;
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.2vw, 1.9rem);
    line-height: 1.05;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.cc-pagehead .ops-hero__text {
    margin-top: 6px;
}

/* tabs */

.cc-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--border);
    background: var(--panel);
}

.cc-tabs__spacer {
    flex: 1 1 auto;
}

.cc-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 11px;
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.15s ease, color 0.15s ease;
}

.cc-tab .ui-icon {
    width: 16px;
    height: 16px;
}

.cc-tab:hover {
    background: var(--panel-2);
    color: var(--text);
}

.cc-tab.is-active {
    background: var(--accent-soft);
    color: var(--accent);
    box-shadow: inset 0 -2px 0 var(--accent);
}

.cc-tab--ghost {
    color: var(--text-muted);
}

.cc-tab--ghost span {
    display: none;
}

.cc .ops-kpis {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.cc .ops-kpi__value {
    font-size: 1.6rem;
    white-space: nowrap;
}

/* switches */

.cc-switches {
    display: flex;
    gap: 8px;
}

.cc-switch {
    margin: 0;
}

.cc-switch__btn {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 100%;
    padding: 10px 14px;
    border: 1px solid var(--border);
    background: rgba(9, 11, 15, 0.55);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.cc-switch__btn:hover {
    border-color: rgba(245, 166, 35, 0.45);
}

.cc-switch__track {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 18px;
    border: 1px solid var(--border-strong);
    background: var(--panel-3);
}

.cc-switch__track span {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: var(--text-muted);
    transition: transform 0.15s ease, background 0.15s ease;
}

.cc-switch.is-on .cc-switch__track {
    border-color: rgba(61, 220, 132, 0.5);
    background: rgba(61, 220, 132, 0.12);
}

.cc-switch.is-on .cc-switch__track span {
    background: var(--success);
    transform: translateX(16px);
}

.cc-switch.is-danger .cc-switch__track {
    border-color: rgba(255, 93, 93, 0.5);
    background: rgba(255, 93, 93, 0.12);
}

.cc-switch.is-danger .cc-switch__track span {
    background: var(--danger);
}

.cc-switch__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cc-switch__text strong {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-switch__text span {
    color: var(--text-muted);
    font-size: 0.78rem;
}

/* status dots and chips */

.cc-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    background: var(--text-muted);
    vertical-align: middle;
}

.cc-dot--ok { background: var(--success); box-shadow: 0 0 8px rgba(61, 220, 132, 0.5); }
.cc-dot--warn { background: var(--warning); box-shadow: 0 0 8px rgba(245, 166, 35, 0.5); }
.cc-dot--fail { background: var(--danger); box-shadow: 0 0 8px rgba(255, 93, 93, 0.55); }
.cc-dot--info { background: var(--info); }
.cc-dot--muted { background: var(--panel-3); }

.cc-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 22px;
    padding: 0 8px;
    border: 1px solid var(--border-strong);
    background: rgba(231, 235, 241, 0.03);
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    white-space: nowrap;
}

.cc-chip--ok { border-color: rgba(61, 220, 132, 0.4); background: rgba(61, 220, 132, 0.08); color: var(--success); }
.cc-chip--warn { border-color: rgba(245, 166, 35, 0.45); background: var(--accent-soft); color: var(--accent); }
.cc-chip--fail { border-color: rgba(255, 93, 93, 0.45); background: rgba(255, 93, 93, 0.08); color: var(--danger); }
.cc-chip--info { border-color: rgba(94, 152, 217, 0.45); background: rgba(94, 152, 217, 0.08); color: var(--info); }
.cc-chip--action-user_ban { border-color: rgba(255, 93, 93, 0.45); color: var(--danger); }
.cc-chip--action-user_unban { border-color: rgba(61, 220, 132, 0.4); color: var(--success); }
.cc-chip--action-user_role { border-color: rgba(176, 124, 255, 0.45); color: #b07cff; }
.cc-chip--action-catalog_approve { border-color: rgba(61, 220, 132, 0.4); color: var(--success); }
.cc-chip--action-site_maintenance,
.cc-chip--action-site_registration,
.cc-chip--action-module_toggle { border-color: rgba(245, 166, 35, 0.45); color: var(--accent); }

.cc-chip--link:hover {
    border-color: rgba(245, 166, 35, 0.45);
    color: var(--text);
}

.cc-chip--link.is-active {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

.cc-filters-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cc-filters-chips .cc-chip {
    min-height: 28px;
    padding: 0 12px;
}

/* role label */

.cc-role {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-soft);
    font-size: 0.85rem;
    white-space: nowrap;
}

.cc-role .ops-role__swatch {
    width: 8px;
    height: 8px;
}

/* toolbar */

.cc-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    background: var(--panel);
}

.cc-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 150px;
    margin: 0;
}

.cc-field > span {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-field--grow {
    flex: 1 1 260px;
}

.cc-field .form-control,
.cc-field select {
    min-height: 38px;
    font-size: 0.88rem;
}

.cc-toolbar__actions {
    display: flex;
    gap: 8px;
}

.cc-toolbar__actions .btn,
.cc-row-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.cc-toolbar__actions .btn {
    min-height: 38px;
}

.cc-toolbar__actions .ui-icon {
    width: 14px;
    height: 14px;
}

/* tables */

.cc-table td,
.cc-table th {
    padding: 10px 16px;
    vertical-align: middle;
}

.cc-table tbody tr.is-banned {
    background: rgba(255, 93, 93, 0.04);
    box-shadow: inset 2px 0 0 var(--danger);
}

.cc-num {
    font-family: var(--font-mono);
    text-align: right !important;
    white-space: nowrap;
}

.cc-mono {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    white-space: nowrap;
}

.cc-summary {
    max-width: 420px;
    color: var(--text-soft);
    font-size: 0.85rem;
}

.cc-actions-col {
    text-align: right !important;
}

.cc-row-actions {
    display: inline-flex;
    gap: 6px;
}

.cc-user {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.cc-user:hover .cc-user__name {
    color: var(--accent);
}

.cc-user__avatar {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--panel-2);
}

.cc-user__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-user__avatar span {
    color: var(--accent);
    font-family: var(--font-display);
    font-weight: 800;
}

.cc-user__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cc-user__name {
    font-weight: 600;
    font-size: 0.9rem;
    white-space: nowrap;
}

.cc-user__sub {
    white-space: nowrap;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.7rem;
}

.cc-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.cc-pager__info {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

/* charts */

.cc-charts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cc-chart {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: end;
    gap: 4px;
    height: 170px;
    padding: 16px 18px 12px;
}

.cc-chart__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    height: 100%;
    min-width: 0;
}

.cc-chart__bar {
    display: block;
    width: 100%;
    min-height: 2px;
    max-height: calc(100% - 34px);
    background: linear-gradient(180deg, var(--accent), rgba(245, 166, 35, 0.35));
    transition: filter 0.15s ease;
}

.cc-chart--alt .cc-chart__bar {
    background: linear-gradient(180deg, #4fb3ff, rgba(79, 179, 255, 0.3));
}

.cc-chart__col:hover .cc-chart__bar {
    filter: brightness(1.25);
}

.cc-chart__value {
    min-height: 14px;
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.64rem;
}

.cc-chart__label {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.62rem;
}

/* attention */

.cc-attention {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 18px;
}

.cc-attention__item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-left: 3px solid var(--info);
    background: var(--panel-2);
    color: inherit;
    text-decoration: none;
}

.cc-attention__item:hover {
    background: var(--panel-3);
}

.cc-attention__item strong {
    font-size: 0.88rem;
}

.cc-attention__item span {
    color: var(--text-muted);
    font-size: 0.78rem;
}

.cc-attention__item--warn { border-left-color: var(--warning); }
.cc-attention__item--fail { border-left-color: var(--danger); }

.cc-attention__ok {
    display: flex;
    align-items: center;
    margin: 0;
    color: var(--text-soft);
    font-size: 0.88rem;
}

/* health */

.cc-checks {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.cc-checks--compact {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.cc-check {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    align-items: center;
    padding: 10px 18px;
}

.cc-check + .cc-check {
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.cc-check__label {
    color: var(--text-soft);
    font-size: 0.88rem;
}

.cc-check__value {
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.cc-check-card {
    position: relative;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    grid-template-areas: "dot label" ". value" ". hint";
    align-items: center;
    row-gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    background: var(--panel);
}

.cc-check-card .cc-dot { grid-area: dot; }

.cc-check-card__label {
    grid-area: label;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.64rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-check-card__value {
    grid-area: value;
    font-family: var(--font-mono);
    font-size: 1.05rem;
}

.cc-check-card__hint {
    grid-area: hint;
    overflow: hidden;
    color: var(--text-muted);
    font-size: 0.76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-check-card.cc-check--fail { border-color: rgba(255, 93, 93, 0.45); box-shadow: inset 3px 0 0 var(--danger); }
.cc-check-card.cc-check--warn { border-color: rgba(245, 166, 35, 0.4); box-shadow: inset 3px 0 0 var(--warning); }
.cc-check-card.cc-check--ok { box-shadow: inset 3px 0 0 var(--success); }
.cc-check-card.cc-check--info { box-shadow: inset 3px 0 0 var(--info); }

.cc-overall {
    display: inline-flex;
    align-items: center;
    padding: 10px 16px;
    border: 1px solid var(--border);
    background: rgba(9, 11, 15, 0.55);
    font-family: var(--font-mono);
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-overall--ok { border-color: rgba(61, 220, 132, 0.4); color: var(--success); }
.cc-overall--warn { border-color: rgba(245, 166, 35, 0.45); color: var(--accent); }
.cc-overall--fail { border-color: rgba(255, 93, 93, 0.45); color: var(--danger); }

.cc-modules {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px 18px;
}

.cc-module {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border: 1px solid var(--border);
    color: var(--text-muted);
    font-size: 0.82rem;
}

.cc-module.is-on {
    color: var(--text-soft);
}

/* role / reason bars */

.cc-roles {
    display: flex;
    flex-direction: column;
    padding: 8px 0;
}

.cc-roles__row {
    display: grid;
    grid-template-columns: minmax(110px, 1fr) minmax(60px, 1.2fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 8px 18px;
    color: inherit;
    text-decoration: none;
}

.cc-roles__row:hover {
    background: var(--panel-2);
}

.cc-roles__row.is-zero {
    opacity: 0.5;
}

.cc-roles__name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    color: var(--text-soft);
    font-size: 0.85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-roles__name .ops-role__swatch {
    width: 8px;
    height: 8px;
}

.cc-roles__bar {
    display: block;
    height: 6px;
    background: var(--panel-3);
}

.cc-roles__bar span {
    display: block;
    height: 100%;
    min-width: 2px;
    background: var(--role-color, var(--accent));
}

.cc-roles__row b {
    font-family: var(--font-mono);
    font-size: 0.9rem;
}

.cc-roles__row small {
    font-family: var(--font-mono);
    font-size: 0.72rem;
}

/* audit / action icons */

.cc-action-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--text-soft);
}

.cc-action-icon .ui-icon {
    width: 16px;
    height: 16px;
}

.cc-action-icon--user_ban { border-color: rgba(255, 93, 93, 0.35); color: var(--danger); }
.cc-action-icon--user_unban,
.cc-action-icon--catalog_approve { border-color: rgba(61, 220, 132, 0.35); color: var(--success); }
.cc-action-icon--user_role { border-color: rgba(176, 124, 255, 0.35); color: #b07cff; }
.cc-action-icon--site_maintenance,
.cc-action-icon--site_registration,
.cc-action-icon--module_toggle { border-color: rgba(245, 166, 35, 0.35); color: var(--accent); }

/* dossier */

.cc-dossier.is-banned {
    background:
        linear-gradient(100deg, rgba(255, 93, 93, 0.12), transparent 55%),
        var(--panel);
    box-shadow: inset 3px 0 0 var(--danger);
}

.cc-dossier__id {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.cc-dossier__avatar {
    flex: 0 0 auto;
    width: 76px;
    height: 76px;
    overflow: hidden;
    border: 1px solid rgba(245, 166, 35, 0.4);
    background: var(--panel-2);
}

.cc-dossier__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-dossier__tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 10px 0 0;
}

.cc-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border: 1px solid var(--border);
    background: var(--panel);
    color: inherit;
    text-decoration: none;
}

.cc-banner > .ui-icon {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
}

.cc-banner div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cc-banner span {
    color: var(--text-muted);
    font-size: 0.82rem;
}

.cc-banner--fail {
    border-color: rgba(255, 93, 93, 0.4);
    background: rgba(255, 93, 93, 0.07);
    color: var(--danger);
}

.cc-banner--fail strong { color: var(--text); }

.cc-banner--info {
    border-color: rgba(94, 152, 217, 0.4);
    background: rgba(94, 152, 217, 0.07);
    color: var(--info);
}

.cc-banner--info strong { color: var(--text); }

.cc-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.cc-facts div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.cc-facts dt {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-facts dd {
    margin: 0;
    overflow: hidden;
    color: var(--text);
    font-size: 0.9rem;
    text-overflow: ellipsis;
}

.cc-facts dd a {
    color: var(--accent);
}

.cc-facts--single {
    grid-template-columns: 1fr;
}

.cc-facts--single div {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 9px 18px;
}

.cc-facts--single dd {
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.cc-money {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-bottom: 1px solid var(--border);
}

.cc-money div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 18px;
}

.cc-money div + div {
    border-left: 1px solid var(--border);
}

.cc-money span {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-money b {
    font-family: var(--font-mono);
    font-size: 1.1rem;
}

.cc-breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}

.cc-forms {
    display: flex;
    flex-direction: column;
}

.cc-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 14px 18px;
}

.cc-forms .cc-form + .cc-form {
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.cc-form--danger {
    background: rgba(255, 93, 93, 0.03);
}

.cc-form .cc-field {
    min-width: 0;
}

.cc-textarea {
    min-height: 90px !important;
    font-size: 0.88rem;
}

.cc-links {
    border-top: 1px solid var(--border);
}

/* moderation */

.cc-check-all {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--text-soft);
    font-size: 0.85rem;
    cursor: pointer;
}

.cc-items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

.cc-item {
    display: grid;
    grid-template-columns: 18px 56px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    cursor: pointer;
    transition: background 0.15s ease;
}

.cc-item:hover {
    background: var(--panel-2);
}

.cc-item:has(input:checked) {
    background: var(--accent-soft);
    box-shadow: inset 2px 0 0 var(--accent);
}

.cc-item.is-hidden .cc-item__main,
.cc-item.is-hidden .cc-item__thumb {
    opacity: 0.55;
}

.cc-item input,
.cc-check-all input {
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
}

.cc-item__thumb {
    display: grid;
    place-items: center;
    width: 56px;
    height: 42px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--text-muted);
}

.cc-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cc-item__main {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.cc-item__main strong {
    overflow: hidden;
    font-size: 0.86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-item__main span {
    overflow: hidden;
    color: var(--text-muted);
    font-size: 0.76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-item__side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-family: var(--font-mono);
    font-size: 0.82rem;
}

/* responsive */

@media (max-width: 1180px) {
    .cc-charts {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 960px) {
    .ops .ops-grid {
        grid-template-columns: 1fr;
    }
    .cc-tabs__spacer {
        display: none;
    }
}

@media (max-width: 640px) {
    .cc-switches {
        flex-direction: column;
        width: 100%;
    }
    .cc-facts,
    .cc-money {
        grid-template-columns: 1fr;
    }
    .cc-money div + div {
        border-left: 0;
        border-top: 1px solid var(--border);
    }
    .cc-tab span {
        display: none;
    }
    .cc-toolbar .cc-field {
        flex: 1 1 100%;
    }
}

/* ---------- System settings ---------- */

.cc-tab--ghost.is-active span {
    display: inline;
}

.cc-anchors {
    margin-bottom: 14px;
}

.cc-settings .ops-panel {
    scroll-margin-top: 90px;
}

.cc-settings__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.cc-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    padding: 16px 18px;
}

.cc-form-grid--single {
    grid-template-columns: 1fr;
    padding-top: 0;
}

.cc-form-grid .cc-field,
.cc-integration .cc-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    margin: 0;
}

.cc-form-grid .cc-field > span:first-child,
.cc-integration .cc-field > span:first-child {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-span-2 {
    grid-column: span 2;
}

.cc-help {
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.4;
}

.cc-help b {
    color: var(--accent);
    font-weight: 600;
}

.cc-ellipsis {
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-switch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    padding: 16px 18px;
}

.cc-switch-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.cc-switch-card:hover {
    border-color: var(--border-strong);
}

.cc-switch-card:has(input:checked) {
    border-color: rgba(245, 166, 35, 0.45);
    background: var(--accent-soft);
}

.cc-switch-card--danger:has(input:checked) {
    border-color: rgba(255, 93, 93, 0.5);
    background: rgba(255, 93, 93, 0.08);
}

.cc-switch-card--danger:has(input:checked) .toggle-control__track {
    background: rgba(255, 93, 93, 0.35);
    border-color: rgba(255, 93, 93, 0.7);
}

.cc-switch-card__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.cc-switch-card__text strong {
    color: var(--text);
    font-size: 0.95rem;
}

.cc-switch-card__text span {
    color: var(--text-muted);
    font-size: 0.8rem;
}

.cc-secret {
    position: relative;
    display: flex;
}

.cc-secret .form-control {
    flex: 1 1 auto;
    padding-right: 42px;
    font-family: var(--font-mono);
}

.cc-secret__toggle {
    position: absolute;
    top: 50%;
    right: 6px;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.9rem;
    filter: grayscale(1);
}

.cc-secret__toggle.is-on,
.cc-secret__toggle:hover {
    color: var(--accent);
    filter: none;
}

.cc-integrations {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 12px;
    padding: 16px 18px 0;
}

.cc-integration {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    min-width: 0;
}

.cc-integration--up { box-shadow: inset 0 2px 0 var(--success); }
.cc-integration--degraded,
.cc-integration--missing_key { box-shadow: inset 0 2px 0 var(--accent); }
.cc-integration--down { box-shadow: inset 0 2px 0 var(--danger); }
.cc-integration--unchecked { box-shadow: inset 0 2px 0 var(--info); }

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

.cc-integration__head {
    flex-wrap: wrap;
}

.cc-integration .form-control,
.cc-integration select {
    width: 100%;
    min-width: 0;
}

.cc-integration__head strong {
    flex: 1 1 auto;
    color: var(--text);
    font-size: 0.92rem;
}

.cc-integration__msg {
    margin: 0;
    min-height: 2.6em;
    color: var(--text-muted);
    font-size: 0.8rem;
    line-height: 1.35;
}

.cc-toolbar--flat {
    margin: 0;
    padding: 14px 18px;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    align-items: flex-end;
}

.cc-banner--inset {
    margin: 14px 18px 0;
}

.cc-modules-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 12px;
    padding: 16px 18px;
}

.cc-module-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    min-width: 0;
    transition: border-color 0.15s ease;
}

.cc-module-card.is-on {
    border-left: 2px solid var(--accent);
}

.cc-module-card.is-blocked {
    border-left: 2px solid var(--danger);
}

.cc-module-card[hidden] {
    display: none;
}

.cc-module-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.cc-module-card__head > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.cc-module-card__head strong {
    color: var(--text);
    font-size: 0.95rem;
}

.cc-module-card__desc {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.cc-module-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cc-module-card__tags:empty {
    display: none;
}

.cc-module-card__tags .cc-chip {
    white-space: normal;
    min-height: 20px;
    padding: 2px 7px;
    font-size: 0.66rem;
}

.cc-module-card__warn {
    margin: 0;
    color: var(--accent);
    font-size: 0.8rem;
}

.cc-module-card__foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.cc-module-card__release {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.68rem;
}

.cc-module-card__release b {
    color: var(--text-soft);
    font-weight: 600;
}

.cc-modules-empty {
    padding: 0 18px 16px;
}

.cc-savebar {
    position: sticky;
    bottom: 12px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1px solid var(--border-strong);
    background: rgba(17, 21, 28, 0.94);
    backdrop-filter: blur(8px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

.cc-savebar__state {
    flex: 1 1 auto;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.78rem;
}

.cc-savebar.is-dirty {
    border-color: rgba(245, 166, 35, 0.6);
}

.cc-savebar.is-dirty .cc-savebar__state {
    color: var(--accent);
}

.cc-history + .cc-history {
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}

.cc-history > summary {
    list-style: none;
    cursor: pointer;
}

.cc-history > summary::-webkit-details-marker {
    display: none;
}

.cc-history > summary:hover {
    background: var(--panel-2);
}

.cc-history .ops-row + .ops-row {
    border-top: 0;
}

.cc-history__changes {
    margin: 0;
    padding: 0 18px 12px 66px;
    list-style: none;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.6;
}

.cc-history__changes b {
    color: var(--text-soft);
    font-weight: 600;
}

.cc-history__changes s {
    opacity: 0.6;
}

.ops-grid__side .cc-form .btn-block {
    width: 100%;
}

@media (max-width: 640px) {
    .cc-modules-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .cc-form-grid,
    .cc-switch-grid {
        grid-template-columns: 1fr;
    }
    .cc-span-2 {
        grid-column: auto;
    }
    .cc-module-card__foot {
        flex-direction: column;
        align-items: stretch;
    }
    .cc-savebar {
        flex-wrap: wrap;
    }
    .cc-savebar__state {
        flex-basis: 100%;
    }
}

/* Facts with long values (URLs): label above value, value wraps instead of being clipped. */
.cc-facts--stack {
    grid-template-columns: 1fr;
}

.cc-facts--stack div {
    min-width: 0;
}

.cc-facts--stack dd {
    overflow: visible;
    overflow-wrap: anywhere;
    word-break: break-all;
    font-size: 0.82rem;
}

.cc-sub {
    display: block;
    max-width: 190px;
    overflow: hidden;
    color: var(--text-muted);
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-inline-form {
    display: inline-flex;
    vertical-align: middle;
}

.cc-inline-form .btn {
    display: inline-flex;
    align-items: center;
    padding: 2px 6px;
}

/* activity log (Логи) */

.cc-field-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    color: var(--text-soft);
    font-size: 0.84rem;
    cursor: pointer;
}

.cc-field-check input {
    accent-color: var(--accent);
}

.cc-activity-scope {
    margin: 0;
    padding: 10px 16px;
    border: 1px solid var(--border);
    background: var(--accent-soft);
    color: var(--text-soft);
    font-size: 0.86rem;
}

.cc-activity-scope a {
    color: var(--accent);
}

.cc-activity td {
    vertical-align: top;
}

.cc-activity__event {
    min-width: 0;
}

.cc-activity__event .cc-chip {
    margin: 0 4px 4px 0;
}

.cc-activity__summary {
    display: block;
    color: var(--text);
    font-size: 0.86rem;
    overflow-wrap: anywhere;
}

.cc-activity__meta {
    display: block;
    color: var(--text-muted);
    font-size: 0.74rem;
    overflow-wrap: anywhere;
}

.cc-activity__meta a {
    color: var(--accent);
}

.cc-activity__details {
    margin-top: 6px;
    font-size: 0.76rem;
}

.cc-activity__details summary {
    color: var(--text-muted);
    cursor: pointer;
}

.cc-activity__details p {
    margin: 6px 0 0;
    color: var(--text-soft);
    overflow-wrap: anywhere;
}

.cc-activity__details pre {
    max-height: 240px;
    margin: 6px 0 0;
    padding: 8px 10px;
    overflow: auto;
    border: 1px solid var(--border);
    background: var(--bg-elevated);
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.74rem;
    white-space: pre-wrap;
    word-break: break-all;
}

.cc-activity__ua {
    font-size: 0.72rem;
}

.cc-chip--cat-auth,
.cc-chip--cat-account { border-color: rgba(94, 152, 217, 0.45); color: var(--info); }
.cc-chip--cat-balance,
.cc-chip--cat-payment { border-color: rgba(61, 220, 132, 0.4); color: var(--success); }
.cc-chip--cat-case,
.cc-chip--cat-store,
.cc-chip--cat-subscription { border-color: rgba(245, 166, 35, 0.45); color: var(--accent); }
.cc-chip--cat-trading,
.cc-chip--cat-farm,
.cc-chip--cat-constructor { border-color: rgba(176, 124, 255, 0.45); color: #b07cff; }
.cc-chip--cat-security { border-color: rgba(255, 93, 93, 0.45); color: var(--danger); }
.cc-chip--cat-admin { border-color: rgba(255, 93, 93, 0.3); color: var(--text); }

.cc-activity a.cc-sub {
    text-decoration: none;
}

@media (max-width: 720px) {
    .cc-activity,
    .cc-activity tbody {
        display: block;
    }

    .cc-activity thead {
        display: none;
    }

    .cc-activity tr {
        display: grid;
        grid-template-areas:
            "user time"
            "event amount";
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px 12px;
        padding: 12px 14px;
        border-bottom: 1px solid var(--border);
    }

    .cc-activity td {
        display: block;
        padding: 0;
        border: 0;
    }

    .cc-activity__time { grid-area: time; text-align: right; }
    .cc-activity__user { grid-area: user; min-width: 0; }
    .cc-activity__event { grid-area: event; }
    .cc-activity__amount { grid-area: amount; }

    .cc-activity td[colspan] {
        grid-column: 1 / -1;
    }
}

.cc-activity-meta {
    flex-wrap: wrap;
}

@media (max-width: 720px) {
    .cc-activity-meta div {
        flex: 1 1 45%;
    }

    .cc-activity-meta div:nth-child(3) {
        border-left: 0;
    }

    .cc-activity-meta div:nth-child(n + 3) {
        border-top: 1px solid var(--border);
    }
}

/* price auto-update (Автообновление цен) */

.autoprice-rules {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
    padding: 16px 18px 18px;
}

.autoprice-rule {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-left: 3px solid var(--success);
    background: var(--bg-elevated);
}

.autoprice-rule.is-disabled {
    border-left-color: var(--border-strong);
}

.autoprice-rule.is-disabled .autoprice-rule__facts {
    opacity: 0.7;
}

.autoprice-rule.is-editing {
    border-color: var(--accent);
    box-shadow: 0 0 0 1px var(--accent) inset;
}

.autoprice-rule__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.autoprice-rule__title {
    flex: 1 1 auto;
    margin: 0;
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
}

.autoprice-rule__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
    margin: 0;
}

.autoprice-rule__facts dt {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.autoprice-rule__facts dd {
    margin: 4px 0 0;
    color: var(--text);
    font-size: 0.88rem;
}

.autoprice-rule__facts .cc-sub {
    max-width: none;
    white-space: normal;
}

.autoprice-rule__error,
.autoprice-log__details {
    font-size: 0.8rem;
}

.autoprice-rule__error {
    padding: 8px 10px;
    border: 1px solid rgba(255, 93, 93, 0.35);
    background: rgba(255, 93, 93, 0.06);
}

.autoprice-rule__error summary,
.autoprice-log__details summary {
    color: var(--danger);
    cursor: pointer;
}

.autoprice-log__details summary {
    color: var(--text-muted);
}

.autoprice-rule__error pre,
.autoprice-log__details pre {
    margin: 6px 0 0;
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.74rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.autoprice-rule__actions,
.autoprice-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.autoprice-rule__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.autoprice-rule__actions .ui-icon {
    width: 14px;
    height: 14px;
}

.autoprice-empty,
.autoprice-note {
    margin: 0;
    padding: 18px;
    color: var(--text-soft);
    font-size: 0.88rem;
}

.autoprice-empty p {
    margin: 6px 0 0;
}

.autoprice-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px 18px 18px;
}

.autoprice-form .cc-field {
    min-width: 0;
}

.autoprice-form .cc-field em {
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
}

.autoprice-form__preview {
    margin: 0;
    padding: 10px 12px;
    border: 1px dashed var(--border-strong);
    color: var(--text);
    font-size: 0.86rem;
}

.autoprice-form__preview:empty {
    display: none;
}

.autoprice-help {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 16px 18px 18px 34px;
    color: var(--text-soft);
    font-size: 0.84rem;
    line-height: 1.5;
}

.autoprice-help strong {
    color: var(--text);
}

@media (max-width: 720px) {
    .autoprice-rules {
        grid-template-columns: 1fr;
        padding: 12px;
    }

    .autoprice-rule__facts {
        grid-template-columns: 1fr;
    }
}

/* subscription pricing (Цены подписок) */

.pricing-tabs .cc-tab {
    text-decoration: none;
}

.pricing-intro {
    margin: 0;
    padding: 12px 16px;
    border: 1px solid var(--border);
    background: var(--panel);
    color: var(--text-soft);
    font-size: 0.86rem;
    line-height: 1.6;
}

.pricing-intro a,
.pricing-note a { color: var(--accent); }

.pricing-overview {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
    gap: 16px;
    align-items: start;
}

.pricing-table tr.is-muted td { opacity: 0.6; }

.pricing-table .cc-sub { max-width: none; }

.pricing-factors {
    margin-top: 6px;
    font-size: 0.78rem;
}

.pricing-factors summary {
    color: var(--text-muted);
    cursor: pointer;
}

.pricing-factors ul {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.pricing-factors li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}

.pricing-factors li span {
    display: flex;
    flex-direction: column;
    color: var(--text);
}

.pricing-factors li small {
    color: var(--text-muted);
    white-space: normal;
}

.pricing-factors li b {
    color: var(--text);
    font-family: var(--font-mono);
    white-space: nowrap;
}

.pricing-formula {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pricing-fields {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: 14px 16px;
    padding: 16px 18px 18px;
}

.pricing-field { min-width: 0; }

.pricing-field .form-control {
    width: 100%;
    min-width: 0;
}

.pricing-group,
.pricing-plan,
.pricing-plans,
.pricing-formula,
.pricing-overview > * {
    min-width: 0;
}

/* the shared toggle style hides bare checkboxes; on this page they are plain visible checkboxes */
.pricing-rules input[type="checkbox"],
.pricing-toggle input[type="checkbox"] {
    position: static;
    width: 18px;
    height: 18px;
    inline-size: 18px;
    block-size: 18px;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    opacity: 1;
    appearance: auto;
    accent-color: var(--accent);
    pointer-events: auto;
}
.pricing-field--wide { grid-column: 1 / -1; }

.pricing-field .form-help {
    color: var(--text-muted);
    font-size: 0.76rem;
    line-height: 1.4;
}

.pricing-field__rec {
    color: var(--accent) !important;
}

.pricing-field.has-error .form-control {
    border-color: var(--danger);
}

.pricing-howto {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 16px 18px 6px 36px;
    color: var(--text-soft);
    font-size: 0.84rem;
    line-height: 1.5;
}

.pricing-howto strong { color: var(--text); }

.pricing-note {
    margin: 0;
    padding: 6px 18px 18px;
    color: var(--text-muted);
    font-size: 0.8rem;
}

.pricing-savebar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-top: 1px solid var(--border);
}

.pricing-savebar .cc-sub {
    max-width: none;
    white-space: normal;
}

.pricing-formula > .pricing-savebar {
    position: sticky;
    bottom: 0;
    z-index: 2;
    border: 1px solid var(--border);
    background: var(--panel);
}

.pricing-plans {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px 18px;
}

.pricing-plan {
    border: 1px solid var(--border);
    background: var(--bg-elevated);
}

.pricing-plan[open] {
    border-color: var(--border-strong);
}

.pricing-plan.has-error {
    border-color: var(--danger);
}

.pricing-plan--new {
    border-style: dashed;
}

.pricing-plan__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
}

.pricing-plan__summary::-webkit-details-marker { display: none; }

.pricing-plan__summary::before {
    content: "▸";
    color: var(--text-muted);
    transition: transform 0.15s ease;
}

.pricing-plan[open] > .pricing-plan__summary::before {
    transform: rotate(90deg);
}

.pricing-plan__name {
    color: var(--text);
    font-weight: 600;
}

.pricing-plan--new .pricing-plan__name { color: var(--accent); }

.pricing-plan__price {
    margin-left: auto;
    color: var(--text);
    font-family: var(--font-mono);
}

.pricing-plan__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0 0 12px;
    border-top: 1px solid var(--border);
}

.pricing-group {
    margin: 0;
    padding: 0;
    border: 0;
}

.pricing-group legend {
    padding: 14px 18px 0;
    color: var(--accent);
    font-family: var(--font-mono);
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.pricing-group .pricing-fields {
    padding-top: 10px;
    padding-bottom: 8px;
}

.pricing-toggle {
    margin: 0 18px;
}

.pricing-rules td {
    vertical-align: top;
}

.pricing-rules .form-control {
    min-width: 0;
}

.pricing-rules td:nth-child(1) .form-control { min-width: 230px; }
.pricing-rules td:nth-child(2) .form-control { min-width: 200px; }

.pricing-rules td:nth-child(3) .form-control { width: 96px; }
.pricing-rules td:nth-child(4) .form-control { width: 72px; }

.pricing-rules td,
.pricing-rules th { padding-left: 10px; padding-right: 10px; }

.pricing-rules__new td { background: rgba(245, 166, 35, 0.04); }

.pricing-rules .cc-sub {
    max-width: none;
    white-space: normal;
}

@media (max-width: 720px) {
    .pricing-overview { grid-template-columns: 1fr; }
    .pricing-plans { padding: 12px; }
    .pricing-fields { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .pricing-plan__price { margin-left: 0; }
}

.pricing-rules td:last-child {
    padding-top: 22px;
}

.autoprice-log .cc-sub {
    max-width: none;
    white-space: normal;
}

/* profile → security (sessions) */

.security .cc-pagehead {
    align-items: flex-start;
}

.security-sessions {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}

.security-session {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
}

.security-session:last-child { border-bottom: 0; }

.security-session.is-current {
    background: rgba(61, 220, 132, 0.05);
}

.security-session.is-ended { opacity: 0.7; }

.security-session__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border);
    background: var(--bg-elevated);
    color: var(--text-soft);
}

.security-session.is-current .security-session__icon {
    border-color: rgba(61, 220, 132, 0.5);
    color: var(--success);
}

.security-session__icon .ui-icon {
    width: 22px;
    height: 22px;
}

.security-session__main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    min-width: 0;
}

.security-session__main strong {
    color: var(--text);
}

.security-session__meta {
    flex: 1 1 100%;
    color: var(--text-muted);
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}

.security-empty {
    padding: 18px;
    color: var(--text-muted);
}

.security-note {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.74rem;
}

.security-note a { color: var(--text-soft); }

@media (max-width: 560px) {
    .security-session {
        grid-template-columns: 36px minmax(0, 1fr);
        padding: 12px;
    }

    .security-session__icon { width: 36px; height: 36px; }
    .security-session .cc-inline-form { grid-column: 2; }
}

/* Profile → Безопасность: two-factor authentication */
.tfa__body {
    display: grid;
    gap: 14px;
    padding: 16px 18px 18px;
}

.tfa__body > .cc-inline-form { justify-self: start; }

.tfa-text {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.86rem;
    line-height: 1.5;
}

.tfa-text--warn { color: var(--warning, #f5b74f); }

.tfa-alert {
    padding: 12px 14px;
    border: 1px solid var(--accent);
    background: var(--accent-soft);
    font-size: 0.86rem;
    line-height: 1.5;
}

.tfa-alert strong { display: block; margin-bottom: 2px; }

.tfa-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
    gap: 10px;
    margin: 0;
}

.tfa-facts div {
    display: grid;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    background: var(--surface-2, rgba(255, 255, 255, 0.02));
}

.tfa-facts dt { color: var(--text-muted); font-size: 0.74rem; }
.tfa-facts dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }

.tfa-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    gap: 14px;
    align-items: end;
}

.tfa-inline {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.tfa-inline__label { color: var(--text-muted); font-size: 0.78rem; }

.tfa-inline__row {
    display: flex;
    gap: 8px;
    min-width: 0;
}

.tfa-inline__code {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 220px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.08em;
}

.tfa-steps {
    display: grid;
    gap: 16px;
    margin: 0;
    padding-left: 1.3em;
    list-style: decimal;
}

.tfa-steps > li { padding-left: 4px; }
.tfa-steps > li > strong,
.tfa-steps > li > .tfa-text { display: block; }
.tfa-steps > li > * + * { margin-top: 8px; }
.tfa-steps > li::marker { color: var(--accent); font-weight: 700; }

.tfa-qr {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
}

.tfa-qr img {
    display: block;
    width: 200px;
    height: 200px;
    background: #fff;
    image-rendering: pixelated;
}

.tfa-qr__manual {
    display: grid;
    gap: 6px;
    flex: 1 1 220px;
    min-width: 0;
}

.tfa-secret {
    display: block;
    padding: 8px 10px;
    border: 1px dashed var(--border);
    font-size: 0.95rem;
    letter-spacing: 0.06em;
    overflow-wrap: anywhere;
    user-select: all;
}

.tfa-codes {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--success, #3ecf8e);
    background: color-mix(in srgb, var(--success, #3ecf8e) 8%, transparent);
}

.tfa-codes__title { margin: 0; }

.tfa-codes__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 6px 16px;
    margin: 0;
    padding-left: 1.6em;
    list-style: decimal;
    font-size: 1rem;
    user-select: all;
}

.tfa-codes__list code { letter-spacing: 0.06em; }

/* Profile → Рефералы */
.ref-body {
    display: grid;
    gap: 12px;
    padding: 16px 18px 18px;
}

.ref-link {
    display: flex;
    gap: 8px;
    min-width: 0;
}

.ref-link__input {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--font-mono);
    font-size: 0.86rem;
}

.ref-link .btn { flex: 0 0 auto; }
.ref-link .btn.is-copied { filter: saturate(0.6); }

.ref-text {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.86rem;
    line-height: 1.5;
}

.ref-earned { margin: 0; font-size: 0.9rem; }

.ref-rewards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap: 16px;
}

.ref-reward.is-locked .ref-meter span { background: var(--text-muted); }

.ref-meter {
    height: 8px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.03);
}

.ref-meter span {
    display: block;
    height: 100%;
    min-width: 2px;
    background: var(--accent);
}

.ref-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ref-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px 150px 90px;
    gap: 12px;
    align-items: center;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
}

.ref-row:last-child { border-bottom: 0; }
.ref-row__meta { color: var(--text-muted); font-size: 0.8rem; }
.ref-row__bonus { text-align: right; color: var(--success); font-variant-numeric: tabular-nums; font-size: 0.86rem; }

.ref-rules {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 16px 18px 18px 36px;
    color: var(--text-soft);
    font-size: 0.86rem;
    line-height: 1.5;
    list-style: disc;
}

@media (max-width: 560px) {
    .ref-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 4px 12px;
        padding: 10px 12px;
    }

    .ref-row > .cc-user { grid-column: 1; grid-row: 1; }
    .ref-row__status { grid-column: 2; grid-row: 1; justify-self: end; }
    .ref-row__meta { grid-column: 1; grid-row: 2; }
    .ref-row__bonus { grid-column: 2; grid-row: 2; }
    .ref-link { flex-wrap: wrap; }
    .ref-link .btn { flex: 1 1 100%; }
}

/* Profile → Промокоды */
.promo-form__code {
    max-width: 320px;
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.promo-row {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}

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

.promo-row__code {
    font-family: var(--font-mono);
    font-weight: 700;
    letter-spacing: 0.06em;
    overflow-wrap: anywhere;
}

.promo-row__benefit { display: grid; gap: 2px; font-size: 0.9rem; }
.promo-row__until { color: var(--text-muted); font-size: 0.78rem; }

.promo-row__hint {
    display: grid;
    justify-items: end;
    gap: 2px;
    font-size: 0.86rem;
    text-align: right;
}

@media (max-width: 560px) {
    .promo-row {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 10px 12px;
    }

    .promo-row__benefit { grid-column: 1 / -1; grid-row: 2; }
    .promo-form__code { max-width: none; }
}

/* Control Center → Промокоды: edit form */
.cc-pagehead .back-link {
    display: block;
    width: fit-content;
    margin-bottom: 10px;
    color: var(--text-muted);
    font-size: 0.82rem;
}
.cc-field__hint { color: var(--text-muted); font-size: 0.76rem; line-height: 1.4; }
.cc-field__error { color: var(--danger); font-size: 0.78rem; }
.cc-field.is-invalid .form-control { border-color: var(--danger); }
.cc-field[hidden] { display: none; }

.promo-checks {
    display: grid;
    gap: 8px;
    align-content: start;
}

.cc-form-actions {
    display: flex;
    gap: 8px;
    padding: 0 18px 18px;
}

[data-promo-form] .tfa-alert { margin: 16px 18px 0; }

/* Control Center → Мульти-аккаунты */
.ma-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ma-tab {
    padding: 6px 12px;
    border: 1px solid var(--border);
    color: var(--text-soft);
    font-size: 0.86rem;
    text-decoration: none;
}

.ma-tab b { margin-left: 4px; color: var(--text-muted); font-family: var(--font-mono); font-weight: 500; }
.ma-tab.is-active { border-color: var(--accent); color: var(--text); background: var(--accent-soft); }

.ma-cases { margin: 0; padding: 0; list-style: none; }
.ma-case { border-bottom: 1px solid var(--border); }
.ma-case:last-child { border-bottom: 0; }

.ma-case__link {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 18px;
    color: inherit;
    text-decoration: none;
}

.ma-case__link:hover { background: rgba(255, 255, 255, 0.02); }
.ma-case__id { font-family: var(--font-mono); color: var(--text-muted); }
.ma-case__main { display: grid; gap: 4px; min-width: 0; }
.ma-case__members { display: flex; flex-wrap: wrap; gap: 6px; }
.ma-case__side { display: grid; justify-items: end; gap: 4px; }

.ma-member {
    padding: 2px 8px;
    border: 1px solid var(--border);
    font-size: 0.84rem;
}

.ma-member.is-new { border-color: var(--accent); }
.ma-more { color: var(--text-muted); font-size: 0.84rem; align-self: center; }

.ma-banform {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
    gap: 10px;
}

.ma-ban {
    display: grid;
    grid-template-columns: minmax(120px, auto) minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
}

.ma-ban:last-child { border-bottom: 0; }
.ma-ban__reason { display: grid; gap: 2px; min-width: 0; font-size: 0.86rem; }

.ma-shared { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ma-shared li { display: flex; justify-content: space-between; gap: 12px; }

.ma-checks { display: grid; gap: 6px; }

.ma-note {
    margin: 0;
    color: var(--text-soft);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

@media (max-width: 560px) {
    .ma-case__link { grid-template-columns: minmax(0, 1fr); padding: 12px; }
    .ma-case__side { justify-items: start; grid-auto-flow: column; justify-content: start; }
    .ma-ban { grid-template-columns: minmax(0, 1fr) auto; padding: 10px 12px; }
    .ma-ban__reason { grid-column: 1 / -1; grid-row: 2; }
}

/* business */

.biz-period { align-items: flex-end; }
.biz-period__presets { display: flex; flex-wrap: wrap; gap: 6px; margin-right: auto; }
.biz-change { margin-left: 4px; font-family: var(--font-mono); font-size: 0.72rem; white-space: nowrap; }
.biz-kpi--accent { border-color: rgba(245, 166, 35, 0.55); background: linear-gradient(135deg, rgba(245, 166, 35, 0.12), transparent 70%), var(--panel); }
.biz-kpi--accent .ops-kpi__value { color: var(--accent); }

.biz-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--text-muted); font-size: 0.72rem; }
.biz-legend__item { display: inline-flex; align-items: center; gap: 5px; }
.biz-dot { display: inline-block; width: 9px; height: 9px; vertical-align: middle; background: var(--text-muted); }
.biz-dot--commission { background: var(--accent); }
.biz-dot--subscription { background: #4fb3ff; }
.biz-dot--store { background: #b07cff; }
.biz-dot--cases { background: #3ddc84; }

.biz-stack { display: flex; flex: 1 1 auto; flex-direction: column-reverse; width: 100%; min-height: 0; }
.biz-stack__part { display: block; width: 100%; min-height: 1px; transition: filter 0.15s ease; }
.cc-chart__col:hover .biz-stack__part { filter: brightness(1.25); }

.biz-total td { border-top: 1px solid var(--border); }

.biz-funnel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 16px 18px 4px; }
.biz-funnel__step { display: flex; flex-direction: column; gap: 4px; padding: 12px; border: 1px solid var(--border); background: rgba(255, 255, 255, 0.02); }
.biz-funnel__step span { color: var(--text-muted); font-size: 0.75rem; }
.biz-funnel__step b { font-family: var(--font-mono); font-size: 1.3rem; }
.biz-funnel__step small { color: var(--accent); font-family: var(--font-mono); }

.biz-metrics { display: grid; gap: 0; margin: 0; padding: 8px 18px 12px; }
.biz-metrics > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.biz-metrics > div:last-child { border-bottom: 0; }
.biz-metrics dt { color: var(--text-muted); font-size: 0.85rem; }
.biz-metrics dd { margin: 0; font-family: var(--font-mono); text-align: right; }
.biz-metrics small { display: block; color: var(--text-muted); font-size: 0.7rem; }

@media (max-width: 720px) {
    .biz-funnel { grid-template-columns: 1fr; }
    .biz-period__presets { margin-right: 0; }
}
.biz .cc-chart__label { position: relative; z-index: 1; min-height: 12px; overflow: visible; white-space: nowrap; }
.biz .cc-chart { gap: 2px; }
.biz .cc-num .cc-sub { display: block; }

/* daily bonus */

.dbonus-panel { padding: 18px; }
.dbonus-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.dbonus-day {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 16px 8px 14px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.02);
    text-align: center;
}
.dbonus-day__num { color: var(--text-muted); font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.dbonus-day__icon .ui-icon { width: 30px; height: 30px; color: var(--text-soft); }
.dbonus-day__reward { font-family: var(--font-display); font-size: 1.05rem; line-height: 1.2; overflow-wrap: anywhere; }
.dbonus-day__state { display: inline-flex; align-items: center; gap: 4px; color: var(--text-muted); font-size: 0.72rem; }
.dbonus-day__state .ui-icon { width: 13px; height: 13px; }
.dbonus-day--claimed { border-color: rgba(61, 220, 132, 0.35); background: rgba(61, 220, 132, 0.06); }
.dbonus-day--claimed .dbonus-day__state, .dbonus-day--claimed .dbonus-day__icon .ui-icon { color: var(--success); }
.dbonus-day--today { border-color: rgba(245, 166, 35, 0.75); background: linear-gradient(180deg, rgba(245, 166, 35, 0.16), rgba(245, 166, 35, 0.03)); box-shadow: 0 0 0 1px rgba(245, 166, 35, 0.25), 0 10px 26px rgba(245, 166, 35, 0.12); }
.dbonus-day--today .dbonus-day__state, .dbonus-day--today .dbonus-day__icon .ui-icon { color: var(--accent); }
.dbonus-day--case { background-image: linear-gradient(135deg, rgba(176, 124, 255, 0.14), transparent 70%); }
.dbonus-day--case .dbonus-day__reward { font-size: 0.9rem; }
.dbonus-day--upcoming { opacity: 0.75; }

.dbonus-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 18px; text-align: center; }
.dbonus-cta__text { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--text-soft); }
.dbonus-cta__text .ui-icon { width: 18px; height: 18px; color: var(--success); }
.dbonus-cta__text--locked .ui-icon { color: var(--accent); }
.dbonus-cta__text--warn { width: 100%; justify-content: center; color: var(--accent); }
.dbonus-cta__btn { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 28px; font-size: 1rem; }
.dbonus-cta__btn .ui-icon { width: 20px; height: 20px; }
.dbonus-rules { margin: 0; padding-left: 18px; color: var(--text-soft); font-size: 0.88rem; line-height: 1.6; }

@media (max-width: 900px) {
    .dbonus-days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .dbonus-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dbonus-day--case { grid-column: span 2; }
}
.dbonus-amount { max-width: 120px; }

/* ---------- error journal ---------- */
.cc-errors-toolbar {
    align-items: center;
    justify-content: space-between;
}

.cc-errors-toolbar .cc-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cc-errors {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cc-error {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    justify-content: space-between;
    padding: 14px 16px;
    border-top: 1px solid var(--border);
}

.cc-error:first-child {
    border-top: 0;
}

.cc-error.is-resolved {
    opacity: 0.65;
}

.cc-error__main {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

.cc-error__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.cc-error__title {
    overflow-wrap: anywhere;
}

.cc-error__meta {
    font-size: 0.85rem;
    color: var(--text-muted, #8b93a7);
    overflow-wrap: anywhere;
}

.cc-error__trace summary {
    cursor: pointer;
    font-size: 0.85rem;
}

.cc-error__trace pre {
    max-height: 320px;
    margin: 8px 0 0;
    padding: 10px;
    overflow: auto;
    font-size: 0.75rem;
    white-space: pre;
    border: 1px solid var(--border);
    background: rgba(0, 0, 0, 0.25);
}

.cc-error__actions {
    flex: 0 0 auto;
}

.cc-errors__empty {
    padding: 18px 16px;
}

@media (max-width: 700px) {
    .cc-error {
        flex-direction: column;
    }
}
