/* constructorWidgets.css — стили виджетов Конструктора (сканер памяти, база адресов, конструктор челленджей)
   Размеры шрифта заданы в em — они масштабируются вместе с «Размером шрифта (px)» из настроек виджета
   (база = font-size контейнера .widget-content, по умолчанию 8px).
   ИСКЛЮЧЕНИЕ: поля ввода .cw-input/.cw-select — 20px по умолчанию (не масштабируются от темы/виджета),
   но размер можно переопределить через редактор элементов (deep-edit). */

/* Примечание: 1em  = 100% базового размера, 1.25em = 125%, 1.125em = 112.5%, 0.875em = 87.5% */

.cw-scroll {
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    box-sizing: border-box;
    padding: 6px;
}

.cw-section {
    border: 2px solid var(--widget-border-color, #ff00ff);
    border-radius: 4px;
    margin-bottom: 8px;
    background: var(--widget-panel-bg, #130324);
}

.cw-section > summary {
    cursor: pointer;
    padding: 6px 8px;
    font-size: 1.25em;
    color: var(--widget-header-font-color, #ffcc00);
    user-select: none;
    list-style: none;
}
.cw-section > summary::-webkit-details-marker { display: none; }

.cw-body {
    padding: 6px;
    border-top: 1px dashed var(--widget-border-color, #ff00ff);
}

.cw-row {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.cw-input, .cw-select {
    background: var(--widget-bg-color, #000);
    color: var(--widget-font-color, #fff);
    border: 1px solid var(--widget-border-color, #555);
    padding: 3px 5px;
    font-family: var(--widget-font-family, 'Play'), monospace;
    font-size: 20px; /* 20px по умолчанию — можно переопределить через редактор элементов (deep-edit) */
    min-width: 40px;
    box-sizing: border-box;
}
/* Поля ввода/селекты конструктора — всегда 20px по умолчанию.
   Перебивает `.dashboard-widget-content input { font-size: inherit }` из style.css
   (одинаковая специфичность, этот файл подключается позже). Инлайн-правки из
   редактора элементов по-прежнему имеют приоритет — редактирование работает. */
.dashboard-widget-content .cw-input,
.dashboard-widget-content .cw-select {
    font-size: 20px;
}
.cw-input { flex: 1 1 auto; }
.cw-input.wide { width: 100%; }

.cw-btn {
    background: var(--widget-panel-bg, #222);
    color: var(--widget-header-font-color, #ffcc00);
    border: 1px solid var(--widget-header-font-color, #ffcc00);
    padding: 4px 8px;
    font-family: var(--widget-font-family, 'Play'), monospace;
    font-size: 1em;
    cursor: pointer;
    white-space: nowrap;
}
.cw-btn:hover { filter: brightness(1.35); }
.cw-btn.primary { background: var(--widget-border-color, #ff00ff); border-color: var(--widget-border-color, #ff00ff); color: #fff; }
.cw-btn.danger { background: var(--widget-danger, #ff0055); border-color: var(--widget-danger, #ff0055); color: #fff; }
.cw-btn.small { padding: 2px 5px; font-size: 0.875em; }

.cw-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1em;
}
.cw-table th, .cw-table td {
    border: 1px solid var(--widget-border-color, #444);
    padding: 3px 4px;
    text-align: left;
    vertical-align: top;
    word-break: break-word;
}
.cw-table th {
    background: var(--widget-panel-bg, #1a0530);
    color: var(--widget-header-font-color, #ffcc00);
    font-weight: normal;
}
.cw-table td.addr { color: var(--widget-success, #00ff66); white-space: nowrap; }
.cw-table td .hex { color: var(--widget-success, #00ff66); }
.cw-table td .dec { color: #888; }

.cw-ok { color: var(--widget-success, #00ff66); }
.cw-bad { color: var(--widget-danger, #ff6666); }
.cw-frozen { color: var(--widget-border-color, #ff00ff); }

.cw-badge {
    display: inline-block;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 0.875em;
    border: 1px solid var(--widget-border-color, #555);
    color: var(--widget-font-color, #ccc);
}

.cw-cand-count {
    font-size: 1.125em;
    color: var(--widget-success, #00ff66);
    margin: 4px 0;
}

.cw-note {
    font-size: 1em;
    color: var(--widget-font-color, #888);
    margin: 3px 0;
}

.cw-live-banner {
    border: 2px solid var(--widget-success, #00ff66);
    background: #001a0a;
    padding: 8px;
    margin: 6px 0;
    color: var(--widget-success, #00ff66);
    font-size: 1.25em;
}

.cw-cond-row {
    border: 1px solid var(--widget-border-color, #444);
    border-radius: 3px;
    padding: 4px;
    margin-bottom: 4px;
    background: var(--widget-panel-bg, #0d0018);
}
.cw-cond-row .cw-cond-status { float: right; font-size: 1.25em; }

.cw-game-card {
    border: 2px solid var(--widget-border-color, #444);
    border-radius: 4px;
    padding: 6px;
    margin-bottom: 6px;
    background: var(--widget-panel-bg, #0d0018);
}
.cw-game-card.active { border-color: var(--widget-border-color, #ff00ff); }
.cw-game-card .cw-game-title {
    font-size: 1.125em;
    color: var(--widget-header-font-color, #ffcc00);
    margin-bottom: 4px;
}

.cw-tag { color: var(--widget-accent, #aa44ff); }

.cw-empty {
    color: var(--widget-font-color, #888);
    font-size: 1em;
    padding: 8px;
    text-align: center;
}

/* ============================================================
   Конструктор челленджей — компактный режим (v4)
   Вкладки + сетка полей + карточки условий/записей
   ============================================================ */

/* Вкладки */
.cw-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
.cw-tab {
    background: var(--widget-panel-bg, #1a0530);
    color: var(--widget-header-font-color, #ffcc00);
    border: 1px solid var(--widget-header-font-color, #ffcc00);
    padding: 4px 8px; font-family: var(--widget-font-family, 'Play'), monospace;
    font-size: 1.125em; cursor: pointer; white-space: nowrap;
}
.cw-tab:hover { filter: brightness(1.35); }
.cw-tab.active { background: var(--widget-border-color, #ff00ff); border-color: var(--widget-border-color, #ff00ff); color: var(--widget-bg-color, #fff); }
.cw-tabpanel { display: none; }
.cw-tabpanel.active { display: block; }

/* Конструктор челленджей: вкладки-инструменты (сканер памяти, база адресов)
   занимают всю высоту виджета и скроллятся внутри вкладки. */
.cw-builder-root { display: flex; flex-direction: column; }
#cb-tab-memory.active, #cb-tab-address.active, #cb-tab-saves.active { flex: 1 1 auto; min-height: 0; overflow: auto; }

/* Компактная сетка полей: подпись над полем, колонки растягиваются по ширине */
.cw-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 6px 10px;
    margin-bottom: 6px;
    align-items: end;
}
.cw-field { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cw-field > span { color: var(--widget-font-color, #999); opacity: .85; font-size: 1.625em; line-height: 1.25; white-space: normal; overflow: visible; } /* 13px при базе 8px (вкладка «О Челлендже» — подписи «Название», «Описание», «Общий таймер» и т.д.) */
.cw-field .cw-input, .cw-field .cw-select { width: 100%; flex: none; min-width: 0; }
.cw-field.wide { grid-column: 1 / -1; }
.cw-field.check { flex-direction: row; align-items: center; gap: 4px; padding: 0 0 3px; }
.cw-field.check > span { order: 2; }
.cw-field.check input[type="checkbox"] { margin: 0; }

/* Сетка карточек для условий / записей */
.cw-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 4px;
    margin-bottom: 6px;
}
.cw-cond-card { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 0; }

/* Компактная карточка игры: заголовок слева, кнопки справа, в одну строку */
.cw-game-card { padding: 4px 6px; }
.cw-game-line { display: flex; justify-content: space-between; align-items: center; gap: 6px; flex-wrap: wrap; }
.cw-game-actions { display: flex; gap: 3px; flex-wrap: wrap; }

/* Элементы управления внутри виджета наследуют шрифт виджета, а не глобальные
   стили страницы (style.css задаёт button/select/input → 'Press Start 2P'). */
.widget-content button,
.widget-content select,
.widget-content input,
.widget-content textarea {
    font-family: inherit;
}
