.JFMediaMod-bg-primary { background-color: var(--bs-primary) !important; }

/* Wrapper اصلی ثابت در پایین */
.JFMediaMod-player-wrapper {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 99999999;
    direction: rtl;
    background: var(--bs-body-bg);
    box-shadow: 0 -5px 25px rgba(0,0,0,0.15);
}

.JFMediaMod-player-wrapper .video-wrapper {
    height: 420px;
}

#playlist-pane {
    /*max-height: 740px;*/
}

/* پنل بازشونده (مخفی در حالت پیش‌فرض) */
.JFMediaMod-expanded-panel {
    height: 0;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: rgba(15, 23, 42, 0.85); /* پس زمینه تیره نیمه‌شفاف */
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    position: relative;
    display: flex;
    flex-direction: column;
}

.JFMediaMod-expanded-panel .container-fluid {
    max-height: 90vh;
}

/* هدر پنل بازشونده */
.JFMediaMod-panel-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.2);
}

/* ویژوالایزر پس‌زمینه */
#JFMediaVisualizer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    filter: blur(25px);
    opacity: 0.6;
    pointer-events: none;
    mix-blend-mode: plus-lighter;
}

/* حالت باز شده (مخفی کردن نوار پایین و نمایش پنل) */
.JFMediaMod-player-wrapper.expanded .JFMediaMod-bottom-bar {
    display: none !important;
}

.JFMediaMod-player-wrapper.expanded .JFMediaMod-expanded-panel {
    height: 100vh; /* برای جا شدن کامل ویدئو و تب‌ها */
}

/* نوار پایین */
.JFMediaMod-bottom-bar {
    position: relative;
    height: 80px;
    background: var(--bs-secondary-bg, var(--bs-body-bg));
    border-top: 1px solid var(--bs-border-color);
}

/* عنوان دوخطه */
.JFMediaMod-title-clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    line-height: 1.4;
    word-break: break-word;
}

.JFMediaMod-progress-container {
    position: relative;
    width: 100%;
    height: 6px;
    background: var(--bs-gray-800);
    border-radius: 4px;
    opacity: 0.6;
    cursor: pointer;
    z-index: 10;
    transition: opacity 0.2s, height 0.2s;
}

.JFMediaMod-progress-container:hover {
    height: 8px;
    opacity: 0.9;
}

.JFMediaMod-progress-played {
    position: absolute;
    top: 0;
    right: 0; /* شروع از سمت راست */
    height: 100%;
    background: var(--bs-info);
    width: 0%;
    pointer-events: none;
    border-radius: 4px;
    box-shadow: 0 0 10px var(--bs-primary);
}

.JFMediaMod-progress-buffer {
    position: absolute;
    top: 0;
    right: 0; /* شروع از سمت راست */
    height: 100%;
    background: rgba(100, 100, 100, 0.4);
    width: 0%;
    pointer-events: none;
    border-radius: 4px;
}

.JFMediaMod-progress-input {
    position: absolute;
    top: 0;
    right: 0; /* شروع از سمت راست */
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    margin: 0;
    direction: rtl; /* برای کارکرد صحیح input range در حالت راست‌چین */
}

/* گرید بندی نوار پایین */
.JFMediaMod-track-info { width: 30%; }
.JFMediaMod-controls { width: 40%; }
.JFMediaMod-extra-controls { width: 30%; }

/* تصویر کاور */
.JFMediaMod-cover-wrapper {
    width: 3.5rem;
    height: 3.5rem;
    position: relative;
    flex-shrink: 0;
    background: var(--bs-gray-900);
    border-radius: 8px;
    overflow: hidden;
}
.JFMediaMod-cover-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* یکسان سازی دکمه‌های کنترل برای هر دو پنل */
.JFMediaMod-ctrl-btn {
    background: transparent;
    border: none;
    color: var(--bs-body-color);
    font-size: 1.4rem;
    padding: 5px 10px;
    transition: color 0.2s, transform 0.2s;
}
.JFMediaMod-expanded-panel .JFMediaMod-ctrl-btn {color: var(--bs-body-color);}
.JFMediaMod-ctrl-btn:hover { color: white !important; transform: scale(1.1); }

.JFMediaMod-play-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: var(--bs-primary) !important;
    color: var(--bs-body-color);
    border: none;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    box-shadow: 0 4px 15px rgba(var(--bs-primary-rgb), 0.4);
    transition: transform 0.2s, filter 0.2s;
}
.JFMediaMod-expanded-panel .JFMediaMod-play-btn { width: 60px; height: 60px; font-size: 2rem; }
.JFMediaMod-play-btn:hover {transform: scale(1.08);filter: brightness(1.1);color: white !important;}
.JFMediaMod-play-btn:active { transform: scale(0.95); }

/* دکمه باز و بسته کردن */
.JFMediaMod-toggle-btn {
    background: transparent;
    color: var(--bs-secondary-color);
    border: none;
    font-size: 1.2rem;
    padding: 0.4rem;
}
.JFMediaMod-toggle-btn:hover { color: var(--bs-body-color); }

/* استایل تب‌ها و لیست */
.JFMediaMod-tabs { border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.JFMediaMod-tabs .nav-link { color: rgba(255,255,255,0.6); border: none; background: transparent; transition: color 0.2s; }
.JFMediaMod-tabs .nav-link:hover { color: white; }
.JFMediaMod-tabs .nav-link.active { color: var(--bs-info); border-bottom: 2px solid var(--bs-info); font-weight: bold; background: transparent; }

.playlist-item {
    padding: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.7);
    transition: background 0.2s, color 0.2s;
}
.playlist-item:hover { background: rgba(255,255,255,0.1); color: white; }
.playlist-item.active-item { color: var(--bs-info); background: rgba(0,0,0,0.3); font-weight: bold; }

.JFMediaMod-card-panel {
    background: rgba(0, 0, 0, 0.25);
    border-radius: 16px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.JFMediaMod-player-wrapper .ratio::before {
    padding: 0;
}

.JFMediaMod-pitch-ctrl {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    padding: 0;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: white;
    font-size: 1.2rem;
    transition: all 0.2s;
}
.JFMediaMod-pitch-ctrl:hover { background: rgba(255, 255, 255, 0.15); }

/* کلاس های کمکی برای تم */
.JFMediaMod-player-wrapper .text-white { color: var(--bs-body-color) !important; }
.JFMediaMod-expanded-panel .text-white { color: #fff !important; }
.JFMediaMod-player-wrapper .text-white-50 { color: var(--bs-secondary-color) !important; }
.JFMediaMod-expanded-panel .text-white-50 { color: rgba(255,255,255,0.5) !important; }
.JFMediaMod-player-wrapper .bg-black { background: var(--bs-dark) !important; }

/* Custom Scrollbar */
.JFMediaMod-expanded-panel ::-webkit-scrollbar { width: 6px; height: 6px; }
.JFMediaMod-expanded-panel ::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); border-radius: 4px; }
.JFMediaMod-expanded-panel ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; }
.JFMediaMod-expanded-panel ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.4); }


.JFMediaMod-swiper-container {
    width: 100%;
    /* به جای کلاس ratio-16x9 بوت‌استرپ می‌توانید از این روش استفاده کنید تا ارتفاع منعطف‌تر باشد */
    aspect-ratio: 16 / 9; 
    max-height: 45vh; /* جلوگیری از بیش از حد بزرگ شدن در مانیتورهای بزرگ */
    background-color: #000;
}

.swiper-slide {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: contain; /* یا cover بسته به سلیقه شما */
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}

/* لایه ویدئو - غیرقابل کلیک */
.JFMediaMod-video-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none; /* این خط تداخل موس با ویدئو را کاملاً از بین می‌برد */
}

/* لایه شفاف برای کنترل درگ Swiper */
.JFMediaMod-drag-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    cursor: grab;
}

.JFMediaMod-drag-layer:active {
    cursor: grabbing;
}


.JFMediaMod-is-fullscreen .player-container {
    width: 100%;
    height: 100vh;
    position: fixed;
    justify-content: flex-end;
    z-index: 3;
}

.JFMediaMod-is-fullscreen.fullscreen-controls-show #JFMediaMod-player-control-box {
    opacity: 1;
}

.JFMediaMod-is-fullscreen div#JFMediaMod-player-control-box {
    opacity: 0;
}


.JFMediaMod-is-fullscreen .JFMediaMod-swiper-container {
    height: 100%;
    z-index: -1;
    position: absolute;
    aspect-ratio: auto;
    max-height: none;
}

.JFMediaMod-is-fullscreen .container-fluid {
    position: fixed !important;
    width: 100%;
    padding: 0 !important;
}

/* ---- استایل‌های پنل ضبط حرفه‌ای ---- */
.jf-recorder-panel {
    background: #0b0c2a; /* رنگ پس‌زمینه تیره بر اساس تصویر */
    border-radius: 1.5rem;
    color: #ffffff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    position: relative;
    overflow: hidden;
}

/* آیکون میکروفون */
.jf-mic-circle {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg, #e020a1, #4a00e0);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.5rem;
    margin: 0 auto;
    transition: all 0.3s ease;
}
.jf-mic-circle.recording {
    animation: jf-pulse 1.5s infinite;
}
@keyframes jf-pulse {
    0% { box-shadow: 0 0 0 0 rgba(224, 32, 161, 0.7); }
    70% { box-shadow: 0 0 0 20px rgba(224, 32, 161, 0); }
    100% { box-shadow: 0 0 0 0 rgba(224, 32, 161, 0); }
}

/* تایمر */
.jf-record-timer {
    font-family: 'Courier New', Courier, monospace;
    font-size: 1.25rem;
    color: #ff4785; /* رنگ صورتی/سرخابی */
    font-weight: bold;
}

/* دکمه‌های کنترل */
.jf-btn-pause {
    background: linear-gradient(135deg, #4facfe, #00f2fe);
    color: white;
    border: none;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}
.jf-btn-pause:active { transform: scale(0.9); }

.jf-btn-stop {
    background: linear-gradient(135deg, #f857a6, #ff5858);
    color: white;
    border: none;
    border-radius: 50px;
    padding: 8px 45px;
    font-size: 1.3rem;
    font-weight: bold;
    transition: transform 0.2s;
}
.jf-btn-stop:active { transform: scale(0.95); }

/* موج صوتی (Visualizer بصری) */
.jf-waveform {
    display: flex;
    gap: 4px;
    height: 50px;
    align-items: center;
    justify-content: center;
}
.jf-wave-bar {
    width: 4px;
    background: linear-gradient(to top, #4facfe, #f857a6);
    border-radius: 2px;
    height: 10%;
    transition: height 0.1s ease;
}
:root{
        --jfmp-bg: #09101c;
        --jfmp-bg-2: #0f1726;
        --jfmp-panel: rgba(18, 25, 39, 0.88);
        --jfmp-panel-2: rgba(14, 20, 34, 0.92);
        --jfmp-line: #2b3648;
        --jfmp-line-soft: rgba(148, 163, 184, 0.16);
        --jfmp-text: #e5edf7;
        --jfmp-text-soft: #94a3b8;
        --jfmp-cyan: #10b8f5;
        --jfmp-cyan-soft: rgba(16, 184, 245, 0.20);
        --jfmp-amber: #f59e0b;
        --jfmp-amber-soft: rgba(245, 158, 11, 0.18);
        --jfmp-pink: #ff4d8d;
        --jfmp-violet: #8b5cf6;
        --jfmp-green: #22c55e;
        --jfmp-danger: #ef4444;
        --jfmp-shadow: 0 20px 60px rgba(0,0,0,.45);
        --jfmp-radius-xl: 24px;
        --jfmp-radius-lg: 18px;
        --jfmp-radius-md: 14px;
        --jfmp-radius-sm: 10px;
    }

    #recorder-ui-panel.jf-recorder-panel.jfmp-shell{
        position: relative;
        color: var(--jfmp-text);
        background:
            radial-gradient(circle at top right, rgba(139, 92, 246, 0.16), transparent 24%),
            radial-gradient(circle at top left, rgba(16, 184, 245, 0.14), transparent 28%),
            linear-gradient(180deg, #08111d 0%, #0d1422 48%, #0a101b 100%);
        border: 1px solid rgba(148, 163, 184, 0.12);
        border-radius: 28px;
        box-shadow: var(--jfmp-shadow);
        backdrop-filter: blur(14px);
    }

    #recorder-ui-panel.jf-recorder-panel.jfmp-shell::before{
        content:"";
        position:absolute;
        inset:0;
        border-radius:28px;
        pointer-events:none;
        background:
            linear-gradient(180deg, rgba(255,255,255,0.04), transparent 20%),
            repeating-linear-gradient(
                90deg,
                rgba(255,255,255,0.015) 0,
                rgba(255,255,255,0.015) 1px,
                transparent 1px,
                transparent 48px
            );
        opacity:.45;
    }

    .jfmp-section-card{
        position: relative;
        background: linear-gradient(180deg, rgba(20, 28, 43, .92), rgba(12, 18, 31, .95));
        border: 1px solid var(--jfmp-line-soft);
        border-radius: var(--jfmp-radius-xl);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 18px 45px rgba(0,0,0,.25);
        overflow: hidden;
    }

    .jfmp-section-card::after{
        content:"";
        position:absolute;
        inset:0;
        pointer-events:none;
        background: linear-gradient(135deg, rgba(255,255,255,0.03), transparent 35%);
    }

    .jfmp-toolbar{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:1rem;
        padding: .95rem 1rem;
        border-radius: 18px;
        background: linear-gradient(180deg, rgba(14,20,34,.95), rgba(10,15,27,.95));
        border: 1px solid var(--jfmp-line-soft);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
    }

    .jfmp-brand{
        display:flex;
        align-items:center;
        gap:.75rem;
    }

    .jfmp-brand-badge{
        width: 44px;
        height: 44px;
        border-radius: 14px;
        display:grid;
        place-items:center;
        background: radial-gradient(circle at 30% 30%, rgba(16,184,245,.35), rgba(16,184,245,.08));
        border: 1px solid rgba(16,184,245,.35);
        box-shadow: 0 0 24px rgba(16,184,245,.16);
        color: var(--jfmp-cyan);
        font-size: 1.15rem;
    }

    .jfmp-title{
        font-size: 1rem;
        font-weight: 800;
        letter-spacing: -.02em;
        margin: 0;
        color: #f8fbff;
    }

    .jfmp-subtitle{
        margin: 0;
        font-size: .78rem;
        color: var(--jfmp-text-soft);
    }

    .jfmp-chip-row{
        display:flex;
        flex-wrap:wrap;
        gap:.5rem;
    }

    .jfmp-chip{
        display:inline-flex;
        align-items:center;
        gap:.45rem;
        padding:.5rem .75rem;
        border-radius:999px;
        border:1px solid rgba(148,163,184,.18);
        background: rgba(255,255,255,.03);
        color: #c9d6e6;
        font-size: .74rem;
        line-height: 1;
    }

    .jfmp-chip--cyan{
        border-color: rgba(16,184,245,.28);
        color:#bcecff;
        background: rgba(16,184,245,.08);
    }

    .jfmp-chip--amber{
        border-color: rgba(245,158,11,.28);
        color:#ffe1ab;
        background: rgba(245,158,11,.08);
    }

    .jf-neo-shadow { filter: drop-shadow(0 0 15px rgba(0, 212, 255, 0.6)); }

    .jfmp-center-stage{
        max-width: 900px;
        margin: 0 auto;
    }

    .jfmp-view{
        position: relative;
        z-index: 1;
    }

    .jfmp-hero{
        padding: 1.2rem;
        border-radius: 22px;
        background:
            radial-gradient(circle at top center, rgba(255,255,255,.04), transparent 38%),
            linear-gradient(180deg, rgba(17,24,39,.96), rgba(10,15,26,.98));
        border:1px solid rgba(148,163,184,.13);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
    }

    .jfmp-status-icon{
        width: 92px;
        height: 92px;
        margin: 0 auto 1rem;
        border-radius: 50%;
        display:grid;
        place-items:center;
        font-size: 2rem;
        color: #fff;
        background:
            radial-gradient(circle at 30% 30%, rgba(255,255,255,.2), transparent 25%),
            linear-gradient(180deg, rgba(245,158,11,.35), rgba(245,158,11,.12));
        border: 1px solid rgba(245,158,11,.35);
        box-shadow: 0 0 30px rgba(245,158,11,.18), inset 0 1px 0 rgba(255,255,255,.08);
    }

    .jfmp-headline{
        color:#f8fbff;
        font-weight:800;
        letter-spacing:-.02em;
    }

    .jfmp-muted{
        color: var(--jfmp-text-soft) !important;
    }

    .jfmp-primary-btn.btn,
    .jfmp-warning-btn.btn,
    .jfmp-danger-btn.btn,
    .jfmp-success-btn.btn{
        border-radius: 1rem;
        padding-inline: 1.15rem;
        box-shadow: 0 10px 25px rgba(0,0,0,.2);
    }

    .jfmp-primary-btn.btn{
        background: linear-gradient(180deg, #28c6ff, #0ea5e9);
        border-color: #0ea5e9;
        color:#041019;
        font-weight:700;
    }

    .jfmp-warning-btn.btn{
        background: linear-gradient(180deg, #ffcb57, #f59e0b);
        border-color: #f59e0b;
        color:#2b1800;
        font-weight:700;
    }

    .jfmp-danger-btn.btn{
        background: linear-gradient(180deg, #ff6b95, #ff4d8d);
        border-color: #ff4d8d;
        color:#fff;
        font-weight:700;
    }

    .jfmp-success-btn.btn{
        background: linear-gradient(180deg, #4ade80, #22c55e);
        border-color: #22c55e;
        color:#03160a;
        font-weight:700;
    }

    .jfmp-outline-btn.btn{
        border-radius: 1rem;
        border-color: rgba(148,163,184,.24);
        color: #d6e3f3;
        background: rgba(255,255,255,.02);
    }

    .jfmp-setup-grid{
        display:grid;
        grid-template-columns: 1fr;
        gap:1rem;
    }

    .jfmp-panel-box{
        background: linear-gradient(180deg, rgba(13,20,33,.95), rgba(10,15,26,.98));
        border: 1px solid rgba(148,163,184,.13);
        border-radius: 20px;
        padding: 1rem;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
    }

    .jfmp-panel-box--cyan{
        box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 0 0 1px rgba(16,184,245,.08);
    }

    .jfmp-panel-box--amber{
        box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 0 0 1px rgba(245,158,11,.08);
    }

    .jfmp-label{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:.75rem;
        color:#d9e6f3;
        font-size:.82rem;
        font-weight:600;
        margin-bottom:.45rem;
    }

    .jfmp-label small,
    .jfmp-label .jfmp-value{
        color: var(--jfmp-text-soft);
        font-weight:700;
    }

    .jfmp-select.form-select,
    .jfmp-select.form-control{
        background-color: rgba(6,10,18,.8);
        border-color: rgba(148,163,184,.2);
        color:#eef6ff;
        border-radius:14px;
        min-height: 46px;
    }

    .jfmp-select:focus{
        box-shadow: 0 0 0 .25rem rgba(16,184,245,.15);
        border-color: rgba(16,184,245,.4);
    }

    .jfmp-meter-strip{
        display:grid;
        grid-template-columns: repeat(24, 1fr);
        gap:4px;
        padding:.75rem;
        border-radius: 16px;
        background: linear-gradient(180deg, rgba(10,15,27,.95), rgba(12,18,32,.98));
        border:1px solid rgba(148,163,184,.13);
    }

    .jfmp-meter-strip span{
        display:block;
        height:12px;
        border-radius:999px;
        background: linear-gradient(180deg, rgba(16,184,245,.95), rgba(16,184,245,.35));
        opacity: .18;
    }

    .jfmp-meter-strip span:nth-child(16),
    .jfmp-meter-strip span:nth-child(17),
    .jfmp-meter-strip span:nth-child(18),
    .jfmp-meter-strip span:nth-child(19){
        background: linear-gradient(180deg, rgba(245,158,11,.95), rgba(245,158,11,.35));
    }

    .jfmp-meter-strip span:nth-child(20),
    .jfmp-meter-strip span:nth-child(21),
    .jfmp-meter-strip span:nth-child(22),
    .jfmp-meter-strip span:nth-child(23),
    .jfmp-meter-strip span:nth-child(24){
        background: linear-gradient(180deg, rgba(255,77,141,.95), rgba(255,77,141,.35));
    }

    .jfmp-wave-shell{
        border-radius: 20px;
        overflow:hidden;
        background: linear-gradient(180deg, rgba(8,13,23,.98), rgba(12,18,32,.98));
        border:1px solid rgba(16,184,245,.12);
        padding:.65rem .8rem;
    }

    .jfmp-mic-stage{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:.9rem;
    }

    .jfmp-mic-ring,
    .jf-mic-circle{
        width: 108px;
        height: 108px;
        border-radius: 50%;
        display:grid;
        place-items:center;
        font-size: 2rem;
        background:
            radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), transparent 24%),
            radial-gradient(circle at center, rgba(255,77,141,.14), rgba(255,77,141,.04) 55%, transparent 70%),
            linear-gradient(180deg, rgba(18,25,39,.98), rgba(10,14,24,.98));
        color:#fff;
        border: 1px solid rgba(255,77,141,.28);
        box-shadow:
            0 0 0 10px rgba(255,77,141,.04),
            0 0 34px rgba(255,77,141,.16),
            inset 0 1px 0 rgba(255,255,255,.05);
    }

    .jfmp-record-timer,
    .jf-record-timer{
        padding: .55rem 1rem;
        border-radius: 1rem;
        background: rgba(255,77,141,.08);
        border: 1px solid rgba(255,77,141,.22);
        color: #ffd6e5;
        font-weight: 800;
        letter-spacing: .08em;
        direction: ltr;
        display:inline-flex;
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-size: 1.15rem;
    }

    /* Legacy timeline wrapper preserved */
    .jf-timeline-wrapper.jfmp-timeline-shell{
        background: linear-gradient(180deg, rgba(10,15,27,.98), rgba(12,18,32,.98));
        border-radius: 20px;
        overflow: hidden;
        border: 1px solid rgba(148,163,184,.13);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
    }

    .jfmp-track-headers{
        width: 220px;
        background:
            linear-gradient(180deg, rgba(15,23,42,.98), rgba(10,15,26,.98));
        border-inline-end: 1px solid rgba(148,163,184,.12);
    }

    .track-header.jfmp-track-header{
        min-height: 110px;
        height: 110px;
        display:flex;
        flex-direction:column;
        justify-content:center;
        gap:.55rem;
        background: transparent;
        border-bottom: 1px solid rgba(148,163,184,.12);
        padding: .9rem;
    }

    .track-header.jfmp-track-header:last-child{
        border-bottom:none;
    }

    .jfmp-track-title{
        display:flex;
        align-items:center;
        gap:.55rem;
        font-weight:800;
        font-size:.84rem;
    }

    .jfmp-track-title--music{ color: #8de2ff; }
    .jfmp-track-title--vocal{ color: #ffd591; }

    .jfmp-track-tools{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:.75rem;
    }

    .jfmp-track-btns .btn{
        min-width: 34px;
        border-radius: 10px;
        font-weight: 800;
    }

    .jfmp-track-meter{
        display:grid;
        grid-template-columns: repeat(12, 1fr);
        gap:3px;
        flex:1;
    }

    .jfmp-track-meter span{
        height: 8px;
        border-radius: 1rem;
        background: rgba(148,163,184,.14);
    }

    .jfmp-track-meter--music span:nth-child(-n+7){ background: rgba(16,184,245,.28); }
    .jfmp-track-meter--vocal span:nth-child(-n+7){ background: rgba(245,158,11,.28); }

    .jf-canvas-container.jfmp-canvas-container{
        height: 220px;
        overflow-x: auto;
        overflow-y: hidden;
        position: relative;
        background:
            linear-gradient(180deg, rgba(13,20,33,.88), rgba(17,24,39,.96)),
            repeating-linear-gradient(
                90deg,
                rgba(255,255,255,.02) 0,
                rgba(255,255,255,.02) 1px,
                transparent 1px,
                transparent 64px
            );
    }

    #main-timeline-canvas{
        display:block;
    }

    #timeline-cursor{
        width: 2px;
        height: 100%;
        background: var(--jfmp-pink);
        position: absolute;
        top: 0;
        left: 0;
        box-shadow: 0 0 8px 2px rgba(255, 51, 102, 0.6);
        pointer-events: none;
        z-index: 10;
    }

    .jfmp-transport{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:1rem;
        padding: .85rem 1rem;
        border-radius: 18px;
        border: 1px solid rgba(148,163,184,.12);
        background: linear-gradient(180deg, rgba(12,18,32,.96), rgba(10,15,26,.98));
    }

    .jfmp-transport-cluster{
        display:flex;
        align-items:center;
        gap:.55rem;
        flex-wrap:wrap;
    }

    .jfmp-transport-btn.btn{
        width: 42px;
        height: 42px;
        border-radius: 14px;
        padding: 0;
        display:grid;
        place-items:center;
        box-shadow: 0 10px 25px rgba(0,0,0,.24);
    }

    .jfmp-transport-btn--play.btn{
        background: linear-gradient(180deg, #31d6ff, #0ea5e9);
        border-color:#0ea5e9;
        color:#041018;
    }

    .jfmp-transport-btn--stop.btn{
        background: linear-gradient(180deg, #475569, #334155);
        border-color:#475569;
        color:#f8fbff;
    }

    .jfmp-time-readout{
        display:inline-flex;
        align-items:center;
        gap:.5rem;
        padding: .55rem .85rem;
        border-radius: 1rem;
        background: rgba(16,184,245,.08);
        color: #a8ebff;
        border: 1px solid rgba(16,184,245,.18);
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
        font-weight: 700;
        direction:ltr;
    }

    .jfmp-zoom-box{
        display:flex;
        align-items:center;
        gap:.65rem;
        padding: .45rem .75rem;
        border-radius: 1rem;
        background: rgba(255,255,255,.03);
        border: 1px solid rgba(148,163,184,.12);
    }

    .jfmp-nav.nav-pills .nav-link{
        border-radius: 1rem;
        color: #dce7f6;
        border: 1px solid transparent;
        background: transparent;
    }

    .jfmp-nav.nav-pills .nav-link.active{
        background: linear-gradient(180deg, rgba(139,92,246,.28), rgba(139,92,246,.18));
        border-color: rgba(139,92,246,.35);
        color:#f6f1ff;
        box-shadow: 0 0 20px rgba(139,92,246,.12);
    }

    .jfmp-tab-panel{
        background: linear-gradient(180deg, rgba(12,18,32,.96), rgba(10,15,26,.98));
        border:1px solid rgba(148,163,184,.13);
        border-radius: 20px;
        padding: 1rem;
    }

    .jfmp-knob-grid{
        display:grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap:1rem;
    }

    .jfmp-fx-card{
        height:100%;
        background: linear-gradient(180deg, rgba(15,23,42,.96), rgba(11,17,29,.98));
        border:1px solid rgba(148,163,184,.13);
        border-radius:20px;
        padding:1rem;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
    }

    .jfmp-fx-card h6{
        font-weight:800;
        margin-bottom:.9rem;
    }

    .jfmp-fx-card--eq h6{ color:#8de2ff; }
    .jfmp-fx-card--reverb h6{ color:#ffd591; }
    .jfmp-fx-card--comp h6{ color:#a7f3c1; }

    .jfmp-knob-row{
        display:grid;
        grid-template-columns: 78px 1fr;
        align-items:center;
        gap:.9rem;
        margin-bottom:1rem;
    }

    .jfmp-knob-wrap{
        width: 78px;
        height: 78px;
        display:grid;
        place-items:center;
        border-radius:50%;
        background:
            radial-gradient(circle at 30% 30%, rgba(255,255,255,.12), transparent 25%),
            linear-gradient(180deg, #1f2937, #111827);
        border:1px solid rgba(148,163,184,.18);
        box-shadow:
            inset 0 2px 8px rgba(255,255,255,.05),
            inset 0 -8px 16px rgba(0,0,0,.35),
            0 10px 24px rgba(0,0,0,.28);
    }

    .jfmp-knob-svg{
        width: 66px;
        height: 66px;
        display:block;
    }

    .jfmp-knob-meta{
        min-width: 0;
    }

    .jfmp-knob-title{
        font-size: .82rem;
        font-weight: 700;
        color:#e6eef8;
        margin-bottom:.25rem;
    }

    .jfmp-knob-value{
        font-size: .76rem;
        color: var(--jfmp-text-soft);
        margin-bottom:.45rem;
    }

    .jfmp-slider-shell{
        padding: .35rem .65rem;
        border-radius: 12px;
        background: rgba(255,255,255,.03);
        border: 1px solid rgba(148,163,184,.10);
    }

    .jfmp-output-audio{
        background: rgba(255,255,255,.03);
        border-radius: 16px;
        border:1px solid rgba(148,163,184,.12);
        padding:.4rem;
    }

    .jfmp-footer-actions{
        display:flex;
        gap:.75rem;
        flex-wrap:wrap;
        align-items:center;
        border-top:1px solid rgba(148,163,184,.12);
        padding-top:1rem;
        margin-top:.75rem;
    }

    .jf-waveform{
        display:flex;
        align-items:flex-end;
        justify-content:center;
        gap:3px;
        height:40px;
    }

    .waveform-bar{
        width:4px;
        background:#0ea5e9;
        height:5px;
        border-radius:2px;
        transition:height .1s;
    }

    .playing .waveform-bar{
        animation:bounceBar 1s infinite alternate ease-in-out;
    }

    @keyframes bounceBar{
        0%{ height:5px; }
        100%{ height:40px; }
    }

    .jfmp-modal .modal-content{
        background:
            radial-gradient(circle at top center, rgba(16,184,245,.08), transparent 34%),
            linear-gradient(180deg, #0d1522, #0a101b);
        border:1px solid rgba(148,163,184,.14);
        border-radius: 22px;
        box-shadow: var(--jfmp-shadow);
    }

    .jfmp-calib-hero{
        padding:1rem;
        border-radius:18px;
        background: linear-gradient(180deg, rgba(12,18,32,.96), rgba(10,15,27,.98));
        border:1px solid rgba(148,163,184,.12);
    }

    .jfmp-calib-alert{
        background: rgba(245,158,11,.10);
        border:1px solid rgba(245,158,11,.20);
        color:#ffe0a8;
        border-radius:14px;
    }

    input[type="range"].form-range{
        accent-color: var(--jfmp-cyan);
    }

    .track-vol[data-track="vocal"],
    .fx-slider[data-group="reverb"]{
        accent-color: var(--jfmp-amber);
    }

    .fx-slider[data-group="comp"]{
        accent-color: var(--jfmp-green);
    }
    
    /* ساختار پایه ردیف نوب‌ها */
.jfmp-knob-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

/* محفظه نگهدارنده گرادینت دایره‌ای */
.jfmp-knob-wrap {
    width: 68px;
    height: 68px;
    flex-shrink: 0;
    position: relative;
}

.jfmp-knob-svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

/* بدنه پشتی نوب */
.jfmp-knob-bg {
    fill: #111827;
    stroke: #1f2937;
    stroke-width: 2;
}

/* مسیر ریلِ چرخش نوب (۲۷۰ درجه) */
.jfmp-knob-track {
    fill: none;
    stroke-width: 6;
    stroke-linecap: round;
    transform: rotate(135deg);
    transform-origin: 50% 50%;
}

/* مسیر پرشونده نوب بر اساس زاویه */
.jfmp-knob-fill {
    fill: none;
    stroke-width: 6;
    stroke-linecap: round;
    transform: rotate(135deg);
    transform-origin: 50% 50%;
    transition: stroke-dashoffset 0.05s ease-out;
}

/* دایره درونی نوب */
.jfmp-knob-center {
    fill: #1f2937;
    stroke: rgba(255, 255, 255, 0.05);
    stroke-width: 1;
}

/* عقربه/نشانگر وضعیت نوب */
.jfmp-knob-pointer {
    stroke-width: 4;
    stroke-linecap: round;
    transform-origin: 50% 50%;
    transition: transform 0.05s ease-out;
}

/* رنگ‌بندی‌های اختصاصی بر اساس کارکرد */
/* ۱. اکولایزر (Cyan) */
.jfmp-track-eq { stroke: rgba(56, 216, 255, 0.12); }
.jfmp-fill-eq { stroke: #38d8ff; }
.jfmp-knob-row[data-unit] .jfmp-fill-eq {
    filter: drop-shadow(0 0 2px rgba(56, 216, 255, 0.5));
}

/* ۲. ریورب (Orange/Amber) */
.jfmp-track-reverb { stroke: rgba(245, 158, 11, 0.12); }
.jfmp-fill-reverb { stroke: #f59e0b; }
.jfmp-knob-row[data-unit] .jfmp-fill-reverb {
    filter: drop-shadow(0 0 2px rgba(245, 158, 11, 0.5));
}

/* ۳. کمپرسور (Green) */
.jfmp-track-comp { stroke: rgba(34, 197, 94, 0.12); }
.jfmp-fill-comp { stroke: #22c55e; }
.jfmp-knob-row[data-unit] .jfmp-fill-comp {
    filter: drop-shadow(0 0 2px rgba(34, 197, 94, 0.5));
}
.jfmp-knob-pointer { stroke: #d8ffe8; }


    @media (max-width: 991.98px){
        .jfmp-toolbar{
            flex-direction:column;
            align-items:flex-start;
        }

        .jfmp-track-headers{
            width: 176px;
        }

        .track-header.jfmp-track-header{
            min-height: 100px;
            height: 100px;
        }

        .jf-canvas-container.jfmp-canvas-container{
            height: 200px;
        }

        .jfmp-knob-grid{
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 767.98px){
        #recorder-ui-panel.jf-recorder-panel.jfmp-shell{
            padding: 1rem !important;
            border-radius: 22px;
        }

        .jfmp-toolbar{
            padding:.85rem;
            border-radius:16px;
        }

        .jfmp-brand{
            width:100%;
        }

        .jfmp-chip-row{
            width:100%;
        }

        .jfmp-hero{
            padding: 1rem;
        }

        .jfmp-mic-ring,
        .jf-mic-circle{
            width: 88px;
            height: 88px;
            font-size: 1.7rem;
        }

        .jfmp-transport{
            flex-direction:column;
            align-items:stretch;
        }

        .jfmp-transport-cluster{
            justify-content:center;
        }

        .jfmp-zoom-box{
            width:100%;
            justify-content:center;
        }

        .jf-timeline-wrapper.jfmp-timeline-shell{
            flex-direction:column;
        }

        .jfmp-track-headers{
            width:100%;
            border-inline-end:none;
            border-bottom:1px solid rgba(148,163,184,.12);
        }

        .track-header.jfmp-track-header{
            min-height:auto;
            height:auto;
        }

        .jf-canvas-container.jfmp-canvas-container{
            height: 180px;
            min-height: 180px;
        }

        .jfmp-knob-row{
            grid-template-columns: 68px 1fr;
            gap:.75rem;
        }

        .jfmp-knob-wrap{
            width:68px;
            height:68px;
        }

        .jfmp-knob-svg{
            width:58px;
            height:58px;
        }

        .jfmp-footer-actions{
            flex-direction:column;
            align-items:stretch;
        }

        .jfmp-footer-actions .btn,
        .jfmp-footer-actions .form-control,
        .jfmp-footer-actions .form-select,
        .jfmp-footer-actions a.btn{
            width:100%;
        }
    }

@media (max-width: 992px) {
    .JFMediaMod-player-wrapper.expanded .JFMediaMod-expanded-panel { height: 100vh; }
}

/* ریسپانسیو (موبایل) */
@media (max-width: 768px) {
    .JFMediaMod-track-info {width: 35%;}
    .JFMediaMod-controls {width: 65%;}
    .JFMediaMod-extra-controls {width: 0%;/* display: none !important; */}
    .JFMediaMod-track-info .text-white-50, .JFMediaMod-track-info .text-secondary { display: none; }
}