:root {
    --iot-navy: #102B4E;
    --iot-blue: #005098;
    --iot-cyan: #20A7DF;
    --iot-orange: #FF6900;
    --iot-success: #20835D;
    --iot-danger: #BF3D3D;
    --iot-warning: #A96812;
    --iot-background: #F3F6FA;
    --iot-surface: #FFFFFF;
    --iot-border: #DCE7F1;
    --iot-ink: #17314F;
    --iot-muted: #607895;
    --iot-blue-soft: #EDF5FF;
    --iot-success-soft: #EAF6F0;
    --iot-danger-soft: #FFF1F0;
    --iot-warning-soft: #FFF7E8;
    --iot-radius-xs: 8px;
    --iot-radius-sm: 12px;
    --iot-radius: 18px;
    --iot-radius-lg: 24px;
    --iot-shadow-sm: 0 6px 20px rgba(16, 43, 78, .06);
    --iot-shadow: 0 12px 34px rgba(16, 43, 78, .09);
    --iot-shadow-lg: 0 22px 58px rgba(16, 43, 78, .13);
    --iot-space-1: .25rem;
    --iot-space-2: .5rem;
    --iot-space-3: .75rem;
    --iot-space-4: 1rem;
    --iot-space-5: 1.5rem;
    --iot-space-6: 2rem;
    --iot-space-7: 3rem;
    --iot-font: "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; background: var(--iot-background); }
body { margin: 0; color: var(--iot-ink); background: var(--iot-background); font-family: var(--iot-font); line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a { color: var(--iot-blue); }
:focus-visible { outline: 3px solid rgba(32, 167, 223, .42); outline-offset: 2px; }

.iot-shell { min-height: 100dvh; background: var(--iot-background); }
.page-content-container { width: 100%; min-width: 0; }
.page-content-container h1, .page-content-container h2, .page-content-container h3 { color: var(--iot-ink); }
.page-content-container :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]) {
    min-height: 44px;
    border-color: var(--iot-border);
    border-radius: var(--iot-radius-sm);
}
.page-content-container :is(input, select, textarea):focus {
    border-color: var(--iot-blue);
    box-shadow: 0 0 0 3px rgba(0, 80, 152, .12);
}
.page-content-container :is(.alert, .alert-error, .validation-summary-errors) { border-radius: var(--iot-radius-sm); }
.page-content-container :is(.content-card, .section-card, .form-card, .card) {
    border-color: var(--iot-border);
    border-radius: var(--iot-radius);
    background: var(--iot-surface);
    box-shadow: var(--iot-shadow-sm);
}
.page-content-container :is(.status-active, .badge-success) { color: var(--iot-success); background: var(--iot-success-soft); }
.page-content-container :is(.status-inactive, .badge-neutral) { color: var(--iot-muted); background: #F0F4F8; }
.page-content-container :is(.status-warning, .badge-warning) { color: var(--iot-warning); background: var(--iot-warning-soft); }
.page-content-container :is(.status-danger, .badge-danger) { color: var(--iot-danger); background: var(--iot-danger-soft); }

.dxbl-btn-primary {
    --dxbl-btn-bg: var(--iot-blue);
    --dxbl-btn-border-color: var(--iot-blue);
    min-height: 44px;
    border-radius: var(--iot-radius-sm);
}
.dxbl-btn-primary:hover { filter: brightness(1.05); }
.dxbl-grid { --dxbl-grid-border-color: var(--iot-border); }
.dxbl-grid td, .dxbl-grid th { vertical-align: middle; }
.dxbl-grid-search-box { min-height: 44px; }
.dxbl-pager { overflow-x: auto; }

.identity-page, .account-page, .manage-page {
    width: min(100%, 920px);
    margin: 0 auto;
    padding: clamp(24px, 5vw, 48px);
}
.identity-page form, .account-page form, .manage-page form {
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid var(--iot-border);
    border-radius: var(--iot-radius);
    background: var(--iot-surface);
    box-shadow: var(--iot-shadow-sm);
}

@media (max-width: 768px) {
    .page-content-container { overflow-x: hidden; }
    .page-content-container :is(.content-card, .section-card) { border-radius: 14px; }
    .dxbl-grid { min-width: 720px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
