/* 
 * ProGest Onyx Theme for DevExpress Blazor 
 * Overrides for dxbl-grid matching Stitch "High-Density Registry" Design
 */

/* --------------------------------------------------------------------------
   DxGrid (High-Density Registry)
   -------------------------------------------------------------------------- */

.dxbl-grid {
    --dxbl-grid-font-family: 'Inter', sans-serif;
    --progest-grid-bg: #ffffff;
    --progest-grid-panel: #f2f3ff;
    --progest-grid-line: #d7deef;
    --progest-grid-text: #131b2e;
    --progest-grid-muted: #54647a;
    --progest-grid-header-bg: #0b1c30;
    --progest-grid-header-line: #1f3148;
    --progest-grid-header-text: #ffffff;
    --progest-grid-row-even: #f7f8ff;
    --progest-grid-row-odd: #ffffff;
    --progest-grid-row-hover: #fff2e6;
    --progest-grid-accent: #8d4b00;
    --progest-grid-link: #5b2ca1;
    border: 1px solid var(--progest-grid-line);
    box-shadow: none;
    background-color: var(--progest-grid-bg);
    border-radius: 0;
    color: var(--progest-grid-text);
}

/* Header */
.dxbl-grid .dxbl-grid-header-row {
    background-color: var(--progest-grid-header-bg) !important;
    color: var(--progest-grid-header-text) !important;
}

.dxbl-grid .dxbl-grid-header-row > th {
    background-color: inherit;
    color: inherit;
    font-size: 0.9rem;
    font-weight: 900; /* font-black */
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 11px 16px;
    border-bottom: none;
    border-right: 1px solid var(--progest-grid-header-line);
    white-space: nowrap;
}

.dxbl-grid .dxbl-grid-header-row > th:last-child {
    border-right: none;
}

/* Header Alignment */
.dxbl-grid-header-row .dxbl-text-end {
    text-align: right !important;
}

.dxbl-grid-header-row .dxbl-text-start {
    text-align: left !important;
}

.dxbl-grid-header-row .dxbl-text-center {
    text-align: center !important;
}


/* Data Rows */
.dxbl-grid .dxbl-grid-table {
    font-size: 0.96rem;
    font-weight: 700; /* font-bold */
    border-collapse: collapse;
}

.dxbl-grid-row {
    background-color: var(--progest-grid-row-odd);
    transition: background-color 0.15s ease-in-out;
}

.dxbl-grid-row-alt {
    background-color: var(--progest-grid-row-even);
}

.dxbl-grid-row:hover,
.dxbl-grid-row-alt:hover {
    background-color: var(--progest-grid-row-hover) !important;
}

/* Data Cells */
.dxbl-grid-table td {
    padding: 10px 16px !important;
    border-bottom: 1px solid var(--progest-grid-line);
    border-right: 1px solid var(--progest-grid-line);
    color: var(--progest-grid-text);
    vertical-align: middle;
    line-height: 1.25;
}

.dxbl-grid-table td:last-child {
    border-right: none;
}

.dxbl-grid-table td.dxbl-text-end,
.dxbl-grid-table td .dxbl-text-end {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
}

/* Cell Alignment */
.dxbl-grid-table .dxbl-text-end {
    text-align: right !important;
}

.dxbl-grid-table .dxbl-text-start {
    text-align: left !important;
}

.dxbl-grid-table .dxbl-text-center {
    text-align: center !important;
}


/* Group Panel */
.dxbl-grid .dxbl-grid-group-panel {
    background-color: var(--progest-grid-bg);
    padding: 14px 16px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--progest-grid-muted);
    border: none;
    border-bottom: 1px solid var(--progest-grid-line);
}

/* Filter Row */
.dxbl-grid .dxbl-grid-filter-row {
    background-color: var(--progest-grid-bg);
}

.dxbl-grid .dxbl-grid-filter-row > td {
    padding: 3px 10px !important;
    background-color: var(--progest-grid-bg);
    border-bottom: 1px solid var(--progest-grid-line);
    border-right: 1px solid var(--progest-grid-line);
    height: 42px;
}

.dxbl-grid .dxbl-grid-filter-row > td:last-child {
    border-right: none;
}

/* Filter Inputs - Precision Protocol */
.dxbl-grid .dxbl-grid-filter-row .dxbl-text-editor,
.dxbl-grid .dxbl-grid-filter-row .dxbl-date-edit,
.dxbl-grid .dxbl-grid-filter-row .dxbl-spin-edit,
.dxbl-grid .dxbl-grid-filter-row .dxbl-combobox {
    border: 1px solid transparent !important;
    box-shadow: none !important;
    background-color: var(--progest-grid-bg) !important;
    min-height: 30px;
    height: 30px;
}

.dxbl-grid .dxbl-grid-filter-row .dxbl-text-editor-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-date-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-spin-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-combobox-input {
    border: 1px solid var(--progest-grid-line) !important;
    padding: 3px 8px !important;
    font-size: 0.82rem !important;
    background-color: var(--progest-grid-bg) !important;
    border-radius: 0 !important;
    color: var(--progest-grid-text);
    transition: border-color 0.12s, background-color 0.12s;
    min-height: 28px;
    height: 28px;
}

/* Show subtle frame on hover */
.dxbl-grid .dxbl-grid-filter-row .dxbl-text-editor:hover .dxbl-text-editor-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-date-edit:hover .dxbl-date-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-spin-edit:hover .dxbl-spin-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-combobox:hover .dxbl-combobox-input {
    border-color: #b9c6df !important;
}

/* High Precision Focus */
.dxbl-grid .dxbl-grid-filter-row .dxbl-text-editor:focus-within .dxbl-text-editor-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-date-edit:focus-within .dxbl-date-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-spin-edit:focus-within .dxbl-spin-edit-input,
.dxbl-grid .dxbl-grid-filter-row .dxbl-combobox:focus-within .dxbl-combobox-input {
    border: 1px solid var(--progest-grid-accent) !important;
    background-color: #fffaf3 !important;
}

/* Filter Icons Style */
.dxbl-grid .dxbl-grid-filter-row .dxbl-image {
    opacity: 0.65;
    filter: grayscale(1);
}

.dxbl-grid .dxbl-grid-filter-row :focus-within .dxbl-image {
    opacity: 1;
    filter: none;
}



/* Pagination (Pager) */
.dxbl-grid-pager {
    background-color: var(--progest-grid-panel);
    padding: 8px 16px;
    border-top: 1px solid var(--progest-grid-line);
}

.dxbl-grid-pager .dx-pager-summary {
    font-size: 0.72rem;
    font-weight: 900;
    color: var(--progest-grid-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.dxbl-pager-page-link,
.dxbl-pager-nav-button {
    background-color: #ffffff;
    border: 1px solid var(--progest-grid-line);
    color: var(--progest-grid-text);
    font-size: 0.72rem;
    font-weight: 900;
    width: 26px;
    height: 26px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    margin: 0 2px;
}

.dxbl-pager-page-link.dxbl-active {
    background-color: var(--progest-grid-accent);
    color: #ffffff;
    border-color: var(--progest-grid-accent);
}

.dxbl-pager-page-link:hover:not(.dxbl-active) {
    background-color: #e9ecf8;
}

.dxbl-pager-nav-button:hover:not([disabled]) {
    background-color: var(--progest-grid-accent);
    color: #ffffff;
}

/* Grid actions and badges (used by BCF screen) */
.dxbl-grid .ds-btn.ds-btn-ghost {
    padding: 2px 0;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--progest-grid-link);
    background: transparent;
    white-space: nowrap;
    min-width: max-content;
}

.dxbl-grid .ds-btn.ds-btn-ghost:hover:not(:disabled) {
    background: transparent;
    color: var(--progest-grid-accent);
}

.dxbl-grid .ds-badge {
    border-radius: 0;
    padding: 2px 8px;
    font-size: 0.74rem;
    letter-spacing: 0.07em;
    font-weight: 800;
}

.dxbl-grid .ds-badge-neutral {
    background-color: #d9dee6;
    color: #4f6178;
}

.dxbl-grid .ds-badge-success {
    background-color: #3a1c00;
    border: 1px solid #5a2d08;
    color: #d27200;
}

.dxbl-grid .ds-badge-critical {
    background-color: #ba1a1a;
    color: #ffffff;
}

@media (max-width: 992px) {
    .dxbl-grid .dxbl-grid-header-row > th {
        padding: 10px 10px;
        font-size: 0.76rem;
    }

    .dxbl-grid-table td {
        padding: 8px 10px !important;
        font-size: 0.84rem;
    }
}

/* --------------------------------------------------------------------------
   DxFormLayout / Inputs (Terminal Protocol Form)
   -------------------------------------------------------------------------- */
.dxbl-text-editor-input,
.dxbl-date-edit-input,
.dxbl-spin-edit-input,
.dxbl-combobox-input {
    border: 1px solid #cbd5e1; /* border-slate-300 */
    padding: 8px 12px;
    font-size: 14px; /* text-sm */
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif;
    color: #131b2e;
}

.dxbl-text-editor:focus-within .dxbl-text-editor-input,
.dxbl-date-edit:focus-within .dxbl-date-edit-input,
.dxbl-spin-edit:focus-within .dxbl-spin-edit-input,
.dxbl-combobox:focus-within .dxbl-combobox-input {
    border-color: #d97706; /* focus:border-amber-600 */
    box-shadow: none !important;
    outline: none !important;
}

.dxbl-form-layout-item-caption {
    font-size: 9px;
    font-weight: 900; /* font-black */
    color: #64748b; /* text-slate-500 */
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}

/* --------------------------------------------------------------------------
   DxButton (Actions & Command Buttons)
   -------------------------------------------------------------------------- */
.dxbl-btn {
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 12px 16px;
    border-radius: 0 !important;
    transition: background-color 0.2s, color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Spin edit arrow buttons (inc/dec) — padding compact pour aligner la hauteur */
.dxbl-spin-btn-inc,
.dxbl-spin-btn-dec {
    padding: 0 6px !important;
    height: 17px !important;
    min-height: 17px !important;
    font-size: 10px;
    border-radius: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dxbl-btn-primary {
    background-color: #d97706; /* amber-600 */
    color: white;
    border: none;
}

.dxbl-btn-primary:hover {
    background-color: #b45309; /* amber-700 */
    color: white;
}

.dxbl-btn-secondary {
    background-color: transparent;
    border: 2px solid #1e293b; /* border-slate-800 */
    color: #1e293b;
}

.dxbl-btn-secondary:hover {
    background-color: #1e293b;
    color: white;
}

/* --------------------------------------------------------------------------
   Document Status Badges (Stitch Protocol)
   -------------------------------------------------------------------------- */
.progest-badge {
    padding: 2px 8px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    display: inline-block;
}

.badge-draft {
    background-color: #e2e8f0; /* bg-slate-200 */
    color: #475569; /* text-slate-600 */
}

.badge-valid {
    background-color: #451a03; /* bg-amber-950 (or similar dark brown seen in screenshot) */
    color: #f59e0b; /* text-amber-500 */
    border: 1px solid #78350f;
}

.badge-waiting {
    background-color: #2563eb; /* bg-blue-600 */
    color: #ffffff;
}

.badge-critical {
    background-color: #b91c1c; /* bg-red-700 */
    color: #ffffff;
}

input.dxbl-text-edit-input 
{height:43px}
