/* Navomi | جست‌وجو و ناوبری — front-end styles
   رنگ‌ها و فاصلهٔ موبایل از تنظیمات پیشخوان به‌صورت متغیر تزریق می‌شوند. */

#navomi-dock,
#navomi-sheet,
#navomi-overlay {
    --nv-accent: #084387;
    --nv-accent-dark: #052c5c;
    --nv-text: #10233d;
    --nv-field: 48px;
    --nv-offset: 26px;
}

/* ============ پایه: موبایل و تبلت (نوار افقی پایین) ============ */
#navomi-dock {
    position: fixed;
    bottom: calc(var(--nv-offset) + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100vw - 16px);
    z-index: 2147483000;
    direction: rtl;
    pointer-events: none;
    font-family: inherit;
    transition: transform .38s cubic-bezier(.4, 0, .2, 1), opacity .3s ease;
    will-change: transform;
}

#navomi-dock.nv-hidden {
    transform: translate(-50%, calc(100% + var(--nv-offset) + 24px));
    opacity: 0;
    /* بعد از پایان انیمیشن کاملاً غیرقابل‌لمس و غیرقابل‌فوکوس می‌شود */
    visibility: hidden;
    transition: transform .38s cubic-bezier(.4, 0, .2, 1), opacity .3s ease, visibility 0s linear .38s;
}

.nv-dock {
    position: relative;
    background: linear-gradient(180deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 100%);
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    border-radius: 999px;
    padding: 9px 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow:
        0 18px 40px rgba(8, 67, 135, .16),
        0 2px 8px rgba(8, 67, 135, .06),
        inset 0 1px 0 rgba(255,255,255,.9);
    border: 1px solid rgba(8, 67, 135, .10);
    pointer-events: auto;
}

.nv-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--nv-text);
    font-size: 12px;
    gap: 5px;
    min-width: 50px;
    flex: 0 0 auto;
    line-height: 1;
    white-space: nowrap;
    transition: background .25s ease;
    box-shadow: none;
}

.nv-item:focus-visible {
    outline: 2px solid var(--nv-accent);
    outline-offset: 2px;
    border-radius: 18px;
}

.nv-support { appearance: none; border: 0; margin: 0; padding-inline: 0; background: transparent; font: inherit; cursor: pointer; }
#navomi-dock button.nv-support {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--nv-text);
    font: inherit;
    line-height: 1;
}
#navomi-dock .nv-item[hidden],
#navomi-dock .nv-sep[hidden] { display: none !important; }
.nv-item.is-active .nv-icon { border-radius: 10px; background: rgba(var(--nv-accent-rgb), .12); box-shadow: inset 0 0 0 1px rgba(var(--nv-accent-rgb), .16); }
.nv-item.is-active .nv-label { font-weight: 700; }

.nv-label {
    opacity: .92;
    font-size: 11px;
    letter-spacing: -.1px;
    color: var(--nv-accent-dark);
}

.nv-icon {
    position: relative;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
}

.nv-svg {
    width: 24px;
    height: 24px;
    color: var(--nv-accent);
    transition: transform .28s cubic-bezier(.34, 1.56, .64, 1), color .25s ease;
}

.nv-item:hover .nv-svg,
.nv-item:focus-visible .nv-svg {
    color: var(--nv-accent-dark);
    transform: translateY(-3px) scale(1.08);
}

.nv-badge {
    position: absolute;
    top: -4px;
    inset-inline-start: -6px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, #e8443a, #c62a22);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: grid;
    place-items: center;
    line-height: 1;
    box-shadow: 0 3px 8px rgba(198, 42, 34, .45);
    border: 1.5px solid #fff;
}

.nv-badge.is-empty { display: none; }

.nv-sep {
    width: 1px;
    height: 26px;
    background: linear-gradient(to bottom, rgba(8,67,135,.04), rgba(8,67,135,.42), rgba(8,67,135,.04));
    flex: 0 0 1px;
    border-radius: 1px;
}

.nv-trigger {
    flex: 0 0 auto;
    width: 220px;
    min-width: 220px;
    max-width: 220px;
    margin: 0 2px;
    cursor: pointer;
    pointer-events: auto;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.nv-trigger:focus-visible .nv-trigger-inner {
    box-shadow: 0 0 0 3px rgba(8, 67, 135, .32);
}

.nv-trigger-inner {
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg, var(--nv-accent-dark) 0%, var(--nv-accent) 55%, #1560b0 100%);
    border-radius: 999px;
    height: 52px;
    padding: 0 13px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.22),
        0 10px 22px rgba(8, 67, 135, .30);
    transition: transform .28s ease, box-shadow .28s ease;
}

.nv-glow {
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.32) 50%, transparent 65%);
    opacity: var(--nv-shine-strength, .58);
    transform: translateX(-120%);
    animation: nvSheen 5.5s ease-in-out infinite;
    pointer-events: none;
}

@keyframes nvSheen {
    0%, 55% { transform: translateX(-120%); }
    80%, 100% { transform: translateX(120%); }
}

#navomi-dock[data-shine-style="aurora"] .nv-glow {
    inset: -55% -20%;
    background: radial-gradient(ellipse at 28% 50%, rgba(255,255,255,.42), transparent 35%), radial-gradient(ellipse at 70% 45%, rgba(153,220,255,.32), transparent 42%);
    filter: blur(7px);
    transform: none;
    animation: nvAurora 6s ease-in-out infinite alternate;
}

#navomi-dock[data-shine-style="pulse"] .nv-glow {
    background: radial-gradient(ellipse at center, rgba(255,255,255,.48), transparent 72%);
    transform: none;
    animation: nvPulse 2.8s ease-in-out infinite;
}

@keyframes nvAurora {
    from { opacity: calc(var(--nv-shine-strength, .58) * .5); }
    to { opacity: var(--nv-shine-strength, .58); }
}

@keyframes nvPulse {
    0%, 100% { opacity: calc(var(--nv-shine-strength, .58) * .35); }
    50% { opacity: var(--nv-shine-strength, .58); }
}

.nv-trigger-inner:hover {
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.22),
        0 14px 30px rgba(8, 67, 135, .40);
}

.nv-trigger-inner:active { transform: translateY(0) scale(.985); }

.nv-copy {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.nv-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    white-space: nowrap;
}

.nv-title-short { display: none; }

.nv-trigger-btn {
    position: relative;
    z-index: 1;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.22);
    display: grid;
    place-items: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
}

.nv-trigger-svg { width: 17px; height: 17px; color: #fff; }

/* ============ پنل جستجو ============ */
#navomi-overlay {
    position: fixed;
    inset: 0;
    background: rgba(5, 26, 51, .58);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
    z-index: 2147483001;
}

#navomi-overlay.active { opacity: 1; visibility: visible; }

#navomi-sheet {
    position: fixed;
    bottom: -110%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 560px;
    background: linear-gradient(180deg, var(--nv-accent-dark) 0%, var(--nv-accent) 65%, #1560b0 100%);
    color: #fff;
    border-radius: 28px 28px 0 0;
    z-index: 2147483002;
    padding: 18px 18px calc(20px + env(safe-area-inset-bottom, 0px));
    transition: bottom .42s cubic-bezier(.4, 0, .2, 1);
    direction: rtl;
    box-shadow: 0 -20px 45px rgba(5, 30, 60, .42);
    overflow: hidden;
    box-sizing: border-box;
}

#navomi-sheet.active { bottom: 0; }

.nv-aura {
    position: absolute;
    top: -120px;
    inset-inline-end: -90px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.16) 0%, transparent 70%);
    pointer-events: none;
}

.nv-content { position: relative; z-index: 1; }

.nv-handle {
    position: relative;
    z-index: 1;
    width: 48px;
    height: 5px;
    background: rgba(255,255,255,.6);
    border-radius: 10px;
    margin: 0 auto 16px;
}

.nv-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    gap: 12px;
}

.nv-head h3 {
    margin: 0;
    font-size: 18px;
    color: #fff;
    font-weight: 700;
    line-height: 1.4;
}

/* --- فیلد و دکمه، دقیقاً هم‌ارتفاع --- */
.nv-form {
    box-sizing: border-box;
    width: 100%;
    max-width: 300px;   /* عرض کادر جستجو در موبایل/تبلت */
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 9px;
    background: rgba(255,255,255,.14);
    padding: 7px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.30);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
}

.nv-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    height: var(--nv-field);
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.97);
    border-radius: 13px;
    box-sizing: border-box;
    transition: box-shadow .22s ease;
}

.nv-field:focus-within { box-shadow: 0 0 0 3px rgba(255,255,255,.35); }

.nv-form input[type="search"] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 100%;
    margin: 0;
    border: none;
    background: transparent;
    color: var(--nv-accent-dark);
    padding: 0 14px 0 6px;
    outline: none;
    border-radius: 13px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    box-sizing: border-box;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
}

.nv-form input[type="search"]::-webkit-search-cancel-button { display: none; }
.nv-form input::placeholder { color: #7c99bd; font-weight: 500; }

.nv-spinner {
    position: absolute;
    inset-inline-end: 44px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(8,67,135,.18);
    border-top-color: var(--nv-accent);
    animation: nvSpin .7s linear infinite;
    display: none;
}

.nv-spinner.on { display: block; }

@keyframes nvSpin { to { transform: rotate(360deg); } }


/* --- راهنمای کیبورد --- */
.nv-hint {
    display: none;
    align-items: center;
    gap: 7px;
    margin-top: 11px;
    font-size: 11px;
    color: rgba(255,255,255,.72);
}

.nv-hint kbd {
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 6px;
    padding: 1px 6px;
    font-family: inherit;
    font-size: 10px;
    color: #fff;
}

.nv-hint-sep {
    width: 1px;
    height: 11px;
    background: rgba(255,255,255,.25);
}

/* --- جستجوهای اخیر --- */
.nv-recent { margin-top: 14px; }
.nv-recent[hidden] { display: none; }

.nv-recent-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.nv-recent-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: rgba(255,255,255,.85);
}


.nv-recent-body {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.nv-chip:hover { background: rgba(255,255,255,.3); transform: translateY(-1px); }

/* --- نتایج --- */
.nv-results {
    margin-top: 13px;
    display: none;
    flex-direction: column;
    gap: 7px;
    max-height: 42vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-inline-end: 4px;
}

.nv-results.on { display: flex; }

.nv-results::-webkit-scrollbar { width: 5px; }
.nv-results::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 9px; }

.nv-result {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 8px;
    border-radius: 15px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
    text-decoration: none;
    color: #fff;
    transition: background .2s ease, transform .2s ease;
}

.nv-result:hover,
.nv-result.is-active {
    background: rgba(255,255,255,.24);
    transform: translateX(-3px);
}

.nv-thumb {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 11px;
    background: rgba(255,255,255,.2);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.nv-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nv-thumb svg { width: 18px; height: 18px; color: rgba(255,255,255,.8); }

.nv-body { flex: 1 1 auto; min-width: 0; }

.nv-rtitle {
    font-size: 13.5px;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nv-meta {
    font-size: 11.5px;
    color: rgba(255,255,255,.78);
    display: block;
    margin-top: 2px;
}

.nv-go { flex: 0 0 16px; color: rgba(255,255,255,.6); }

.nv-empty {
    text-align: center;
    padding: 18px 10px;
    font-size: 13px;
    color: rgba(255,255,255,.85);
    background: rgba(255,255,255,.1);
    border-radius: 15px;
}

.nv-all {
    display: block;
    text-align: center;
    padding: 10px;
    border-radius: 13px;
    background: #fff;
    color: var(--nv-accent);
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    margin-top: 2px;
}

.nv-skel {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 8px;
    border-radius: 15px;
    background: rgba(255,255,255,.1);
}

.nv-skel-box,
.nv-skel-line {
    background: linear-gradient(90deg, rgba(255,255,255,.14) 25%, rgba(255,255,255,.3) 37%, rgba(255,255,255,.14) 63%);
    background-size: 400% 100%;
    animation: nvShimmer 1.3s ease infinite;
    border-radius: 8px;
}

.nv-skel-box { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 11px; }
.nv-skel-lines { flex: 1; display: flex; flex-direction: column; gap: 7px; }
.nv-skel-line { height: 10px; }
.nv-skel-line.short { width: 45%; }

@keyframes nvShimmer {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.nv-tags {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    font-size: 12px;
    color: rgba(255,255,255,.96);
}

.nv-tags a {
    text-decoration: none;
    background: #fff;
    color: var(--nv-accent);
    padding: 5px 12px;
    border-radius: 20px;
    font-weight: 600;
    transition: transform .2s ease;
}

.nv-tags a:hover { transform: translateY(-1px); }

.nv-tags a:focus-visible,
.nv-chip:focus-visible,
.nv-result:focus-visible,
.nv-all:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

body.nv-sheet-open #navomi-dock { opacity: 0; pointer-events: none; }

/* ============ موبایل کوچک ============ */
@media (max-width: 640px) {
    #navomi-dock,
    #navomi-sheet { --nv-field: 46px; }

    #navomi-dock {
        max-width: calc(100vw - 14px);
        bottom: calc(var(--nv-offset) + 6px + env(safe-area-inset-bottom, 0px));
    }
    .nv-dock { padding: 8px 10px; gap: 4px; }
    .nv-item { min-width: 46px; font-size: 11px; }
    .nv-label { font-size: 10px; }
    .nv-trigger { width: 132px; min-width: 132px; max-width: 132px; margin: 0; }
    .nv-trigger-inner { height: 48px; padding: 0 8px 0 10px; gap: 6px; }
    .nv-title-long { display: none; }
    .nv-title-short { display: block; }
    .nv-title { font-size: 14px; }
    .nv-trigger-btn { width: 32px; height: 32px; flex-basis: 32px; }
    .nv-trigger-svg { width: 16px; height: 16px; }
    .nv-sep { height: 24px; }
    .nv-form input[type="search"] { font-size: 14.5px; }
    .nv-results { max-height: 38vh; }
}

@media (max-width: 480px) {
    .nv-item { min-width: 42px; }
    .nv-svg { width: 22px; height: 22px; }
    .nv-title { font-size: 13px; }
    .nv-trigger { width: 122px; min-width: 122px; max-width: 122px; }
    .nv-head h3 { font-size: 16px; }
}

/* ============ دسکتاپ: ریل عمودی سمت راست ============ */
@media (min-width: 1025px) {
    #navomi-dock,
    #navomi-sheet { --nv-field: 52px; }

    #navomi-dock {
        top: 50%;
        bottom: auto;
        left: auto;
        right: 22px;
        transform: translateY(-50%);
        width: auto;
        max-width: none;
    }

    #navomi-dock.nv-hidden {
        transform: translate(calc(100% + 40px), -50%);
    }

    .nv-dock {
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        width: 88px;
        gap: 10px;
        padding: 14px 9px;
        border-radius: 34px;
        box-shadow:
            0 22px 50px rgba(8, 67, 135, .18),
            inset 0 1px 0 rgba(255,255,255,.9);
    }

    .nv-item {
        min-width: 0;
        width: 100%;
        padding: 9px 0;
        border-radius: 20px;
        gap: 6px;
    }

    .nv-item:hover,
    .nv-item:focus-visible { background: rgba(8, 67, 135, .07); }

    .nv-sep {
        width: 46px;
        height: 1px;
        flex: 0 0 1px;
        margin: 0 auto;
        background: linear-gradient(to right, rgba(8,67,135,.04), rgba(8,67,135,.42), rgba(8,67,135,.04));
    }

    .nv-trigger {
        width: 100%;
        min-width: 0;
        max-width: none;
        margin: 2px 0;
    }

    .nv-trigger-inner {
        flex-direction: column-reverse;
        height: auto;
        padding: 14px 6px;
        border-radius: 26px;
        gap: 8px;
        background: linear-gradient(180deg, var(--nv-accent-dark) 0%, var(--nv-accent) 55%, #1560b0 100%);
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.22),
            0 12px 24px rgba(8, 67, 135, .32);
    }

    .nv-trigger-inner:hover { transform: translateX(-4px); }

    .nv-trigger-btn { width: 40px; height: 40px; flex: 0 0 40px; }
    .nv-trigger-svg { width: 18px; height: 18px; }

    .nv-title-long { display: none; }
    .nv-title-short { display: block; font-size: 12px; }

    #navomi-sheet {
        top: 0;
        bottom: 0;
        left: auto;
        right: -560px;
        transform: none;
        width: 450px;
        max-width: 92vw;
        height: 100%;
        border-radius: 34px 0 0 34px;
        padding: 30px 26px;
        transition: right .45s cubic-bezier(.4, 0, .2, 1);
        box-shadow: -24px 0 60px rgba(5, 30, 60, .38);
        background: linear-gradient(160deg, var(--nv-accent-dark) 0%, var(--nv-accent) 60%, #1560b0 100%);
        display: flex;
        flex-direction: column;
    }

    #navomi-sheet.active { right: 0; bottom: 0; }

    .nv-content { display: flex; flex-direction: column; min-height: 0; flex: 1; }
    .nv-handle { display: none; }
    .nv-head { margin-bottom: 22px; }
    .nv-head h3 { font-size: 20px; }
    .nv-form { max-width: none; margin-inline: 0; }
    .nv-hint { display: flex; }
    .nv-results { max-height: none; flex: 1 1 auto; }
    body.nv-sheet-open #navomi-dock { opacity: 1; pointer-events: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .nv-trigger-inner,
    .nv-svg,
    .nv-result,
    #navomi-dock,
    #navomi-sheet,
    #navomi-overlay { transition: none !important; }
    .nv-glow, .nv-skel-box, .nv-skel-line, .nv-spinner { animation: none !important; }
}

/* ============ محافظت در برابر استایل قالب (دکمه‌ها و آیکن‌ها) ============
   قالب‌ها معمولاً به button و svg استایل عمومی می‌دهند؛ این بخش با ویژگیِ
   بالاتر، شکل و اندازهٔ دکمه‌ها و آیکن‌های جست‌وجو و ناوبری را ثابت نگه می‌دارد. */

#navomi-dock svg,
#navomi-sheet svg {
    display: block;
    flex: none;
    max-width: none;
    max-height: none;
    margin: 0;
    fill: none;
    stroke: currentColor;
}

#navomi-dock .nv-svg { width: 24px; height: 24px; }
#navomi-dock .nv-trigger-svg { width: 18px; height: 18px; }
#navomi-sheet .nv-submit-svg { width: 20px; height: 20px; }
#navomi-sheet .nv-close-svg { width: 18px; height: 18px; }
#navomi-sheet .nv-clear-svg { width: 14px; height: 14px; }
#navomi-sheet .nv-mini-svg { width: 14px; height: 14px; }
#navomi-sheet .nv-go svg { width: 16px; height: 16px; }
#navomi-sheet .nv-thumb svg { width: 18px; height: 18px; }

#navomi-sheet button {
    all: unset;
    box-sizing: border-box;
    cursor: pointer;
    font-family: inherit;
    -webkit-tap-highlight-color: transparent;
}

#navomi-sheet button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* دکمهٔ بستن: دایرهٔ کامل */
#navomi-sheet #navomiClose {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    min-width: 38px;
    max-width: 38px;
    min-height: 38px;
    max-height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    background: rgba(255,255,255,.20);
    color: #fff;
    transition: background .2s ease, transform .2s ease;
}

#navomi-sheet #navomiClose:hover { background: rgba(255,255,255,.36); transform: rotate(90deg); }

#navomi-sheet .nv-clear {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    min-width: 26px;
    flex: 0 0 26px;
    border-radius: 50%;
    margin-inline-end: 10px;
    background: rgba(8,67,135,.10);
    color: var(--nv-accent-dark);
    transition: background .2s ease;
}

#navomi-sheet .nv-clear[hidden] { display: none; }
#navomi-sheet .nv-clear:hover { background: rgba(8,67,135,.20); }

#navomi-sheet .nv-submit {
    display: grid;
    place-items: center;
    width: var(--nv-field);
    height: var(--nv-field);
    min-width: var(--nv-field);
    flex: 0 0 var(--nv-field);
    border-radius: 13px;
    background: #fff;
    color: var(--nv-accent);
    box-shadow: 0 6px 16px rgba(5, 30, 60, .22);
    transition: transform .2s ease;
}

#navomi-sheet .nv-submit:hover { transform: translateY(-1px) scale(1.04); }
#navomi-sheet .nv-submit:active { transform: scale(.96); }

#navomi-sheet .nv-recent-clear {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,.16);
    color: #fff;
    transition: background .2s ease;
}

#navomi-sheet .nv-recent-clear:hover { background: rgba(255,255,255,.3); }

#navomi-sheet .nv-chip {
    display: inline-block;
    padding: 6px 13px;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.24);
    color: #fff;
    font-size: 12px;
    line-height: 1.4;
    transition: background .2s ease, transform .2s ease;
}

#navomi-sheet .nv-form input[type="search"] {
    padding-inline: 14px 6px;
    height: 100%;
    min-height: 0;
    max-width: none;
    margin: 0;
    line-height: normal;
}

/* ============ قالب‌ها و کنترل‌های ظاهری ============ */
#navomi-dock[data-theme] .nv-dock {
    border-radius: var(--nv-radius, 999px);
    box-shadow: 0 18px 40px rgba(var(--nv-shadow-rgb, 8,67,135), var(--nv-shadow-opacity, .2)), inset 0 1px 0 rgba(255,255,255,.9);
}
#navomi-dock[data-theme] .nv-label { display: var(--nv-label-display, block); }
#navomi-dock[data-theme] .nv-svg { width: var(--nv-icon-size, 24px); height: var(--nv-icon-size, 24px); }
#navomi-dock[data-theme] .nv-svg { color: var(--nv-icon-color, var(--nv-accent)); }
#navomi-dock[data-theme] .nv-item:hover .nv-svg,
#navomi-dock[data-theme] .nv-item:focus-visible .nv-svg { color: var(--nv-icon-hover-color, var(--nv-accent-dark)); }
#navomi-dock[data-icon-surface="soft"] .nv-icon,
#navomi-dock[data-icon-surface="tile"] .nv-icon { width: 32px; height: 32px; background: rgba(var(--nv-accent-rgb), .1); box-shadow: inset 0 0 0 1px rgba(var(--nv-accent-rgb), .14); }
#navomi-dock[data-icon-surface="soft"] .nv-icon { border-radius: 50%; }
#navomi-dock[data-icon-surface="tile"] .nv-icon { border-radius: 9px; }
#navomi-dock[data-shine="0"] .nv-glow { display: none; animation: none; }

#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-dock {
    background: linear-gradient(145deg, rgba(var(--nv-surface-rgb), var(--nv-opacity)), rgba(var(--nv-surface-rgb), var(--nv-opacity))), linear-gradient(145deg, rgba(var(--nv-accent-rgb), .18), rgba(var(--nv-surface-rgb), .1));
    border-color: rgba(var(--nv-accent-rgb), .34);
    backdrop-filter: blur(var(--nv-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--nv-blur)) saturate(180%);
}

#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-item { color: var(--nv-item-color); }
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-label { color: var(--nv-item-color); }
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-svg { color: var(--nv-icon-color, var(--nv-accent)); }
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-item:hover .nv-svg,
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-item:focus-visible .nv-svg { color: var(--nv-icon-hover-color, var(--nv-accent-dark)); }
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-sep { background: linear-gradient(to bottom, rgba(var(--nv-accent-rgb), .04), rgba(var(--nv-accent-rgb), .42), rgba(var(--nv-accent-rgb), .04)); }

#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-trigger-inner {
    background: linear-gradient(120deg, rgba(var(--nv-sheet-start-rgb), 1), rgba(var(--nv-sheet-mid-rgb), 1) 58%, rgba(var(--nv-sheet-end-rgb), 1));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 10px 24px rgba(var(--nv-shadow-rgb), .34);
}

#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-trigger-inner:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 14px 30px rgba(var(--nv-shadow-rgb), .42); }
#navomi-dock[data-theme]:not([data-theme="custom"]) .nv-trigger:focus-visible .nv-trigger-inner { box-shadow: 0 0 0 3px rgba(var(--nv-accent-rgb), .36); }

#navomi-overlay[data-theme]:not([data-theme="custom"]) { background: rgba(var(--nv-overlay-rgb), .58); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) {
    background: linear-gradient(150deg, rgba(var(--nv-sheet-start-rgb), var(--nv-opacity)), rgba(var(--nv-sheet-mid-rgb), var(--nv-opacity)) 60%, rgba(var(--nv-sheet-end-rgb), var(--nv-opacity)));
    color: #fff;
    box-shadow: 0 -20px 48px rgba(var(--nv-shadow-rgb), .38);
    backdrop-filter: blur(var(--nv-blur)) saturate(160%);
    -webkit-backdrop-filter: blur(var(--nv-blur)) saturate(160%);
}

#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-aura { background: radial-gradient(circle, rgba(var(--nv-accent-rgb), .3) 0%, transparent 70%); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-form {
    background: rgba(var(--nv-surface-rgb), .18);
    border-color: rgba(var(--nv-surface-rgb), .48);
    backdrop-filter: blur(var(--nv-form-blur));
    -webkit-backdrop-filter: blur(var(--nv-form-blur));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
}

#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-field { background: rgba(var(--nv-field-rgb), .97); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-form input[type="search"] { color: var(--nv-accent-dark); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-form input::placeholder { color: var(--nv-item-color); opacity: .68; }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-spinner { border-color: rgba(var(--nv-accent-rgb), .2); border-top-color: var(--nv-accent); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-hint { color: rgba(var(--nv-sheet-text-rgb), .82); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-result { background: rgba(var(--nv-sheet-text-rgb), .13); border-color: rgba(var(--nv-sheet-text-rgb), .22); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-result:hover,
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-result.is-active { background: rgba(var(--nv-sheet-text-rgb), .25); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-all,
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-tags a { background: var(--nv-chip-bg); color: var(--nv-chip-color); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-clear { background: rgba(var(--nv-accent-rgb), .13); color: var(--nv-accent-dark); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-clear:hover { background: rgba(var(--nv-accent-rgb), .23); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-submit { color: var(--nv-accent); }
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-tags a:focus-visible,
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-chip:focus-visible,
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-result:focus-visible,
#navomi-sheet[data-theme]:not([data-theme="custom"]) .nv-all:focus-visible { outline-color: var(--nv-chip-bg); }

@media (min-width: 1025px) {
    #navomi-dock[data-side="right"] { left: auto; right: 22px; }
    #navomi-dock[data-side="left"] { left: 22px; right: auto; }
    #navomi-dock[data-side="left"].nv-hidden { transform: translate(calc(-100% - 40px), -50%); }
    #navomi-dock[data-side="bottom"] {
        top: auto;
        bottom: calc(var(--nv-offset) + env(safe-area-inset-bottom, 0px));
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        width: max-content;
        max-width: calc(100vw - 32px);
    }
    #navomi-dock[data-side="bottom"].nv-hidden { transform: translate(-50%, calc(100% + var(--nv-offset) + 24px)); }
    #navomi-dock[data-side="bottom"] .nv-dock {
        flex-direction: row;
        align-items: center;
        width: max-content;
        max-width: 100%;
        gap: 6px;
        padding: 9px 11px;
        border-radius: 999px;
    }
    #navomi-dock[data-side="bottom"] .nv-item { width: auto; min-width: 50px; padding: 9px 4px; gap: 6px; }
    #navomi-dock[data-side="bottom"] .nv-sep { width: 1px; height: 26px; flex: 0 0 1px; margin: 0; }
    #navomi-dock[data-side="bottom"] .nv-trigger { width: clamp(160px, 22vw, 220px); min-width: 160px; max-width: 220px; margin: 0 2px; }
    #navomi-dock[data-side="bottom"] .nv-trigger-inner { flex-direction: row; height: 52px; padding: 0 13px; border-radius: 999px; gap: 8px; background: linear-gradient(90deg, var(--nv-accent-dark) 0%, var(--nv-accent) 55%, #1560b0 100%); }
    #navomi-dock[data-side="bottom"] .nv-trigger-inner:hover { transform: translateY(-3px); }
    #navomi-dock[data-side="bottom"] .nv-title-long { display: none; }
    #navomi-dock[data-side="bottom"] .nv-title-short { display: block; font-size: 12px; }
    #navomi-dock[data-side="bottom"] .nv-trigger-btn { width: 40px; height: 40px; flex: 0 0 40px; }
    #navomi-dock[data-side="bottom"] button.nv-support { padding: 9px 4px !important; }
    #navomi-dock[data-side="bottom"][data-theme]:not([data-theme="custom"]) .nv-sep { background: linear-gradient(to bottom, rgba(var(--nv-accent-rgb), .04), rgba(var(--nv-accent-rgb), .42), rgba(var(--nv-accent-rgb), .04)); }
    #navomi-dock button.nv-support { padding: 9px 0 !important; }
    #navomi-dock[data-theme]:not([data-theme="custom"]) .nv-sep { background: linear-gradient(to right, rgba(var(--nv-accent-rgb), .04), rgba(var(--nv-accent-rgb), .42), rgba(var(--nv-accent-rgb), .04)); }
}

@media (prefers-reduced-motion: reduce) {
    #navomi-dock .nv-glow { animation: none !important; }
}
