/* Blacklist: scoped layout; shared tokens own colors, controls and Kendo behavior. */
.blacklist-page { min-width: 0; }
.blacklist-register {
    min-width: 0;
}
.blacklist-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding: 0 0 16px;
}
.blacklist-search { display: flex; align-items: center; gap: 12px; max-width: 100%; }
.blacklist-search .form-label { margin: 0; white-space: nowrap; }
.blacklist-search .admin-search { width: 320px; max-width: 100%; }
.blacklist-page #Grid {
    border: 1px solid var(--mkp-border);
    border-radius: var(--mkp-radius-lg);
    background: var(--mkp-surface);
}
/* Name takes the remaining space; fixed columns reserve room for identifiers,
   the complete timestamp and both actions. Keep native scrolling below 920px. */
.blacklist-page #Grid :is(.k-grid-table, .k-grid-header-table) {
    table-layout: fixed;
    min-width: 920px;
}
.blacklist-page #Grid.mkp-grid-bounded > .k-grid-container > .k-grid-content,
.blacklist-page #Grid.mkp-grid-bounded > .k-grid-content {
    max-height: var(--blacklist-grid-height, 490px);
}
/* The MVC toolbar contains only Kendo's hidden overflow trigger here.
   A real export button, when rendered, retains its toolbar and behavior. */
.blacklist-page #Grid > .k-grid-toolbar:empty,
.blacklist-page #Grid > .k-grid-toolbar:has(> .k-toolbar-overflow-button.k-hidden:only-child) { display: none; }
.blacklist-page #Grid :is(.k-grid-table, .k-grid-header-table) > thead > tr > th {
    padding: 6px 12px;
    color: var(--mkp-foreground);
    font-size: 14px;
    font-weight: 500;
    background: var(--mkp-surface);
}
.blacklist-page #Grid .k-grid-header :is(.k-grid-header-menu, .k-grid-filter) { opacity: 1; }
.blacklist-page #Grid .k-grid-header .k-cell-inner { min-height: 28px; }
.blacklist-page #Grid .k-grid-header .k-cell-inner > .k-link { flex: 0 1 auto; }
.blacklist-page #Grid .k-grid-header :is(.k-grid-header-menu, .k-grid-filter) .k-svg-icon { width: 16px; height: 16px; }
/* Reserve two text lines without truncating names or shrinking the type.
   Set the row height: Kendo cells use content-box and add their own padding. */
.blacklist-page #Grid .k-grid-table > tbody > tr:not(.k-no-data) { height: 57px; }
.blacklist-page #Grid .k-grid-table > tbody > tr:not(.k-no-data) > td {
    padding: 8px 12px;
    font-size: 14px;
    line-height: 20px;
    color: var(--mkp-foreground);
}
.blacklist-page #Grid td:first-child { font-weight: 500; white-space: normal; overflow-wrap: anywhere; }
.blacklist-page #Grid td:nth-child(3) { overflow-wrap: anywhere; }
.blacklist-page #Grid td:nth-child(2),
.blacklist-page #Grid td:nth-child(4) { font-variant-numeric: tabular-nums; white-space: nowrap; }
.blacklist-page #Grid .k-grid-table > tbody > tr:not(.k-no-data) > td:is(:nth-child(2), :nth-child(4)) { color: var(--mkp-foreground); }
.blacklist-page #Grid td .btn-group { gap: 6px; }
.blacklist-page #Grid td .btn-group > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 32px;
    height: 32px;
    margin: 0;
    padding: 5px 8px;
    font-size: 14px;
    border: 1px solid transparent;
    border-radius: var(--mkp-radius-sm);
    background: transparent;
    color: var(--mkp-muted-foreground);
    box-shadow: none;
}
.blacklist-page #Grid td .btn-group > .btn:hover,
.blacklist-page #Grid td .btn-group > .btn:focus-visible {
    border-color: var(--mkp-border);
    background: var(--mkp-muted);
    color: var(--mkp-foreground);
}
.blacklist-page #Grid td .btn-group > .btn:focus-visible { outline: 2px solid var(--mkp-foreground); outline-offset: 2px; }
.blacklist-page #Grid .k-grid-table td .blacklist-row-actions .fa { font-size: 16px; }
.blacklist-page #Grid.blacklist-grid-empty > .k-grid-container > .k-grid-content,
.blacklist-page #Grid.blacklist-grid-empty > .k-grid-content {
    min-height: 224px;
    max-height: none;
}
/* Keep the native page-size picker operable after a search returns no rows.
   The shared empty-grid layout currently hides it and overlays the pager. */
.blacklist-page #Grid.blacklist-grid-empty > .k-grid-pager {
    position: static;
    width: auto;
    padding: 12px;
    border-top: 1px solid var(--mkp-border);
    background: var(--mkp-surface);
}
.blacklist-page #Grid.blacklist-grid-empty > .k-grid-pager .k-pager-sizes { display: flex !important; }
.blacklist-page #Grid .k-grid-norecords { width: 100%; }
.blacklist-page #Grid .k-grid-norecords > .blacklist-empty { width: 100%; }
.blacklist-empty { padding: 40px 20px; text-align: center; white-space: normal; color: var(--mkp-foreground); }
.blacklist-empty > i { display: block; margin-bottom: 12px; font-size: 24px; color: var(--mkp-muted-foreground); }
.blacklist-empty strong { display: block; font-size: 16px; font-weight: 600; }
.blacklist-empty p { margin: 8px 0 0; color: var(--mkp-muted-foreground); }
.blacklist-form { max-width: 640px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 16px; }
.blacklist-form > .admin-page-header { grid-column: 1; grid-row: 1; margin: 0; }
.blacklist-form > .admin-page-actions { grid-column: 2; grid-row: 1; align-self: start; display: flex; gap: 8px; }
.blacklist-form-panel {
    min-width: 0;
    grid-column: 1 / -1;
    grid-row: 2;
    border: 1px solid var(--mkp-border);
    border-radius: var(--mkp-radius-lg);
    background: var(--mkp-surface);
    box-shadow: var(--mkp-shadow);
    padding: 24px;
}
.blacklist-form-section { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.blacklist-section-heading h2 { margin: 0; font-size: 16px; line-height: 24px; font-weight: 600; }
.blacklist-fields { min-width: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 20px 16px; }
.blacklist-field { min-width: 0; grid-column: 1 / -1; }
.blacklist-document,
.blacklist-email { grid-column: auto; }
.blacklist-fields .form-control { width: 100%; min-width: 0; max-width: 100%; }
.blacklist-fields textarea.form-control { min-height: 104px; resize: vertical; }
.blacklist-created { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--mkp-border); font-size: 14px; color: var(--mkp-foreground); }
.blacklist-created dt { font-weight: 500; color: var(--mkp-muted-foreground); }
.blacklist-created dd { margin: 0; font-variant-numeric: tabular-nums; }
@media (max-width: 767.98px) {
    .blacklist-form { display: flex; flex-direction: column; gap: 20px; }
    .blacklist-form > .admin-page-header { display: block; }
    .blacklist-form .admin-page-heading { order: 0; }
    .blacklist-form-panel { order: 1; }
    .blacklist-form .admin-page-actions { order: 2; justify-content: flex-end; }
    .blacklist-form-panel { padding: 20px; }
    .blacklist-form-section { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .blacklist-fields { grid-template-columns: minmax(0, 1fr); }
    .blacklist-search { width: 100%; flex-direction: column; align-items: stretch; gap: 6px; }
    .blacklist-search .admin-search { width: 100%; }
}
