.fm-sidebar {
    --fm-navy: #0b5f7d;
    --fm-teal-dark: #067a94;
    --fm-teal: #06acc6;
    --fm-teal-light: #52c4da;
    --fm-cyan: #52c4da;
    --fm-ice: #eaf8fd;
    --fm-orange: #F4F41C;
    font-family: 'Segoe UI', Roboto, Arial, sans-serif;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e3e8ec;
    background: #fff;
    animation: fmFadeIn 0.5s ease both;
}
.fm-sidebar .content { padding: 0; }
.fm-sidebar em { font-style: normal; }

.fm-header {
    position: relative;
    padding: 14px 16px;
    background: linear-gradient(120deg, var(--fm-navy) 0%, var(--fm-teal-dark) 55%, var(--fm-teal) 100%);
    color: #fff;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.6px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
}
.fm-header::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 140px;
    height: 140px;
    background: radial-gradient(circle, rgba(79, 216, 239, 0.35) 0%, transparent 70%);
    animation: fmPulseBg 4s ease-in-out infinite;
}
.fm-header .fm-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fm-orange);
    box-shadow: 0 0 0 0 rgba(244, 244, 28, 0.7);
    animation: fmDotPing 2s ease-out infinite;
    flex-shrink: 0;
    overflow: hidden;
    text-indent: -9999px;
}

.fm-item {
    position: relative;
    border-bottom: 1px solid #f0e372;
    background: linear-gradient(135deg, #fff6a0 0%, #ffe873 100%);
    opacity: 0;
    transform: translateX(-8px);
    animation: fmSlideIn 0.45s ease forwards;
}
.fm-item:nth-child(1){animation-delay:.05s}
.fm-item:nth-child(2){animation-delay:.10s}
.fm-item:nth-child(3){animation-delay:.15s}
.fm-item:nth-child(4){animation-delay:.20s}
.fm-item:nth-child(5){animation-delay:.25s}
.fm-item:nth-child(6){animation-delay:.30s}
.fm-item:nth-child(7){animation-delay:.35s}
.fm-item:last-child { border-bottom: none; }

.fm-item::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--fm-teal-light);
    transform: scaleY(0);
    transform-origin: center;
    transition: transform 0.28s ease;
}

.fm-item a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    color: var(--fm-navy);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.2px;
    transition: color 0.25s ease, background 0.25s ease, padding-left 0.25s ease;
}

.fm-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: 50%;
    background: var(--fm-teal-dark);
    transition: background 0.25s ease, transform 0.35s ease;
    overflow: hidden;
    text-indent: -9999px;
    box-shadow: 0 1px 4px rgba(3, 11, 48, 0.15);
}
.fm-icon::before {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    background-color: #ffffff;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    transition: background-color 0.25s ease;
}

.fm-icon-team::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M23%2021v-2a4%204%200%200%200-3-3.87%22/%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M23%2021v-2a4%204%200%200%200-3-3.87%22/%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22/%3E%3C/svg%3E");
}
.fm-icon-reviewer::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.8%202.3A.3.3%200%201%200%205.3%202a.3.3%200%200%200-.5.3%22/%3E%3Cpath%20d%3D%22M8%202v4a4%204%200%200%201-4%204H2a2%202%200%200%200%200%204h1a4%204%200%200%201%204%204v2a4%204%200%200%200%208%200v-3.5%22/%3E%3Cpath%20d%3D%22M19.3%2014.8a.3.3%200%201%200%20.5-.3.3.3%200%200%200-.5.3%22/%3E%3Cpath%20d%3D%22M16%202v4a4%204%200%200%200%204%204h2%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.8%202.3A.3.3%200%201%200%205.3%202a.3.3%200%200%200-.5.3%22/%3E%3Cpath%20d%3D%22M8%202v4a4%204%200%200%201-4%204H2a2%202%200%200%200%200%204h1a4%204%200%200%201%204%204v2a4%204%200%200%200%208%200v-3.5%22/%3E%3Cpath%20d%3D%22M19.3%2014.8a.3.3%200%201%200%20.5-.3.3.3%200%200%200-.5.3%22/%3E%3Cpath%20d%3D%22M16%202v4a4%204%200%200%200%204%204h2%22/%3E%3C/svg%3E");
}
.fm-icon-focus::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpath%20d%3D%22M14%202v6h6%22/%3E%3Cpath%20d%3D%22M9%2013h6M9%2017h6M9%209h1%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpath%20d%3D%22M14%202v6h6%22/%3E%3Cpath%20d%3D%22M9%2013h6M9%2017h6M9%209h1%22/%3E%3C/svg%3E");
}
.fm-icon-guidelines::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20%22/%3E%3Cpath%20d%3D%22M6.5%202H20v20H6.5A2.5%202.5%200%200%201%204%2019.5v-15A2.5%202.5%200%200%201%206.5%202z%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20%22/%3E%3Cpath%20d%3D%22M6.5%202H20v20H6.5A2.5%202.5%200%200%201%204%2019.5v-15A2.5%202.5%200%200%201%206.5%202z%22/%3E%3C/svg%3E");
}
.fm-icon-submission::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2016l-4-4-4%204%22/%3E%3Cpath%20d%3D%22M12%2012v9%22/%3E%3Cpath%20d%3D%22M20.4%2017.5A4.5%204.5%200%200%200%2018%209h-1.3A7%207%200%201%200%204%2015.3%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2016l-4-4-4%204%22/%3E%3Cpath%20d%3D%22M12%2012v9%22/%3E%3Cpath%20d%3D%22M20.4%2017.5A4.5%204.5%200%200%200%2018%209h-1.3A7%207%200%201%200%204%2015.3%22/%3E%3C/svg%3E");
}
.fm-icon-stats::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203v18h18%22/%3E%3Crect%20x%3D%227%22%20y%3D%2212%22%20width%3D%223%22%20height%3D%226%22/%3E%3Crect%20x%3D%2212%22%20y%3D%228%22%20width%3D%223%22%20height%3D%2210%22/%3E%3Crect%20x%3D%2217%22%20y%3D%225%22%20width%3D%223%22%20height%3D%2213%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203v18h18%22/%3E%3Crect%20x%3D%227%22%20y%3D%2212%22%20width%3D%223%22%20height%3D%226%22/%3E%3Crect%20x%3D%2212%22%20y%3D%228%22%20width%3D%223%22%20height%3D%2210%22/%3E%3Crect%20x%3D%2217%22%20y%3D%225%22%20width%3D%223%22%20height%3D%2213%22/%3E%3C/svg%3E");
}
.fm-icon-ethics::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%2013l-8.5%208.5a1.5%201.5%200%200%201-2-2L12%2011%22/%3E%3Cpath%20d%3D%22M16%2016l6-6%22/%3E%3Cpath%20d%3D%22M8%208l6-6%22/%3E%3Cpath%20d%3D%22M9%207l8%208%22/%3E%3Cpath%20d%3D%22M21%2011l-8-8%22/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%2013l-8.5%208.5a1.5%201.5%200%200%201-2-2L12%2011%22/%3E%3Cpath%20d%3D%22M16%2016l6-6%22/%3E%3Cpath%20d%3D%22M8%208l6-6%22/%3E%3Cpath%20d%3D%22M9%207l8%208%22/%3E%3Cpath%20d%3D%22M21%2011l-8-8%22/%3E%3C/svg%3E");
}

.fm-item:hover {
    background: linear-gradient(90deg, var(--fm-teal) 0%, var(--fm-teal-light) 100%);
}
.fm-item:hover::before { transform: scaleY(1); }
.fm-item:hover a { color: #ffffff; padding-left: 20px; }
.fm-item:hover .fm-icon {
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 1px 5px rgba(3, 11, 48, 0.2);
    transform: rotate(360deg) scale(1.08);
}
.fm-item:hover .fm-icon::before {
    background-color: var(--fm-teal);
}

.fm-item a:focus-visible {
    outline: 2px solid var(--fm-teal-light);
    outline-offset: -2px;
}

.fm-item-logo a {
    justify-content: center;
    padding: 14px 20px;
}
.fm-item-logo img {
    max-width: 100%;
    height: auto;
    max-height: 40px;
    display: block;
    filter: grayscale(15%);
    transition: filter 0.25s ease, transform 0.25s ease;
}
.fm-item-logo:hover img {
    filter: grayscale(0%);
    transform: scale(1.04);
}

@keyframes fmFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes fmSlideIn {
    to { opacity: 1; transform: translateX(0); }
}
@keyframes fmPulseBg {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.15); }
}
@keyframes fmDotPing {
    0%   { box-shadow: 0 0 0 0 rgba(244, 244, 28, 0.6); }
    70%  { box-shadow: 0 0 0 6px rgba(244, 244, 28, 0); }
    100% { box-shadow: 0 0 0 0 rgba(244, 244, 28, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .fm-sidebar, .fm-item, .fm-header::before, .fm-header .fm-dot {
        animation: none !important;
    }
    .fm-item { opacity: 1; transform: none; }
}
