/* =========================================================
   Enterprise desktop data tables, command bars, dialogs
   Standard for CRM / desktop upgrades
   ========================================================= */

:root {
    --ent-navy: #03142e;
    --ent-navy-mid: #0f4c75;
    --ent-border: #d0d8e4;
    --ent-muted: #64748b;
    --ent-surface: #ffffff;
    --ent-rail: #f1f5f9;
    --ent-row-hover: #eef5fb;
    --ent-row-selected: rgba(15, 76, 117, 0.12);
    /* Responsive enterprise table scale */
    --ent-font: 0.90rem;          /* ≤1919px desktop */
    --ent-font-lg: 1rem;          /* >1919px large desktop */
    --ent-font-tablet: 0.75rem;   /* ≤1024 / tablet-layout */
    --ent-font-mobile: 0.65rem;   /* ≤768 / mobile-layout */
    --ent-font-btn: 0.90rem;
}

/* ── Command bar ── */
.ent-cmdbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.65rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--ent-border);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
    flex-shrink: 0;
}

.ent-cmdbar__group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}

.ent-cmdbar__group + .ent-cmdbar__group {
    padding-left: 0.65rem;
    margin-left: 0.15rem;
    border-left: 1px solid #e2e8f0;
}

.ent-cmdbar__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 1px solid #c5d0de;
    background: #fff;
    color: #0f172a;
    border-radius: 7px;
    padding: 0.45rem 0.9rem;
    min-height: 2.25rem;
    font-size: var(--ent-font-btn);
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
}

.ent-cmdbar__btn:hover:not(:disabled) {
    background: #eaf1f8;
    border-color: #9db0c7;
    color: var(--ent-navy-mid);
}

.ent-cmdbar__btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.ent-cmdbar__btn--primary {
    background: var(--ent-navy-mid);
    border-color: var(--ent-navy-mid);
    color: #fff;
}

.ent-cmdbar__btn--primary:hover:not(:disabled) {
    background: var(--ent-navy);
    border-color: var(--ent-navy);
    color: #fff;
}

.ent-cmdbar__btn--ghost {
    background: transparent;
}

.ent-cmdbar__btn--refresh {
    background: #0f766e;
    border-color: #0f766e;
    color: #fff;
}

.ent-cmdbar__btn--refresh:hover:not(:disabled) {
    background: #0d9488;
    border-color: #0d9488;
    color: #fff;
}

.ent-cmdbar__btn--icon {
    width: 2.25rem;
    min-height: 2.25rem;
    padding: 0;
    justify-content: center;
    font-size: 1rem;
}

.ent-cmdbar__search {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: min(340px, 100%);
    flex: 1 1 260px;
    max-width: 440px;
    border: 1px solid #c5d0de;
    border-radius: 7px;
    background: #fff;
    padding: 0.35rem 0.65rem;
    min-height: 2.25rem;
}

.ent-cmdbar__search i {
    color: var(--ent-muted);
    font-size: 1rem;
}

.ent-cmdbar__search input {
    border: 0;
    outline: none;
    width: 100%;
    font-size: var(--ent-font);
    background: transparent;
    color: #0f172a;
}

.ent-cmdbar__search input::placeholder {
    color: #94a3b8;
}

.ent-cmdbar__meta {
    font-size: 0.8125rem;
    font-weight: 650;
    color: var(--ent-muted);
    white-space: nowrap;
}

.ent-cmdbar__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    font-size: var(--ent-font);
    font-weight: 600;
    color: #334155;
    user-select: none;
    margin: 0;
    min-height: 2.25rem;
}

/* ── Table host + table ── */
.ent-table-host {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
    border: 1px solid var(--ent-border);
    border-radius: 8px;
    background: var(--ent-surface);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ent-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: auto;
}

.ent-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: linear-gradient(180deg, #f8fafc 0%, #e8eef6 100%);
    border-bottom: 1px solid #c5d0de;
    color: #1e293b;
    font-size: var(--ent-font);
    font-weight: 700;
    text-align: left;
    padding: 0.55rem 0.65rem;
    line-height: 1.3;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.ent-table tbody td {
    font-size: var(--ent-font);
    font-weight: 400;
    color: #0f172a;
    padding: 0.5rem 0.65rem;
    line-height: 1.35;
    border-bottom: 1px solid #e8edf4;
    vertical-align: middle;
}

.ent-table tbody tr {
    cursor: pointer;
    transition: background 0.08s ease;
}

.ent-table tbody tr:nth-child(even) {
    background: #fafbfd;
}

.ent-table tbody tr:hover {
    background: var(--ent-row-hover);
}

.ent-table tbody tr.is-selected {
    background: var(--ent-row-selected);
}

.ent-table tbody tr.is-selected td {
    box-shadow: inset 3px 0 0 var(--ent-navy-mid);
}

.ent-table .num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ent-table .wrap {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.ent-table .center {
    text-align: center;
}

.ent-table .actions {
    width: 7.5rem;
    white-space: nowrap;
    text-align: center;
}

.ent-table__actions {
    display: inline-flex;
    gap: 0.1rem;
    align-items: center;
    justify-content: center;
}

.ent-table__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ent-navy-mid);
    cursor: pointer;
    font-size: 0.95rem;
}

.ent-table__icon-btn:hover {
    background: rgba(15, 76, 117, 0.12);
    color: var(--ent-navy);
}

.ent-table__icon-btn--danger {
    color: #b91c1c;
}

.ent-badge {
    display: inline-block;
    min-width: 2.4rem;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
    color: #fff;
    line-height: 1.2;
}

.ent-badge--ok { background: #15803d; }
.ent-badge--bad { background: #b91c1c; }
.ent-badge--muted { background: #64748b; }

.ent-table-empty {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--ent-muted);
    font-size: var(--ent-font);
}

@media (min-width: 1920px) {
    .ent-table thead th,
    .ent-table tbody td {
        font-size: var(--ent-font-lg);
    }
}

.tablet-layout .ent-table thead th,
.tablet-layout .ent-table tbody td {
    font-size: var(--ent-font-tablet);
}

.mobile-layout .ent-table thead th,
.mobile-layout .ent-table tbody td {
    font-size: var(--ent-font-mobile);
}

@media (max-width: 1024px) {
    .ent-table thead th,
    .ent-table tbody td {
        font-size: var(--ent-font-tablet);
    }
}

@media (max-width: 768px) {
    .ent-table thead th,
    .ent-table tbody td {
        font-size: var(--ent-font-mobile);
    }
}

/* ── Dialog chrome ── */
.ent-dialog.e-dialog {
    border-radius: 10px !important;
    overflow: hidden;
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid #c5d0de !important;
    box-shadow: 0 18px 48px rgba(3, 20, 46, 0.22) !important;
}

.ent-dialog .e-dlg-header-content {
    background: linear-gradient(180deg, #03142e 0%, #0a2744 100%) !important;
    border-bottom: 0 !important;
    padding: 0.65rem 0.85rem !important;
}

.ent-dialog .e-dlg-header,
.ent-dialog .e-dlg-header * {
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

.ent-dialog .e-dlg-header-content .e-icon-dlg-close {
    color: #fff !important;
}

.ent-dialog .e-dlg-content {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 0.65rem 0.75rem !important;
    background: #f7f9fc !important;
}

.ent-dialog .e-footer-content {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem !important;
    border-top: 1px solid var(--ent-border) !important;
    background: #fff !important;
    padding: 0.55rem 0.85rem !important;
}

.ent-dialog .e-footer-content .btn,
.ent-dialog .e-footer-content button {
    margin: 0 !important;
}

.ent-dialog__footer-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.ent-dialog__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.ent-dialog__label {
    display: block;
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    color: #475569;
    margin-bottom: 0.2rem;
}

/* YardEx form scale: labels = --font-size-sm, values = --font-size-base (16px / 17px @1920). */
.ent-dialog .e-input-group,
.ent-dialog .e-input-group input,
.ent-dialog .e-input-group .e-input,
.ent-dialog .e-control.e-textbox,
.ent-dialog .e-control.e-numerictextbox,
.ent-dialog textarea {
    font-size: var(--font-size-base, 16px) !important;
}

.ent-dialog__msg {
    margin: 0;
    padding: 0.45rem 0.65rem;
    border-radius: 6px;
    font-size: var(--font-size-sm, 14px);
    flex-shrink: 0;
}

.ent-dialog__msg--error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.ent-dialog__msg--ok {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.ent-dialog__msg--info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
}

.ent-desktop-only {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 50vh;
    text-align: center;
    color: var(--ent-muted);
    padding: 2rem 1rem;
}

.ent-desktop-only i {
    font-size: 2.2rem;
    color: var(--ent-navy-mid);
}

.ent-desktop-only h5 {
    margin: 0;
    color: var(--ent-navy);
    font-size: 1rem;
    font-weight: 800;
}

.ent-desktop-only p {
    margin: 0;
    max-width: 28rem;
    font-size: 0.82rem;
}
