/**
 * REMIS global typography — Roboto
 * Loaded from all master pages for consistent professional UI text.
 */
:root {
    --remis-font: "Roboto", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --remis-font-size: 14px;
    --remis-line-height: 1.5;
    --remis-color-text: #1e293b;
    --remis-color-muted: #64748b;
}

html {
    font-size: var(--remis-font-size);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

html,
body {
    font-family: var(--remis-font) !important;
    color: var(--remis-color-text);
    line-height: var(--remis-line-height);
}

/* Override DevExpress inline font-family:Tahoma and browser serif defaults */
body,
body * {
    font-family: var(--remis-font) !important;
}

/* Icon fonts use ::before glyphs — must not inherit Roboto */
.fa,
.fa::before,
.fa::after,
[class^="fa-"]::before,
[class*=" fa-"]::before,
.zmdi,
.zmdi::before,
.material-icons {
    font-family: FontAwesome !important;
    font-style: normal;
    font-weight: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.zmdi,
.zmdi::before {
    font-family: Material-Design-Iconic-Font !important;
}

.material-icons {
    font-family: "Material Icons" !important;
}

h1 { font-size: 1.75rem; font-weight: 700; letter-spacing: -0.02em; }
h2 { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.01em; }
h3 { font-size: 1.125rem; font-weight: 500; }

strong,
b,
label,
button,
input,
select,
textarea,
table,
td,
th {
    font-family: var(--remis-font) !important;
}

/* DevExpress controls — class names and inline Tahoma from Font-Names property */
.dxeBase,
.dxeEditArea,
.dxeButton,
.dxeButtonEdit,
.dxnbGroupHeader,
.dxnbItem,
.dxgvHeader,
.dxgvDataRow,
.dxgvDataRow td,
.dxpc-header,
.dxpc-content,
.dxtc-tab,
.dxtc-content,
.dxm-item,
.dxm-popOut,
.dxeListBoxItem,
.dxeMemo,
.dxeSpinEdit,
.dxeCalendar,
.dxeCalendarDay,
.dxeRadioButtonList,
.dxeCheckBoxList,
.dxrpControl,
.dxrpHeader,
.dxrpContent,
.dxeCaption,
.dxeLabel,
.dxeHyperlink,
.dxeTextBox,
.dxeComboBox,
.dxeCheckBox,
.dxeRadioButton,
.dxgv,
.dxgvTable,
.dxgvControl,
.dxnb,
.dxnbGroup,
.dxpcLite,
.dxtcLite,
.dxmLite,
.dxeButtonEditButton,
.dxeListBox,
.dxeErrorFrame,
.dxeLoadingPanel,
.dxeLoadingDiv {
    font-family: var(--remis-font) !important;
}

/* Inline font-family from DevExpress Font-Names="Tahoma" and legacy markup */
[style*="font-family: Tahoma"],
[style*="font-family:Tahoma"],
[style*="font-family: tahoma"],
[style*="font-family:tahoma"] {
    font-family: var(--remis-font) !important;
}

/* ASP.NET standard controls */
.gridview,
.report-grid,
.cert-grid,
.dy-grid,
.erp-recent-table,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="search"],
select,
textarea,
.aspNetDisabled {
    font-family: var(--remis-font) !important;
}

/* Login/register text field labels (not icon placeholders) */
.focus-input100-text::after {
    font-family: var(--remis-font) !important;
}

/* Auth pages — Cerulean login/register card */
.limiter,
.limiter .login100-form,
.limiter .login100-form-title,
.limiter .input100,
.limiter .focus-input100-text::after,
.limiter .label-checkbox100,
.limiter .txt1 {
    color: #fff;
}

.limiter .wrap-login100 {
    background: linear-gradient(165deg, #0391CB 0%, #037FB2 42%, #025B80 100%);
}

.limiter .login100-form-logo {
    padding: 10px;
    box-sizing: border-box;
}

.limiter .login100-form-logo .login-badge-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}

.limiter .login100-form-btn {
    color: #ffffff;
    background: linear-gradient(145deg, #025B80 0%, #037FB2 100%);
    cursor: pointer;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
}
.limiter .login100-form-btn::before { display: none; }
.limiter .login100-form-btn:hover {
    background: #025B80;
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(0, 77, 107, 0.35);
}
.limiter .login100-form-btn:active { transform: translateY(1px); }

@media (max-width: 576px) {
    .container-login100 {
        padding: 16px 12px;
        min-height: 100dvh;
        align-items: flex-start;
        padding-top: max(24px, env(safe-area-inset-top, 0px));
        padding-bottom: max(24px, env(safe-area-inset-bottom, 0px));
    }

    .wrap-login100 {
        width: 100%;
        max-width: 100%;
        padding: 40px 20px 32px !important;
        border-radius: 16px;
    }

    .login100-form-title {
        font-size: 22px;
        line-height: 1.25;
    }

    .login100-form-logo {
        width: 88px;
        height: 88px;
        margin: 0 auto 16px;
    }

    .input100 {
        font-size: 16px !important;
        min-height: 48px;
    }

    .login100-form-btn {
        min-height: 48px;
        font-size: 15px;
    }
}

.erp-dash,
.list-search-bar,
.dy-panel,
.view-panel,
.filter-section {
    font-family: var(--remis-font) !important;
}

