/* Единые кнопки действий в таблицах */

/* Карточки и таблицы дизайн-системы */
.site-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.site-modal-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .6); }
.site-modal-window {
    position: relative;
    z-index: 1;
    width: calc(100% - 30px);
    max-width: 400px;
    padding: 24px;
    border: 1px solid var(--design-border);
    border-radius: 12px;
    background: var(--design-card);
    color: var(--design-text);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}
.site-modal-title { margin-bottom: 10px; font-size: 16px; font-weight: 600; }
.site-modal-message { margin-bottom: 22px; color: var(--design-text-secondary); font-size: 13px; line-height: 1.55; }
.site-modal-actions { display: flex; justify-content: flex-end; gap: 10px; }
.site-modal-actions button { min-width: 110px; }
.site-modal-window--info{width:min(960px,calc(100% - 30px));max-width:none;max-height:calc(100vh - 40px);padding:0;display:flex;flex-direction:column;overflow:hidden}
.site-modal-info-title{margin:0;padding:20px 24px;border-bottom:1px solid var(--design-border)}
.site-modal-info-content{min-height:0;overflow:auto;padding:20px 24px;color:var(--design-text-secondary);font-size:13px;line-height:1.55}
.site-modal-info-actions{padding:16px 24px;border-top:1px solid var(--design-border)}
.site-modal-cancel {
    height: 38px;
    padding: 10px 20px;
    border: 1px solid var(--gray-button-border);
    border-radius: 8px;
    background: var(--gray-button-bg);
    color: var(--text-color);
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.site-modal-cancel:hover { background: var(--gray-button-hover); border-color: var(--gray-button-border); }

.in-input-button,
.password-hold-button,
.in-input-button:hover,
.in-input-button:active {
    width: auto;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--in-input-button-border);
    border-radius: 5px;
    background: var(--in-input-button-bg);
    color: var(--text-color);
    font-size: 12px;
    font-weight: 600;
    transform: none;
}
.in-input-button:hover,
.password-hold-button:hover,
.in-input-button:active { background: var(--in-input-button-hover); }

.ds-card {
    width: 1140px;
    max-width: 100%;
    overflow: hidden;
    border: 1px solid var(--design-border);
    border-radius: 12px;
    background: var(--design-card);
    color: var(--design-text);
}

.ds-card__zone-title {
    margin: 0;
    padding: 12px 20px;
    color: var(--design-text);
    font-size: 13px;
}

.data-table-scroll {
    overflow-x: auto;
    border: 1px solid var(--design-border);
}

.ds-data-table {
    width: 100%;
    table-layout: auto;
    border-collapse: collapse;
    background: var(--design-card);
    color: var(--design-text);
    font-size: 13px;
}

.ds-data-table th,
.ds-data-table td {
    padding: 12px;
    border-right: 0;
    border-bottom: 1px solid var(--design-border);
    vertical-align: middle;
    white-space: nowrap;
}

.ds-data-table th {
    padding: 10px 12px;
    border-bottom-width: 2px;
    background: var(--design-card-soft);
    color: var(--design-text-secondary);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
}

.ds-data-table tbody tr { transition: background-color .15s; }
.ds-data-table tbody tr:hover { background: var(--design-card-soft); }
.ds-data-table tbody tr:last-child td { border-bottom: 0; }
.ds-data-table th:not(:first-child),
.ds-data-table td:not(:first-child) { text-align: right; }

.ds-compact-card {
    display: flex;
    min-width: 0;
    min-height: 88px;
    flex-direction: column;
    justify-content: center;
    padding: 16px;
    border: 1px solid var(--design-border);
    border-radius: 12px;
    background: var(--design-card);
}

.ds-compact-card > span {
    color: var(--design-text-muted);
    font-size: 11px;
    font-weight: 600;
}

.ds-compact-card > strong {
    margin-top: 8px;
    color: var(--design-text);
    font-size: 20px;
    font-variant-numeric: tabular-nums;
}

.strategy-cash-action,
.strategy-cash-action:hover,
.strategy-cash-action:active {
    display:inline-flex;
    width:24px;
    min-width:24px;
    height:24px;
    min-height:24px;
    flex:0 0 24px;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:4px;
    background:var(--table-action-bg);
    color:var(--table-action-color);
    opacity:1;
    transform:none;
    transition:background-color .15s,color .15s;
}
.strategy-cash-action::before { content:''; width:12px; height:12px; background:currentColor; mask-position:center; mask-repeat:no-repeat; mask-size:contain; }
.strategy-cash-action-edit { --table-action-bg:rgba(230,189,63,.18); --table-action-color:#8a6800; --table-action-hover:#e6bd3f; --table-action-hover-color:#15171a; }
.strategy-cash-action-edit::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.3 27.1'%3E%3Cpath d='M26.9 27.1H14.2a1.4 1.4 0 1 1 0-2.8h12.8a1.4 1.4 0 1 1-.1 2.8zM1.4 27.1a1.4 1.4 0 0 1-1.4-1.7l1.4-5.7c.1-.2.2-.5.4-.7L19.5 1.3a4.45 4.45 0 0 1 6.3 6.3L8.1 25.2c-.2.2-.4.3-.7.4L1.8 27l-.4.1zm2.7-6.4-.7 3 3-.8L23.8 5.5a1.56 1.56 0 0 0-2.2-2.2L4.1 20.7z'/%3E%3C/svg%3E"); }
.strategy-cash-action-comment { --table-action-bg:rgba(42,120,214,.14); --table-action-color:#2168b8; --table-action-hover:#2a78d6; --table-action-hover-color:#fff; cursor:help; }
.strategy-cash-action-comment::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.3 28.3'%3E%3Cpath d='M.9 28.3a.9.9 0 0 1-.9-.9V6.5A6.5 6.5 0 0 1 6.5 0h15.3a6.5 6.5 0 0 1 6.5 6.5v11.1a6.5 6.5 0 0 1-6.5 6.5H8.2l-6.7 4-.6.2zM6.5 1.9a4.6 4.6 0 0 0-4.6 4.6v19.3l5.6-3.3.5-.1h13.9a4.6 4.6 0 0 0 4.6-4.6V6.5a4.6 4.6 0 0 0-4.6-4.6H6.5z'/%3E%3C/svg%3E"); }
.strategy-cash-action-delete { --table-action-bg:rgba(239,68,68,.14); --table-action-color:#dc2626; --table-action-hover:#dc2626; --table-action-hover-color:#fff; }
.strategy-cash-action-delete::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.3 28.3'%3E%3Cpath d='M17 14.2 27.8 3.5a2.05 2.05 0 0 0-2.9-2.9L14.2 11.3 3.5.6a2.05 2.05 0 0 0-2.9 2.9l10.7 10.7L.6 24.9a2.05 2.05 0 0 0 2.8 2.8L14.2 17l10.7 10.7a2.05 2.05 0 0 0 2.8-2.8L17 14.2z'/%3E%3C/svg%3E"); }
.strategy-cash-action:hover:not(:disabled) { background:var(--table-action-hover); color:var(--table-action-hover-color); }
.strategy-cash-action:focus-visible { outline:2px solid var(--design-accent); outline-offset:2px; }
html[data-theme="dark"] .strategy-cash-action-edit { --table-action-bg:rgba(255,216,93,.16); --table-action-color:#ffd85d; --table-action-hover:#ffd85d; }
html[data-theme="dark"] .strategy-cash-action-comment { --table-action-bg:rgba(96,165,250,.16); --table-action-color:#60a5fa; --table-action-hover:#2a78d6; }
html[data-theme="dark"] .strategy-cash-action-delete { --table-action-bg:rgba(239,68,68,.16); --table-action-color:#ef4444; --table-action-hover:#ef4444; }

#cash-usd-rate[readonly] {
    background: var(--surface-soft);
}

#cash-available {
    margin-top: 6px;
}


.strategy-info-title { color: var(--text-muted); }
html[data-theme="dark"] .strategy-wizard-step:disabled { border: 0; background: transparent; color: var(--text-muted); opacity: 1; }

/* ------------------------------------------
   Информация о холдинга
   ------------------------------------------ */

.strategy-info {
    display: flex;
    gap: 45px;
}

.strategy-info-item {
    min-width: 140px;
}

.strategy-info-title {
    margin-bottom: 5px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

.strategy-info-value {
    color: var(--text-color);
    font-size: 15px;
}

.strategy-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.header-context-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: var(--layout-side-menu-width);
}

.header-context-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.header-back-button {
    flex: 0 0 38px;
}

.header-back-button:focus-visible {
    outline: 2px solid var(--design-accent);
    outline-offset: 2px;
}

.header-back-icon {
    position: relative;
    width: 20px;
    height: 20px;
}

.header-back-icon::before,
.header-back-icon::after {
    position: absolute;
    top: 50%;
    left: 5px;
    width: 11px;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
    content: '';
    transform-origin: left center;
}

.header-back-icon::before {
    transform: translateY(-1px) rotate(-45deg);
}

.header-back-icon::after {
    transform: translateY(-1px) rotate(45deg);
}


/* ------------------------------------------
   Движение денежных средств
   ------------------------------------------ */

.strategy-cash-summary.money-assets-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.strategy-cash-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.strategy-cash-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 18px;
}

.ds-data-table td.ds-data-table-empty {
    padding: 28px;
    color: var(--design-text-secondary);
    text-align: center;
}


.strategy-cash-form-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.strategy-cash-form-actions button {
    width: auto;
}

/* Утверждённая геометрия простых форм */
.form-section {
    box-sizing: border-box;
    padding: 24px;
    border: 1px solid var(--design-border);
    border-radius: 12px;
    background: var(--design-card);
}

.form-section-title {
    margin: 0 0 20px;
    color: var(--design-text);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
}

.form-grid {
    display: grid;
    gap: 18px 16px;
}

.form-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.form-field { min-width: 0; }
.form-field--wide { grid-column: 1 / -1; }
.form-field--label-wrap { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.form-field--label-wrap > span { color: var(--design-text-secondary); font-size: 13px; font-weight: 500; line-height: 1.4; }
.form-field > label {
    display: block;
    margin-bottom: 6px;
    color: var(--design-text-secondary);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}

.form-field > input:not([type="hidden"]),
.form-field > textarea,
.form-field--label-wrap > input:not([type="hidden"]),
.form-field--label-wrap > textarea {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid var(--design-border);
    border-radius: 8px;
    background: var(--design-card-soft);
    color: var(--design-text);
    font: 14px Inter, sans-serif;
    outline: none;
    transition: border-color .15s, box-shadow .15s, background-color .15s, color .15s, opacity .15s;
}

.form-field > input:not([type="hidden"]),
.form-field--label-wrap > input:not([type="hidden"]) { height: 38px; padding: 0 12px; }
.form-field > textarea,
.form-field--label-wrap > textarea { min-height: 96px; padding: 10px 12px; line-height: 1.45; resize: vertical; }
.form-field > input::placeholder,
.form-field > textarea::placeholder { color: var(--design-text-muted); opacity: 1; }
.form-field > input:hover:not(:focus):not(:disabled):not([readonly]),
.form-field > textarea:hover:not(:focus):not(:disabled):not([readonly]),
.form-field--label-wrap > input:hover:not(:focus):not(:disabled):not([readonly]),
.form-field--label-wrap > textarea:hover:not(:focus):not(:disabled):not([readonly]) { border-color: var(--design-text-muted); }
.form-field > input:focus,
.form-field > textarea:focus,
.form-field--label-wrap > input:focus,
.form-field--label-wrap > textarea:focus { border-color: var(--design-accent); box-shadow: 0 0 0 2px rgba(255, 216, 93, .12); }
.form-field--error > input,
.form-field--error > textarea { border-color: var(--design-red); }
.form-field--success > input,
.form-field--success > textarea { border-color: var(--design-green); }
.form-field > input:disabled,
.form-field > textarea:disabled,
.form-field--label-wrap > input:disabled,
.form-field--label-wrap > textarea:disabled { cursor: not-allowed; opacity: .55; }
.form-field > input[readonly],
.form-field > textarea[readonly],
.form-field--label-wrap > input[readonly],
.form-field--label-wrap > textarea[readonly] { background: var(--design-card); color: var(--design-text-secondary); cursor: default; }

.form-help { margin-top: 6px; color: var(--design-text-secondary); font-size: 13px; line-height: 1.4; }
.form-field--error > .form-help { color: var(--design-red); }
.form-field--success > .form-help { color: var(--design-green); }

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

.form-actions .ui-button { width: auto; }
.form-grid > .form-actions { grid-column: 1 / -1; }

/* Утверждённые чекбоксы, радио и группы кнопок */
.ds-checkbox,
.ds-radio { position:relative; display:flex; align-items:center; gap:10px; color:var(--design-text); font-size:13px; cursor:pointer; user-select:none; }
.ds-checkbox input,
.ds-radio input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.checkbox-box,
.radio-circle { display:flex; width:18px; height:18px; flex:0 0 18px; align-items:center; justify-content:center; border:1.5px solid var(--design-border); background:var(--design-card-soft); transition:all .15s; }
.checkbox-box { border-radius:4px; }
.radio-circle { border-radius:50%; }
.ds-checkbox input:checked + .checkbox-box { border-color:var(--design-accent); background:var(--design-accent); }
.ds-checkbox input:checked + .checkbox-box::after { width:5px; height:9px; margin-top:-2px; border:solid #15171a; border-width:0 2px 2px 0; content:""; transform:rotate(45deg); }
.ds-radio input:checked + .radio-circle { border-color:var(--design-accent); border-width:5px; }
.ds-checkbox input:focus-visible + .checkbox-box,
.ds-radio input:focus-visible + .radio-circle { outline:2px solid var(--design-accent); outline-offset:2px; }

.ds-button-group { display:flex; flex-wrap:nowrap; gap:8px; }
.ds-button-group button,
.ds-button-group button:hover,
.ds-button-group button:active { height:38px; min-height:38px; padding:0 14px; border:1px solid var(--design-border); border-radius:8px; background:var(--design-card-soft); color:var(--design-text-secondary); font:500 13px/1 Inter,sans-serif; cursor:pointer; transform:none; }
.ds-button-group button:hover:not(:disabled) { border-color:var(--design-accent); color:var(--design-text); }
.ds-button-group button.is-active { border-color:var(--design-accent); background:var(--design-accent); color:var(--design-accent-text); }
.ds-button-group button:focus-visible { outline:2px solid var(--design-accent); outline-offset:2px; }
.ds-button-group button:disabled { cursor:not-allowed; opacity:.5; }

/* Утверждённый Dropdown */
.ds-select { position: relative; width: 100%; }
.ds-select-native { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.ds-select-trigger,
.ds-select-trigger:hover,
.ds-select-trigger:active {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: 38px;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--design-border);
    border-radius: 8px;
    background: var(--design-card-soft);
    color: var(--design-text);
    font: 14px Inter, sans-serif;
    text-align: left;
    outline: none;
    cursor: pointer;
    transform: none;
    filter: none;
}
.ds-select-trigger:hover:not(:focus):not(:disabled),
.ds-select.is-open .ds-select-trigger { border-color: var(--design-text-muted); }
.ds-select-trigger:focus-visible { border-color: var(--design-accent); box-shadow: 0 0 0 2px rgba(255, 216, 93, .12); }
.ds-select-trigger:disabled { cursor: not-allowed; opacity: .55; }
.ds-select-trigger > span { display: flex; min-width: 0; align-items: center; gap: 8px; overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.ds-select-trigger > svg { flex: 0 0 14px; width: 14px; height: 14px; fill: none; stroke: var(--design-text-secondary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s; }
.ds-select.is-open { z-index: 30; }
.ds-select.is-open .ds-select-trigger > svg { transform: rotate(180deg); }
.ds-select-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    display: grid;
    gap: 2px;
    max-height: 220px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 4px;
    border: 1px solid var(--design-border);
    border-radius: 8px;
    background: var(--design-card-soft);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}
.ds-select-menu[hidden] { display: none; }
.ds-select:not(.is-open) .ds-select-menu { display: none; }
.ds-select-option,
.ds-select-option:hover,
.ds-select-option:active {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
    height: 36px;
    min-height: 36px;
    padding: 0 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--design-text);
    font: 14px Inter, sans-serif;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    transform: none;
    filter: none;
}
.ds-select-option:hover,
.ds-select-option:focus-visible { background: var(--design-border); outline: none; }
.ds-select-option.is-selected,
.ds-select-option[aria-selected="true"] { background: rgba(255, 216, 93, .12); color: #b88600; }
html[data-theme="dark"] .ds-select-option.is-selected,
html[data-theme="dark"] .ds-select-option[aria-selected="true"] { color: var(--design-accent); }
.ds-select-option:disabled { cursor: not-allowed; opacity: .55; }
.ds-select-trigger img,
.ds-select-option img { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 50%; object-fit: contain; }

@media (max-width: 700px) {
    .form-section { padding: 16px; }
    .form-grid--2,
    .form-grid--3 { grid-template-columns: 1fr; }
}

.money-manage-page .ds-data-table th:last-child,
.money-manage-page .ds-data-table td:last-child,
.manual-tool-page .ds-data-table th:last-child,
.manual-tool-page .ds-data-table td:last-child {
    width: 76px;
    min-width: 76px;
    padding-left: 6px;
    padding-right: 6px;
    text-align: center;
}

.strategy-cash-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.strategy-cash-action-comment::after {
    content: attr(data-tooltip);
    position: absolute;
    z-index: 1000;
    left: 50%;
    bottom: calc(100% + 8px);
    width: max-content;
    max-width: 320px;
    padding: 8px 10px;
    border-radius: 6px;
    background: #222;
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    white-space: normal;
    text-align: left;
    transform: translateX(-50%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.strategy-cash-action-comment:hover::after,
.strategy-cash-action-comment:focus::after {
    opacity: 1;
    visibility: visible;
}

/* ПРОТОКОЛЫ — ОБЩИЕ ЭЛЕМЕНТЫ */
.protocol-summary { display: grid; gap: 18px; margin-bottom: 20px; }
.protocol-summary-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.protocol-summary-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.protocol-summary-item { min-width: 0; padding: 18px 20px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--surface-bg); }
.protocol-summary-label { display: block; margin-bottom: 6px; color: var(--text-muted); font-size: 13px; font-weight: 600; }
.protocol-summary-value { color: var(--text-color); font-size: 23px; font-weight: 700; }
@media (max-width: 900px) { .protocol-summary-3, .protocol-summary-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .protocol-summary-3, .protocol-summary-4 { grid-template-columns: 1fr; } }

/* CCOS Tools — общие компоненты актуальной дизайн-системы */

/* Кнопки */

.ui-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    height: 38px;
    min-height: 38px;
    padding: 0 20px;
    border: 1px solid transparent;
    border-radius: 8px;
    font: 500 13px/1 Inter, sans-serif;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, color .15s;
}

.ui-button--primary {
    border-color: #ffd85d;
    background: #ffd85d;
    color: #15171a;
}

.ui-button--primary:hover:not(:disabled) {
    border-color: #e6bd3f;
    background: #e6bd3f;
    color: #15171a;
}

.ui-button--alternative {
    border-color: #ffd85d;
    background: rgba(255, 216, 93, .2);
    color: #6d5400;
}

.ui-button--alternative:hover:not(:disabled) {
    border-color: #e6bd3f;
    background: rgba(230, 189, 63, .2);
    color: #584300;
}

.ui-button--secondary {
    border-color: #e4e4e7;
    background: #e4e4e7;
    color: #1a1a1a;
}

.ui-button--secondary:hover:not(:disabled) {
    border-color: #d5d2d2;
    background: #d5d2d2;
    color: #1a1a1a;
}

.ui-button--danger {
    border-color: #ef4444;
    background: #ef4444;
    color: #fff;
}

.ui-button--danger:hover:not(:disabled) {
    border-color: #dc2626;
    background: #dc2626;
    color: #fff;
}

.ui-button--tool-add { border-color:#145099; background:#145099; color:#fff; }
.ui-button--tool-add:hover:not(:disabled) { border-color:#103f7a; background:#103f7a; color:#fff; }
.ui-button--tool-manage { border-color:#056705; background:#056705; color:#fff; }
.ui-button--tool-manage:hover:not(:disabled) { border-color:#044f04; background:#044f04; color:#fff; }
.ui-button--tool-view { border-color:#594cb7; background:#594cb7; color:#fff; }
.ui-button--tool-view:hover:not(:disabled) { border-color:#473d92; background:#473d92; color:#fff; }

.ui-button--text {
    height: auto;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #666;
}

.ui-button--text:hover:not(:disabled) {
    background: transparent;
    color: #333;
    text-decoration: underline;
}

.ui-button--icon {
    width: 38px;
    min-width: 38px;
    padding: 0;
}

.ui-button--compact {
    height: 30px;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 15px;
    font-size: 12px;
}

.ui-button--field {
    height: 30px;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 5px;
    font-size: 12px;
}

.ui-button:focus-visible {
    outline: 2px solid #ffd85d;
    outline-offset: 2px;
}

.ui-button:active:not(:disabled) {
    transform: translateY(1px);
}

.ui-button:disabled {
    opacity: 1;
    cursor: not-allowed;
    transform: none;
}

@keyframes ui-button-loading-spin {
    to { transform: rotate(360deg); }
}

@keyframes skeleton-shimmer {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

.ui-button.is-loading::before {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    box-sizing: border-box;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: ui-button-loading-spin .7s linear infinite;
    content: '';
}

html[data-theme="dark"] .ui-button--primary {
    border-color: #e6bd3f;
    background: #e6bd3f;
    color: #15171a;
}

html[data-theme="dark"] .ui-button--primary:hover:not(:disabled) {
    border-color: #ffd85d;
    background: #ffd85d;
}

html[data-theme="dark"] .ui-button--alternative {
    border-color: #e6bd3f;
    background: rgba(230, 189, 63, .2);
    color: #e6bd3f;
}

html[data-theme="dark"] .ui-button--alternative:hover:not(:disabled) {
    border-color: #ffd85d;
    background: rgba(255, 216, 93, .2);
    color: #ffd85d;
}

html[data-theme="dark"] .ui-button--secondary {
    border-color: #313641;
    background: #313641;
    color: #e2e8f0;
}

html[data-theme="dark"] .ui-button--secondary:hover:not(:disabled) {
    border-color: #434a59;
    background: #434a59;
    color: #e2e8f0;
}

html[data-theme="dark"] .ui-button--danger {
    border-color: #dc2626;
    background: #dc2626;
}

html[data-theme="dark"] .ui-button--danger:hover:not(:disabled) {
    border-color: #ef4444;
    background: #ef4444;
}

html[data-theme="dark"] .ui-button--tool-add { border-color:#145099; background:#145099; }
html[data-theme="dark"] .ui-button--tool-add:hover:not(:disabled) { border-color:#1b66bf; background:#1b66bf; }
html[data-theme="dark"] .ui-button--tool-manage { border-color:#056705; background:#056705; }
html[data-theme="dark"] .ui-button--tool-manage:hover:not(:disabled) { border-color:#078b07; background:#078b07; }
html[data-theme="dark"] .ui-button--tool-view { border-color:#594cb7; background:#594cb7; }
html[data-theme="dark"] .ui-button--tool-view:hover:not(:disabled) { border-color:#7161d6; background:#7161d6; }

html[data-theme="dark"] .ui-button--text {
    color: #94a3b8;
}

html[data-theme="dark"] .ui-button--text:hover:not(:disabled) {
    color: #e2e8f0;
}

/* Сообщения внутри блоков */

.guide-notification-stack { display: grid; gap: 10px; }
.guide-notification { display: flex; min-width: 0; height: 38px; align-items: center; gap: 10px; overflow: hidden; padding: 0 12px; border-left: 3px solid currentColor; border-radius: 7px; font-size: 12px; line-height: 16px; }
.guide-notification[hidden] { display: none; }
.guide-notification-icon { display: grid; width: 16px; height: 16px; flex: 0 0 16px; place-items: center; border-radius: 3px; color: #fff; font-size: 11px; font-weight: 700; }
.guide-notification-text { min-width: 0; overflow: hidden; color: var(--design-text); text-overflow: ellipsis; white-space: nowrap; }
.guide-notification--warning { background: rgba(245, 158, 11, .12); color: #d88700; }
.guide-notification--success { background: rgba(16, 185, 129, .12); color: #10b981; }
.guide-notification--error { background: rgba(239, 68, 68, .12); color: #ef4444; }
.guide-notification--info { background: rgba(42, 120, 214, .12); color: #2a78d6; }
.guide-notification--warning .guide-notification-icon { background: #d88700; }
.guide-notification--success .guide-notification-icon { background: #10b981; }
.guide-notification--error .guide-notification-icon { background: #ef4444; }
.guide-notification--info .guide-notification-icon { background: #2a78d6; }

/* Всплывающие сообщения */

.guide-toast-container { position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: grid; width: min(340px, calc(100vw - 40px)); gap: 10px; }
.guide-toast { display: flex; width: 100%; max-width: 340px; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--design-border); border-left: 3px solid currentColor; border-radius: 9px; background: var(--design-card); box-shadow: 0 10px 30px rgba(0, 0, 0, .14); color: var(--design-text); animation: guide-toast-in .25s ease; }
.guide-toast-icon { flex: 0 0 auto; font-weight: 700; }
.guide-toast--success, .guide-toast--success .guide-toast-icon { color: #10b981; }
.guide-toast--error, .guide-toast--error .guide-toast-icon { color: #ef4444; }
.guide-toast--warning, .guide-toast--warning .guide-toast-icon { color: #d88700; }
.guide-toast--info, .guide-toast--info .guide-toast-icon { color: #2a78d6; }
.guide-toast > div { display: grid; flex: 1; min-width: 0; gap: 3px; }
.guide-toast strong { color: var(--design-text); font-size: 12px; }
.guide-toast div span { color: var(--design-text-secondary); font-size: 11px; }
.guide-toast > button { width: 20px; min-width: 20px; height: 20px; min-height: 20px; padding: 0; border: 0; background: transparent; color: var(--design-text-muted); font-size: 16px; cursor: pointer; }
.guide-toast.is-hiding { opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; }
@keyframes guide-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 620px) {
    .guide-toast-container { right: 12px; bottom: 12px; width: calc(100vw - 24px); }
}
