:root {
    --accent: #f5a341;
    --text: #2b2f3a;
    --muted: #6b7280;
    --ring: rgba(0, 0, 0, .06);
    --navbar-h: 68px;
}

/* ===== Base ===== */
.navbar {
    font-family: "Kanit", sans-serif;
    min-height: var(--navbar-h);
}

.navbar.bg-white {
    border-bottom: 1px solid #f1f2f6;
    box-shadow: 0 6px 16px var(--ring);
}

/* container ล็อคความสูงให้เท่ากันทุกสถานะ */
.navbar > .container-sm {
    min-height: var(--navbar-h);
    display: flex;
    align-items: center;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ===== Brand (mobile) ===== */
.navbar-brand img {
    display: block;
}

/* ===== Nav Links ===== */
.navbar .nav-link {
    position: relative;
    color: var(--muted);
    transition: color .2s;
    display: inline-flex;
    align-items: center;
    line-height: 1;
    text-decoration: none;
    padding-top: 0;
    padding-bottom: 0;
    white-space: nowrap;
}

.navbar .nav-link i,
.navbar .nav-link img {
    margin-right: .35rem;
}

/* ===== Underline Active ===== */
.navbar .underline-active::after {
    content: "";
    position: absolute;
    left: .25rem;
    right: .25rem;
    bottom: -8px;
    height: 3px;
    background: var(--accent);
    border-radius: 99px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .25s;
}

.navbar .underline-active:hover {
    color: var(--text);
}

.navbar .underline-active:hover::after,
.navbar .nav-link[aria-current="page"].underline-active::after {
    transform: scaleX(1);
}

.navbar .nav-link[aria-current="page"] {
    color: var(--text);
}

/* ===== Dropdown Menu ===== */
.navbar .dropdown-menu {
    border: 1px solid #eceef3;
    border-radius: 12px;
    min-width: 220px;
    padding: .35rem;
    box-shadow: 0 10px 24px var(--ring);
    border-bottom: 3px solid var(--accent);
}

.navbar .dropdown-item {
    border-radius: 8px;
    font-weight: 500;
    font-family: "Kanit", sans-serif;
}

.navbar .dropdown-item:hover {
    background: #f8fafc;
    color: var(--text);
}

/* ===== Register Button ===== */
.btn-ys {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border: 2px solid var(--accent);
    color: var(--accent);
    background: #fff;
    border-radius: 999px;
    font-weight: 700;
    font-family: "Kanit", sans-serif;
    transition: all .2s;
    text-decoration: none;
    white-space: nowrap;
    /* ล็อคขนาดให้เท่ากับ nav-link */
    padding: .4rem 1.1rem;
    line-height: 1.4;
}

.btn-ys:hover {
    background: var(--accent);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(245, 163, 65, .25);
}

/* ===== Balance Pill ===== */
.balance-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background: #f5a341;
    color: #fff;
    font-weight: 800;
    padding: .4rem .75rem;
    border-radius: 10px;
    line-height: 1.4;
    box-shadow: 0 6px 14px rgba(245, 163, 65, .25);
    white-space: nowrap;
    font-size: 14px;
}

/* ===== User Box ===== */
.userbox .userbox-toggle {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 700;
    color: #111827;
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.4;
}

.userbox .userbox-toggle:hover {
    color: #111827;
}

.userbox-menu {
    border: 1px solid #eceef3;
    border-radius: 12px;
    min-width: 260px;
    padding: .35rem;
    box-shadow: 0 10px 24px var(--ring);
    border-bottom: 3px solid var(--accent);
    font-family: "Kanit", sans-serif;
}

.userbox-menu .dropdown-item {
    border-radius: 8px;
    font-weight: 500;
    font-family: "Kanit", sans-serif;
}

.userbox-menu .dropdown-item:hover {
    background: #f8fafc;
    color: var(--text);
}

/* ===== Dropdown Active States ===== */
.navbar .nav-link-active {
    color: var(--text) !important;
}

.navbar .nav-link-active::before {
    content: "";
    position: absolute;
    left: .25rem;
    right: .25rem;
    bottom: -8px;
    height: 3px;
    background: var(--accent);
    border-radius: 99px;
}

.navbar .dropdown-item.active,
.userbox-menu .dropdown-item.active {
    background: #fff5e6;
    color: var(--accent) !important;
    font-weight: 700;
}

.navbar .dropdown-item.active:hover,
.userbox-menu .dropdown-item.active:hover {
    background: #fdecd3;
}

/* ============================================================
   MOBILE — collapse menu
   ============================================================ */

/* เมื่อ collapse เปิด */
.navbar-collapse.show,
.navbar-collapse.collapsing {
    padding: 12px 8px 20px;
    border-top: 1px solid #f1f2f6;
    margin-top: 8px;
}

@media (max-width: 991.98px) {

    /* ล็อคความสูงบน mobile */
    .navbar > .container-sm {
        min-height: var(--navbar-h);
        flex-wrap: wrap;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .navbar-brand,
    .navbar-toggler {
        margin-top: auto;
        margin-bottom: auto;
    }

    /* ===== จัดเมนูให้อยู่กึ่งกลาง ===== */
    .navbar-collapse .navbar-nav {
        align-items: center;
        width: 100%;
    }

    .navbar-collapse .navbar-nav .nav-item {
        width: 100%;
        max-width: 320px;
    }

    /* nav-link แต่ละรายการ: กึ่งกลาง + สวยงาม */
    .navbar .nav-link {
        padding: .65rem 1rem;
        border-radius: 12px;
        justify-content: center;
        transition: background .18s, color .18s;
        font-size: 15px;
        font-weight: 500;
    }

    .navbar .nav-link:hover {
        background: #fdf6ec;
        color: var(--accent);
    }

    /* active page บน mobile: highlight แทน underline */
    .navbar .nav-link[aria-current="page"] {
        background: #fff5e6;
        color: var(--accent) !important;
        font-weight: 700;
    }

    /* เอา underline-after ออกบน mobile */
    .navbar .underline-active::after {
        display: none;
    }

    /* nav-link-active (dropdown parent) บน mobile */
    .navbar .nav-link-active {
        background: #fff5e6;
    }

    .navbar .nav-link-active::before {
        display: none;
    }

    /* margin ซ้ายที่ใช้แค่บน desktop */
    .navbar .ms-lg-3 {
        margin-left: 0 !important;
    }

    /* divider เล็กๆ ระหว่าง left-nav กับ right-nav */
    .navbar-collapse .navbar-nav + .navbar-nav {
        margin-top: 8px;
        padding-top: 8px;
        border-top: 1px dashed #f0f0f0;
    }

    /* balance pill: จัดกึ่งกลาง */
    .nav-item .balance-pill {
        display: inline-flex;
        justify-content: center;
        width: 100%;
        max-width: 320px;
        margin: 4px 0;
        border-radius: 12px;
        padding: .55rem 1rem;
        font-size: 14px;
    }

    /* userbox toggle: กึ่งกลาง */
    .userbox .userbox-toggle {
        justify-content: center;
        padding: .65rem 1rem;
        border-radius: 12px;
        font-size: 15px;
        width: 100%;
    }

    .userbox .userbox-toggle:hover {
        background: #fdf6ec;
    }

    /* dropdown ใน mobile: ไม่ลอย ใช้ bg อ่อน */
    .navbar .dropdown-menu {
        box-shadow: none;
        border: none;
        border-radius: 12px;
        background: #fafafa;
        padding: .35rem .5rem;
        margin-top: 2px;
        width: 100%;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
    }

    .navbar .dropdown-item {
        text-align: center;
        justify-content: center;
        display: flex;
        align-items: center;
        gap: .4rem;
        padding: .55rem .75rem;
        font-size: 14px;
    }

    /* userbox menu บน mobile */
    .userbox-menu {
        min-width: 100%;
        max-width: 320px;
        box-shadow: none;
        border: none;
        background: #fafafa;
        border-radius: 12px;
        margin-left: auto;
        margin-right: auto;
    }

    .userbox-menu .dropdown-item {
        text-align: center;
        justify-content: center;
    }

    /* sign-in / register: กึ่งกลาง */
    .navbar-nav .nav-item.ms-3,
    .navbar-nav .nav-item.ms-4 {
        margin-left: 0 !important;
    }

    .btn-ys {
        width: 100%;
        max-width: 320px;
        justify-content: center;
        padding: .6rem 1rem;
        margin: 4px auto;
        display: flex;
    }
}

/* XS: < 480px */
@media (max-width: 479.98px) {
    .navbar > .container-sm {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .navbar-brand img {
        width: 44px;
    }

    .navbar-collapse .navbar-nav .nav-item {
        max-width: 100%;
    }

    .navbar .dropdown-menu,
    .userbox-menu,
    .btn-ys {
        max-width: 100%;
    }

    .nav-item .balance-pill {
        max-width: 100%;
    }
}