:root {
    --rmutp-primary: #0B3C8C;
    --rmutp-primary-dark: #072F72;
    --rmutp-secondary: #F4C542;
    --rmutp-background: #F4F7FB;
    --rmutp-card: #FFFFFF;
    --rmutp-text: #162033;
    --rmutp-muted: #64748B;
    --rmutp-border: #E2E8F0;
    --rmutp-success: #168A4A;
    --rmutp-info: #0F7C9F;
    --rmutp-danger: #C0392B;
    --sidebar-width: 264px;
    --topbar-height: 76px;
    --radius: 14px;
    --radius-sm: 10px;
    --shadow: 0 12px 32px rgba(15, 45, 90, 0.09);
    --shadow-soft: 0 5px 18px rgba(15, 45, 90, 0.06);
    --shadow-raised: 0 10px 28px rgba(15, 45, 90, 0.12);
    --motion-fast: 160ms;
    --motion-base: 220ms;
    --motion-ease: cubic-bezier(.2, .75, .25, 1);
    --focus-ring: 0 0 0 4px rgba(11, 60, 140, .14);
}

html {
    scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

body {
    background:
        radial-gradient(circle at 92% 4%, rgba(11, 60, 140, 0.055), transparent 28rem),
        var(--rmutp-background);
    color: var(--rmutp-text);
    font-family: "Segoe UI", "Noto Sans Thai", Tahoma, Arial, sans-serif;
    letter-spacing: 0;
    overflow-x: hidden;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

::selection {
    color: #fff;
    background: var(--rmutp-primary);
}

.form-control,
.form-select {
    min-height: 44px;
    border-color: #D7E0EC;
    border-radius: var(--radius-sm);
    background-color: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(11, 60, 140, .55);
    box-shadow: 0 0 0 4px rgba(11, 60, 140, .1);
}

.form-label {
    margin-bottom: .45rem;
    color: #26364D;
    font-weight: 650;
}

.btn {
    min-height: 42px;
    border-radius: var(--radius-sm);
    font-weight: 650;
    padding-inline: 1rem;
    transition: transform var(--motion-fast) var(--motion-ease),
                box-shadow var(--motion-base) ease,
                background-color var(--motion-fast) ease,
                border-color var(--motion-fast) ease,
                color var(--motion-fast) ease;
}

.btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.btn:active:not(:disabled) {
    transform: translateY(1px);
    box-shadow: none;
}

.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible {
    outline: 2px solid rgba(11, 60, 140, .42);
    outline-offset: 2px;
    box-shadow: var(--focus-ring);
}

.btn:disabled,
.btn.disabled {
    cursor: not-allowed;
    filter: saturate(.72);
    opacity: .58;
    transform: none;
    box-shadow: none;
}

.btn-primary {
    box-shadow: 0 6px 14px rgba(11, 60, 140, .18);
}

.badge {
    border-radius: 999px;
    padding: .5em .75em;
    font-weight: 700;
}

.btn-primary {
    --bs-btn-bg: var(--rmutp-primary);
    --bs-btn-border-color: var(--rmutp-primary);
    --bs-btn-hover-bg: var(--rmutp-primary-dark);
    --bs-btn-hover-border-color: var(--rmutp-primary-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--rmutp-primary);
    --bs-btn-border-color: var(--rmutp-primary);
    --bs-btn-hover-bg: var(--rmutp-primary);
    --bs-btn-hover-border-color: var(--rmutp-primary);
}

.text-bg-warning {
    color: #3B3107 !important;
    background: var(--rmutp-secondary) !important;
}

.text-bg-primary {
    background: var(--rmutp-primary) !important;
}
