/* Admin dashboard layout: admin_dashboard, admin_panel_tabs, admin_panel_card, top grid, section heads, checkboxes, server time card, admin_theme, #api_key_panel, admin_actions */

.admin_dashboard {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 18px;
}
.admin_panel_tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    border-radius: 12px;
    border: 1px solid color-mix(in oklab, var(--t-border) 70%, transparent);
    background: color-mix(in oklab, var(--t-surface-2) 80%, var(--t-bg));
}
.admin_panel_tab {
    flex: 1 1 0;
    min-width: 88px;
    margin: 0;
    padding: 8px 14px;
    border: 1px solid color-mix(in oklab, var(--t-border) 55%, transparent);
    border-radius: 8px;
    background: transparent;
    color: var(--t-muted);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
    box-shadow: none;
    transition: background .15s, color .15s, border-color .15s;
}
.admin_panel_tab:hover {
    color: var(--t-text);
    border-color: color-mix(in oklab, var(--t-border) 85%, transparent);
    background: color-mix(in oklab, var(--t-surface-2) 50%, transparent);
    box-shadow: none;
}
.admin_panel_tab.active {
    border-color: color-mix(in oklab, var(--t-accent) 45%, var(--t-border));
    background: color-mix(in oklab, var(--t-accent) 14%, var(--t-surface-2));
    color: var(--t-text);
    box-shadow: none;
}
.admin_panel_tab.active:hover {
    border-color: color-mix(in oklab, var(--t-accent) 55%, var(--t-border));
    background: color-mix(in oklab, var(--t-accent) 18%, var(--t-surface-2));
    box-shadow: none;
}
.admin_panel_tab_panels {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.admin_panel_tab_panel {
    display: none;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}
.admin_panel_tab_panel.active {
    display: flex;
}
.admin_panel_card {
    padding: 16px;
    border-radius: 14px;
    border: var(--t-panel-border, 1px solid var(--t-border));
    background: color-mix(in oklab, var(--t-surface-2) 76%, var(--t-bg));
    box-shadow: 0 18px 44px -34px color-mix(in oklab, var(--t-bg) 88%, black),
                var(--t-panel-glow, none);
}
.admin_eyebrow {
    margin-bottom: 4px;
    color: var(--t-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.admin_panel_card.admin_top_card {
    padding: 12px;
}
.admin_top_grid {
    display: grid;
    grid-template-columns: minmax(132px, 160px) minmax(250px, 300px) 1fr;
    gap: 12px;
    align-items: center;
}
.admin_top_item {
    min-width: 0;
}
.admin_top_item + .admin_top_item {
    padding-left: 12px;
    border-left: 1px solid color-mix(in oklab, var(--t-border) 62%, transparent);
}
.admin_section_head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.admin_section_title {
    margin: 0;
    color: var(--t-text);
    font-size: 17px;
    line-height: 1.15;
}
.admin_subsection_title {
    margin: 0 0 12px;
    color: var(--t-text);
    font-size: 17px;
    line-height: 1.15;
}
.admin_steps_head {
    align-items: center;
}
.admin_api_keys_head {
    align-items: center;
}
.admin_diagnostics_head,
.admin_cron_diag_head,
.admin_api_cache_head {
    align-items: center;
}
.admin_diagnostics_actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px 12px;
    min-width: 0;
}
.admin_diagnostics_actions .admin_cache_meta {
    margin: 0;
    text-align: right;
    white-space: nowrap;
}
.admin_steps_head_main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    min-width: 0;
}
.steps_hide_skip_label {
    margin: 0;
}
.admin_ui_check {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    color: var(--t-text);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
.admin_ui_check input {
    position: absolute;
    opacity: 0;
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
}
.admin_ui_check span {
    position: relative;
    display: inline-flex;
    align-items: center;
    line-height: 1.3;
    padding-left: 24px;
    color: var(--t-text);
}
.admin_ui_check span::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border-radius: 4px;
    border: 1px solid color-mix(in oklab, var(--t-border) 85%, var(--t-text));
    background: color-mix(in oklab, var(--t-bg) 55%, var(--t-surface-2));
    box-sizing: border-box;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.admin_ui_check input:checked + span::before {
    background: color-mix(in oklab, var(--t-accent) 72%, var(--t-bg));
    border-color: color-mix(in oklab, var(--t-accent) 60%, var(--t-border));
    box-shadow: 0 0 0 2px color-mix(in oklab, var(--t-accent) 16%, transparent);
}
.admin_ui_check input:checked + span::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 50%;
    width: 4px;
    height: 8px;
    margin-top: -1px;
    border: solid color-mix(in oklab, var(--t-bg) 10%, #fff);
    border-width: 0 2px 2px 0;
    transform: translateY(-60%) rotate(45deg);
}
.admin_ui_check input:focus-visible + span::before {
    outline: 2px solid color-mix(in oklab, var(--t-accent) 45%, transparent);
    outline-offset: 2px;
}
.admin_ui_check:hover span::before {
    border-color: color-mix(in oklab, var(--t-accent) 38%, var(--t-border));
}
.steps_hide_skip_label span {
    color: var(--t-muted);
}
.admin_refresh_btn:disabled {
    cursor: wait;
    opacity: .7;
}
.admin_cache_meta {
    color: var(--t-muted);
    font-size: 11px;
}
.admin_server_time_card #server_date_time {
    height: auto;
}
.admin_server_time_card #server_date_time .title {
    margin-bottom: 4px;
    color: var(--t-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.admin_server_time_card #server_date_time .date_time {
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-start;
    gap: 8px;
    color: var(--t-accent);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}
.admin_server_time_card #server_date_time .date:after {
    content: "·";
    margin-left: 8px;
    color: var(--t-muted);
}

.admin_theme_row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: flex-end;
}
.admin_theme_field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.admin_theme_label {
    font-size: 11px;
    opacity: 0.85;
    color: var(--t-text);
}
.admin_theme_select {
    min-width: 180px;
    padding: 8px 10px;
    border-radius: 9px;
    background: color-mix(in oklab, var(--t-surface-2) 88%, var(--t-bg));
}
.admin_theme_save {
    white-space: nowrap;
}
.admin_theme_msg {
    font-size: 12px;
    color: var(--t-msg-error);
}
.admin_theme_msg.ok {
    color: var(--t-msg-ok);
}
.admin_top_card .admin_theme_field {
    flex: 1 1 auto;
    min-width: 0;
}
.admin_top_card .admin_theme_label {
    color: var(--t-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    opacity: 1;
    text-transform: uppercase;
}
.admin_top_card .admin_theme_select {
    height: 32px;
    padding: 5px 9px;
}
.admin_top_card .admin_theme_save {
    height: 32px;
}
.admin_top_card .admin_theme_msg {
    align-self: center;
    min-width: 0;
    font-size: 11px;
}

/* ── API key panel ───────────────────────────────────────────────────────── */

#api_key_panel {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
    min-width: 0;
}

#api_key_panel .api_key {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 0;
    min-width: 0;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid color-mix(in oklab, var(--t-border) 60%, transparent);
    background: color-mix(in oklab, var(--t-surface-2) 70%, var(--t-bg));
    font-size: 12px;
}

/* status dot */
#api_key_panel .api_key .ak_dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: color-mix(in oklab, var(--t-muted) 60%, transparent);
}
#api_key_panel .api_key.ok .ak_dot {
    background: var(--t-msg-ok, #4caf50);
    box-shadow: 0 0 5px color-mix(in oklab, var(--t-msg-ok, #4caf50) 50%, transparent);
}
#api_key_panel .api_key.error .ak_dot {
    background: var(--t-msg-error, #e05);
    box-shadow: 0 0 5px color-mix(in oklab, var(--t-msg-error, #e05) 40%, transparent);
}

/* description */
#api_key_panel .api_key .ak_desc {
    color: var(--t-text);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    flex: 0 1 auto;
    max-width: 42%;
}

/* key snippet */
#api_key_panel .api_key .ak_key {
    flex: 1 1 0;
    min-width: 0;
    color: var(--t-muted);
    font-size: 11px;
    font-family: monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* check button */
#api_key_panel .api_key .ak_check {
    flex-shrink: 0;
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid color-mix(in oklab, var(--t-border) 70%, transparent);
    background: color-mix(in oklab, var(--t-surface-2) 90%, var(--t-bg));
    color: var(--t-muted);
    font-size: 11px;
    font-weight: 700;
    user-select: none;
}
#api_key_panel .api_key .ak_check:hover {
    border-color: color-mix(in oklab, var(--t-accent) 55%, var(--t-border));
    background: color-mix(in oklab, var(--t-accent) 12%, transparent);
    color: var(--t-text);
}
#api_key_panel .api_key .ak_check.true {
    border-color: color-mix(in oklab, var(--t-msg-ok, #4caf50) 55%, var(--t-border));
    background: color-mix(in oklab, var(--t-msg-ok, #4caf50) 12%, transparent);
    color: var(--t-msg-ok, #4caf50);
}
#api_key_panel .api_key .ak_check.error {
    border-color: color-mix(in oklab, var(--t-msg-error, #e05) 55%, var(--t-border));
    background: color-mix(in oklab, var(--t-msg-error, #e05) 12%, transparent);
    color: var(--t-msg-error, #e05);
}
@media (max-width: 880px) {
    .admin_top_grid {
        grid-template-columns: 1fr;
    }
    .admin_top_item + .admin_top_item {
        padding-left: 0;
        padding-top: 10px;
        border-left: 0;
        border-top: 1px solid color-mix(in oklab, var(--t-border) 62%, transparent);
    }
}


/* ── Admin actions / moderation ──────────────────────────────────────────── */

/* Menubar (3 nice-select) */
.admin_top_card .admin_actions_card {
    display: flex;
    align-items: center;
}
.admin_actions_menubar {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}
.admin_actions_menubar .nice-select .list {
    right: auto;
    width: max-content;
    min-width: 100%;
}
.admin_actions_menubar .nice-select .option.disabled:first-child {
    display: none;
}

