#copy-bg {
padding-top: 0.1rem!important;
padding-bottom: 1rem!important;
}
#broker-buttons {
max-width: 1536px;
margin: 0px auto;
}
#broker-buttons figure {
    background-color: #fff;
    padding: .5rem;
    margin: .5rem;
    border-radius: 8px;
    box-shadow: #afafaf 0px 2px;
}
#broker-buttons figure:hover {
    background-color: #f2f2f2;
    box-shadow: none;
    margin-top: 1rem;
    padding-bottom: .2rem;
    transition-duration: 200ms
}

/* グリッド表示 */
#provider-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 20px !important;
    max-width: none !important;
    width: 100% !important;
    align-items: start !important;
}

@media (min-width: 1024px) {
    #provider-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 1280px) {
    #provider-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ローディングエフェクト */
.main-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #fdfdfd;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 99999;
    opacity: 1;
    visibility: visible;
    transition: opacity 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                visibility 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform: scale(1);
    backdrop-filter: blur(0px);
}

.main-loading-overlay.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.98);
    backdrop-filter: blur(2px);
}
/* 完了時アニメーション */
.main-loading-overlay.completing {
    animation: premiumExit 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
@keyframes premiumExit {
    0% {
        opacity: 1;
        transform: scale(1) translateY(0px);
        filter: blur(0px);
    }
    30% {
        opacity: 0.9;
        transform: scale(1.01) translateY(-2px);
        filter: blur(0px);
    }
    70% {
        opacity: 0.3;
        transform: scale(0.99) translateY(1px);
        filter: blur(0.5px);
    }
    100% {
        opacity: 0;
        visibility: hidden;
        transform: scale(0.97) translateY(3px);
        filter: blur(1px);
    }
}
/* プログレスバーのエフェクト */
.progress-fill.completed {
    background: linear-gradient(90deg, #10b981 0%, #059669 50%, #10b981 100%);
    animation: completedGlow 0.8s ease-in-out;
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
}

@keyframes completedGlow {
    0% {
        box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
        transform: scaleY(1);
    }
    50% {
        box-shadow: 0 4px 20px rgba(16, 185, 129, 0.7);
        transform: scaleY(1.1);
    }
    100% {
        box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
        transform: scaleY(1);
    }
}

/* ロゴのエフェクト */
.loading-logo.completed {
    animation: logoComplete 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes logoComplete {
    0% {
        transform: scale(1);
        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1)) brightness(1);
    }
    40% {
        transform: scale(1.02);
        filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.15)) brightness(1.1);
    }
    100% {
        transform: scale(1);
        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1)) brightness(1);
    }
}

.loading-content {
    text-align: center;
    color: #333333;
    max-width: 400px;
    padding: 2rem;
}

.loading-logo-container {
    margin-bottom: 2rem;
    animation: pulse 2s infinite;
}

.loading-logo {
    width: 300px;
    height: 300px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.3s ease;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
}

.loading-logo:hover .logo-image {
    transform: scale(1.05);
}

.loading-text {
    margin-bottom: 2rem;
}

/* テキストのフェード */
.loading-text p {
    font-size: 1.1rem;
    margin: 0;
    font-weight: 500;
    color: #666666;
    transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
}

.loading-text p.fading {
    opacity: 0.3;
    transform: translateY(-5px);
}

.loading-progress {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
}

.progress-bar {
    width: 100%;
    height: 6px;
    background: #e9ecef;
    border-radius: 3px;
    overflow: hidden;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #667eea 100%);
    background-size: 200% 100%;
    animation: progress-slide 2s infinite;
    width: 0%;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 3px;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

/* アニメーション */
@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.02);
        opacity: 0.9;
    }
}

@keyframes progress-slide {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

@keyframes fadeInOut {
    0%, 100% {
        opacity: 0.8;
    }
    50% {
        opacity: 0.5;
    }
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
    .loading-logo {
        width: 250px;
        height: 250px;
    }
}

@media (max-width: 768px) {
    .loading-content {
        padding: 1rem;
        max-width: 400px;
    }

    .loading-logo {
        width: 200px;
        height: 200px;
    }

    .loading-text p {
        font-size: 1rem;
    }

    .loading-progress {
        max-width: 280px;
    }
}

@media (max-width: 480px) {
    .loading-content {
        padding: 0.5rem;
        max-width: 350px;
    }

    .loading-logo {
        width: 150px;
        height: 150px;
    }

    .loading-text p {
        font-size: 0.9rem;
    }
}

/* 高速ネット環境での最小表示時間確保 */
.main-loading-overlay.fast-connection {
    min-height: 100vh;
    animation: fadeOut 0.5s ease-out 1.5s forwards;
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        visibility: hidden;
    }
}


/*=====================================
    基本設定とWordPress制約解除
=====================================*/
#copy-trading-root {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif !important;
    line-height: 1.6 !important;
}

/* デスクトップでのグリッド表示設定 */
@media (min-width: 1024px) and (max-width: 1279px) {
    #provider-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 1280px) {
    #provider-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* カード要素の幅制約を解除 */
@media (min-width: 1024px) {
    #provider-grid > * {
        min-width: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }

    .provider-wrapper,
    .trader-info-card {
        min-width: 200px !important;
        max-width: none !important;
        width: 100% !important;
    }
}

/* WordPressのh4タグのデザインを無効化し、黒いアンダーバーのみを適用 */
.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 1.125rem !important;
    color: #000000 !important;
    border-bottom: 2px solid #000000 !important;
}

h1.c-pageTitle,
h1 span.c-pageTitle__inner {
    border-bottom: none!important;
}

.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before,
.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::after,
.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
    content: none !important;
    border: none !important;
}

/* モーダル内のH3タイトルの背景を透明にする */
#copy-trading-root .modal-overlay h3,
#copy-trading-root .filter-modal-content h3 {
    background-color: transparent !important;
}

/* 上の余白削除 */
div#content {
    padding-top: 0px;
    margin-bottom: 0px;
}

.post_content {
    margin-top: 0px !important;
}

/* 特定ページでのサイドバー完全非表示 */
.page-template-copytrade-analysis-test aside,
.page-template-copytrade-analysis-test .sidebar,
.page-template-copytrade-analysis-test .widget-area {
    display: none !important;
}

/* フッター上部の余計なコンテンツ非表示 */
.page-template-copytrade-analysis-test .before-footer {
    display: none !important;
}

/*=====================================
    メインコンテンツのレイアウト
=====================================*/

.copy-trading-container h2,
.copy-trading-container h3,
.copy-trading-container h4 {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}

.hidden {
    display: none !important;
}

/*=====================================
    プロバイダーカード
=====================================*/

/* カード全体の高さ統一 */
.provider-wrapper {
    height: 100% !important;
    min-height: 220px !important;
    max-height: 220px !important;
    display: flex !important;
    flex-direction: column !important;
}

#copy-trading-root .provider-wrapper .trader-info-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 1rem !important;
}

#copy-trading-root .provider-wrapper .flex.items-center.justify-between.mb-4>div:first-child {
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
    flex-shrink: 1 !important;
}

/* プロバイダーロゴ */
.provider-logo {
    border-radius: 50% !important;
    border: 1px solid #000000 !important;
    display: flex;
    flex-shrink: 0;
    overflow: hidden !important;
}
.provider-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* プロバイダー名 */
#copy-trading-root .provider-wrapper .trader-info-card h3 {
    background-color: transparent !important;
    color: #2C4A52 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    flex: 1 !important;
    margin-left: 0.5rem !important;
}

/* AI分析ボタン */
.ai-analysis-btn {
    border: none !important;
    flex-shrink: 0 !important;
}

/* タグエリア全体 - 少し高くしてグラフとの間隔を空ける */
.provider-wrapper .flex.flex-wrap.justify-start.items-center.gap-1.mb-2 {
    flex-shrink: 0 !important;
    min-height: 95px !important;
    max-height: 95px !important;
    overflow: hidden !important;
    line-height: 1.3 !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
    padding-top: 0 !important;
    margin-bottom: -1.5rem !important;
}

.provider-wrapper .flex.flex-wrap.justify-start.items-center.gap-1.mb-2 > * {
    margin-bottom: 2px !important;
    margin-top: 0 !important;
}

/* グラフコンテナ */
.chart-container {
    width: 100%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.provider-chart {
    transform: scaleX(0.5) scaleY(0.3);
    transform-origin: center;
    width: 200%;
    height: 200%;
}

svg.apexcharts-svg {
    transform: scaleX(0.9) scaleY(0.3);
}

g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.41) translateX(0px) !important;
}
@media screen and (max-width: 1181px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.65) translateX(0px) !important;
}
}
@media screen and (max-width: 1025px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.55) translateX(0px) !important;
}
}
@media screen and (max-width: 933px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.5) translateX(0px) !important;
}
}
@media screen and (max-width: 821px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.7) translateX(0px) !important;
}
}
@media screen and (max-width: 769px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.65) translateX(0px) !important;
}
}
@media screen and (max-width: 678px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.52) translateX(0px) !important;
}
}
@media screen and (max-width: 431px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.7) translateX(0px) !important;
}
}
@media screen and (max-width: 380px) {
g.apexcharts-inner.apexcharts-graphical {
    transform: scaleX(0.62) translateX(0px) !important;
}
}

/* スコア部分 */
#copy-trading-root .provider-wrapper .trader-info-card>div.w-full {
    margin-top: auto !important;
}

.score-number {
    font-weight: 600 !important;
}

.total-score {
    font-weight: 700 !important;
    color: #2C4A52 !important;
    font-size: 1.1rem !important;
}

/* ========================================
   レスポンシブ対応（スマホ）
   ======================================== */

@media (max-width: 640px) {
    /* タグエリア */
    .provider-wrapper .flex.flex-wrap.justify-start.items-center.gap-1.mb-2 {
        min-height: 70px !important;
        max-height: 70px !important;
        margin-bottom: -1rem !important;
    }

    /* グラフエリア */
    .chart-and-side-metrics {
        height: 80px !important;
    }

    .chart-area {
        flex: 0 0 50% !important;
    }

    .side-metrics {
        flex: 0 0 50% !important;
        gap: 0.15rem !important;
    }

    .chart-container {
        height: 60px !important;
    }

    /* 右側指標 */
    .side-metric-label {
        font-size: 0.4375rem !important; /* 7px */
    }

    .side-metric-value {
        font-size: 0.8rem !important;   /* 12px */
        padding: 0.1rem 0.2rem !important;
    }

    /* カード全体 */
    .provider-wrapper {
        min-height: 210px !important;
        max-height: 210px !important;
    }
}

/* ========================================
   タブレット対応
   ======================================== */

@media (min-width: 641px) and (max-width: 1024px) {
    .side-metric-label {
        font-size: 0.8rem !important;
    }

    .side-metric-value {
        font-size: 1rem !important;
    }

    .provider-wrapper {
        min-height: 300px !important;
        max-height: 300px !important;
    }
}

/*=====================================
    フィルタリング・ソートUI
=====================================*/

.control-row {
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 0.25rem !important;
}

.selected-tag-item {
    background-color: #E2E2E2;
    color: #2C4A52;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    white-space: nowrap;
}
.unselected-tag-item {
    color: rgb(156 163 175 / var(--tw-text-opacity, 1));
    padding: 0.25rem 0.75rem;
    white-space: nowrap;
}

/* ソートボタン */
.sort-btn {
    background-color: #7f7f7f !important;
    color: white !important;
    border: none;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    white-space: nowrap;
}

.sort-btn:hover {
    background-color: #9CA3AF !important;
}

.sort-btn.active {
    background-color: #000000 !important;
    color: white !important;
}

.sort-btn.active,
.sort-btn:hover {
    outline: 2px solid #000000 !important;
    outline-offset: -1px;
}

/* その他のボタン */
.clear-filter-btn {
    border: none;
    border-radius: 8px;
    transition: all 0.2s ease-in-out;
}

.clear-filter-btn:hover {
    background-color: #c53030;
    transform: translateY(-1px);
    box-shadow: 0 3px 6px rgba(229, 62, 62, 0.3);
}

.comparison-label {
    position: absolute !important;
    top: -8px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

/*=====================================
    モーダル（詳細・フィルター・比較）
=====================================*/
.subtab-btn {
  transition: all 0.2s ease-in-out;
}

.subtab-active {
  background-color: #000 !important;
  color: #fff !important;
}

.subtab-inactive {
  background-color: #fff !important;
  color: #537072 !important;
}
/* モーダル背景 */
#copy-trading-root .modal-overlay,
#copy-trading-root .filter-modal-overlay {
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    backdrop-filter: blur(8px) !important;
    z-index: 99999 !important;
}

/* フィルター設定モーダル */
.filter-modal-content {
    width: 90% !important;
    max-height: 80vh !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
}

.filter-modal-content h3 {
    color: #2C4A52 !important;
    margin-bottom: 1.5rem !important;
}

.filter-category-section {
    border: 1px solid #E2E2E2 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

.filter-btn {
    border: none;
    border-radius: 0.375rem !important;
    padding: 0.4rem 0.8rem !important;
    font-size: 0.75rem !important;
    font-weight: 500;
    display: inline-flex;
    transition: all 0.2s ease-in-out;
}

.filter-btn:hover {
    background-color: #e5e7eb !important;
    transform: none !important;
    box-shadow: none !important;
}

.filter-btn.active {
    background-color: #000000 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

#close-filter-settings-modal {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    background-color: transparent !important;
    color: #dc2626 !important;
    border-radius: 0 !important;
    width: 1rem !important;
    height: 1rem !important;
    font-size: 2rem !important;
    font-weight: bold !important;
    border: none !important;
    cursor: pointer !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: color 0.2s ease-in-out !important;
    padding: 0 !important;
    outline: none !important;
}

#close-filter-settings-modal:hover {
    color: #b91c1c !important;
}

#close-filter-settings-modal:focus {
    outline: none !important;
}

/* 詳細モーダル */
#modal-overlay {
    right: 0 !important;
    bottom: 0 !important;
    z-index: 99999 !important;
    padding-top: 10vh !important;
}

#modal-close {
    top: 1rem !important;
    right: 1rem !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    height: 1rem !important;
    font-size: 2rem !important;
    font-weight: bold !important;
    border: none !important;
    z-index: 10 !important;
    transition: color 0.2s ease-in-out !important;
    padding: 0 !important;
    outline: none !important;
}

#modal-close:hover {
    color: #b91c1c !important;
}

#modal-close:focus {
    outline: none !important;
}

#modal-overlay .bg-white {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
    color: #2C4A52 !important;
}

#modal-overlay .p-6.overflow-y-auto.max-h-\[60vh\] {
    min-height: 400px !important;
    flex: 1 !important;
    overflow-y: auto !important;
}

#modal-overlay .flex.items-center.justify-between.p-6>div:first-child {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

#modal-overlay #modal-name {
    background-color: transparent !important;
    color: #2C4A52 !important;
    border-radius: 0.5rem !important;
    display: inline-block !important;
    width: auto !important;
    font-weight: bold !important;
}

#modal-overlay .flex.border-b.border-gray-200 {
    height: 35px !important;
    flex-shrink: 0 !important;
    border-color: #E2E2E2 !important;
    border-bottom: none !important;
}

/* 概要タブの基本情報のみ - 右寄せ表示（フォントサイズそのまま） */
#tab-overview .info-box .flex.justify-between {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

#tab-overview .info-box .flex.justify-between > span:first-child {
    white-space: nowrap;
    color: #6b7280;

    min-width: 40%;
}

#tab-overview .info-box .flex.justify-between > span:last-child {
    text-align: right;
    word-break: break-word;
    overflow-wrap: break-word;
    font-weight: 500;
    line-height: 1.4;
    max-width: 55%;
}

#tab-overview .info-box .flex.justify-between > span:last-child {
    text-align: right;
    word-break: keep-all;
    overflow-wrap: normal;
    white-space: nowrap;
    font-weight: 500;
    line-height: 1.5;
    max-width: 55%;
}

/* HTML <br>タグでの改行は許可 */
#tab-overview .info-box .flex.justify-between > span:last-child br {
    white-space: normal;
}

/* スマホ対応でもフォントサイズはそのまま */
@media (max-width: 640px) {
    #tab-overview .info-box .flex.justify-between > span:first-child {
        min-width: 35%;
    }

    #tab-overview .info-box .flex.justify-between > span:last-child {
        max-width: 60%;
    }
}


/* モーダル内のタブ・コンテンツ */
#modal-overlay .tab-btn {
    flex-grow: 1;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    height: 100%;
}

.tab-active {
    background-color: #000000 !important;
    color: #ffffff !important;
    border-color: #000000 !important;
    font-weight: 600 !important;
}

.tab-inactive {
    background-color: transparent !important;
    color: #537072 !important;
    border-color: #E2E2E2 !important;
}

.tab-inactive:hover {
    background-color: #333333 !important;
    color: #ffffff !important;
}

.tab-content,
#tab-overview,
#tab-scores,
#tab-trading_analysis,
#tab-performance {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow-y: visible !important;
    width: 100% !important;
}

/* モーダル内の情報ボックス */
.info-box {
    border: 1px solid #E2E2E2;
    border-radius: 0.5rem;
    padding: 1.5rem;
    background-color: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    overflow-y: auto;
}

.info-box-title {
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    color: #000000 !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px solid #000000 !important;
}

#modal-overlay .p-6.overflow-y-auto.max-h-\[60vh\] h3 {
    margin: 0 !important;
    padding: 0 !important;
}

/* AI分析コメントボックス専用のスクロールスタイル */
.ai-analysis-comment {
    background-color: #f9fafb !important;
    border-radius: 0.5rem !important;
    max-height: 250px;
    overflow-y: auto;
}

/*=====================================
    モーダル（比較）
=====================================*/

#comparison-modal.hidden {
    display: none !important;
}

#comparison-modal .bg-white {
    width: 85vw !important;
    height: 75vh !important;
    max-width: 1000px !important;
    min-width: auto !important;
    min-height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
    border-radius: 12px !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    margin: auto !important;
}

#comparison-modal h2 {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #2C4A52 !important;
    font-size: 1.25rem !important;
    font-weight: bold !important;
    margin-bottom: 0.5rem !important;
}

/* 比較モーダルコンテンツ */
#comparison-modal #comparison-content {
    flex: 1 !important;
    overflow-y: auto !important;
    padding: 1rem !important;
    height: calc(75vh - 140px) !important;
}

/* 比較モーダルのフッター */
#comparison-modal .p-6.border-t.bg-gray-50 {
    height: 70px !important;
    flex-shrink: 0 !important;
    padding: 1rem 1.5rem !important;
    background-color: #f9fafb !important;
    border-top: 1px solid #E2E2E2 !important;
}

/* 比較モーダル閉じるボタン */
#close-comparison-modal.comparison-modal-close {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    background-color: transparent !important;
    color: #dc2626 !important;
    border-radius: 0 !important;
    width: 1rem !important;
    height: 1rem !important;
    font-size: 2rem !important;
    font-weight: bold !important;
    border: none !important;
    cursor: pointer !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: color 0.2s ease-in-out !important;
    padding: 0 !important;
    outline: none !important;
}

#close-comparison-modal.comparison-modal-close:hover {
    color: #b91c1c !important;
}

#close-comparison-modal.comparison-modal-close:focus {
    outline: none !important;
}

/* 比較テーブル */
.comparison-table-container {
    width: 100% !important;
    max-height: 70vh !important;
    border-radius: 8px !important;
    border: 1px solid #E2E2E2 !important;
}

.comparison-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background-color: #ffffff !important;
    table-layout: fixed !important;
}

.comparison-label-cell {
    background-color: #f8f9fa !important;
    text-align: left !important;
    border-bottom: 2px solid #E2E2E2 !important;
    border-right: 2px solid #E2E2E2 !important;
    font-weight: 600 !important;
    color: #2C4A52 !important;
    width: 140px !important;
    min-width: 140px !important;
}

.comparison-header-cell {
    background-color: #f8f9fa !important;
    padding: 1rem !important;
    text-align: center !important;
    border-bottom: 2px solid #E2E2E2 !important;
    border-right: 1px solid #E2E2E2 !important;
    vertical-align: top !important;
}

.provider-header {
    flex-direction: column !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

.provider-name {
    font-weight: 600 !important;
    color: #2C4A52 !important;
    font-size: 1.25rem !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    min-height: 20px;
}

.data-cell {
    text-align: center !important;
    border-bottom: 1px solid #E2E2E2 !important;
    border-right: 1px solid #E2E2E2 !important;
    vertical-align: middle !important;
    background-color: #ffffff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.row-label {
    text-align: left !important;
    border-bottom: 1px solid #E2E2E2 !important;
    border-right: 2px solid #E2E2E2 !important;
    font-weight: 500 !important;
    color: #374151 !important;
    background-color: #fafafa !important;
}

.section-divider {
    background-color: #f1f5f9 !important;
}

.section-title {
    padding: 0.5rem 1rem !important;
    text-align: left !important;
    font-weight: 600 !important;
    color: #2C4A52 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    font-size: 0.9rem !important;
    background-color: black !important;
    color: #ffffff !important;
}

.remove-from-comparison {
    background-color: transparent !important;
    color: #dc2626 !important;
    border: 1px solid #dc2626 !important;
    padding: 0.25rem 0.75rem !important;
    border-radius: 9999px !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.2s ease-in-out !important;
    margin-top: 0.5rem !important;
}

.remove-from-comparison:hover {
    background-color: #dc2626 !important;
    color: #ffffff !important;
}

/*モーダル内のチャート*/
.info-box svg.apexcharts-svg {
    transform: scale(1) translate(110px, 10px);
}

@media screen and (max-width: 830px) {
    .info-box svg.apexcharts-svg {
        transform: scaleX(1) translate(15px, 16px);
    }
}

@media screen and (max-width: 481px) {
    .info-box svg.apexcharts-svg {
        transform: scaleX(0.5) translate(-260px, 10px);
    }
}

.info-box .chart-container {
    max-height: 100%;
}

@media screen and (max-width: 600px) {
    .info-box .chart-container {
        transform: scaleY(0.7);
        transform-origin: top;
    }

    .info-box .full-chart-container.mt-3 {
        max-height: 200px;
        overflow-y: hidden;
    }
}

.info-box .chart-container svg {
    height: auto;
    display: block;
}

.info-box g.apexcharts-inner.apexcharts-graphical {
    transform: translateX(40px) !important;

    @media screen and (min-width: 481px) {
        transform: translateX(60px) !important;
    }
}

.info-box g.apexcharts-yaxis {
    transform: translate(45px, -15px);

    @media screen and (max-width: 481px) {
        transform: translate(24px, -15px);
    }
}

/* ==============================================
   比較モーダル位置調整 - 2025/09/17
============================================== */

/* 比較モーダル専用の調整 */
#comparison-modal .flex.items-center.justify-center.min-h-screen.p-4 {
    padding: 5rem 1rem 1rem 1rem !important;
}

#comparison-modal.top-6 {
    top: 0.5rem !important;
}

/* タイトル中央配置 */
#comparison-modal .flex.items-center.justify-between.p-6 {
    justify-content: center !important;
    padding: 1.25rem 1.5rem 0rem 1.5rem !important;
    position: relative !important;
}

#comparison-modal h2 {
    text-align: center !important;
    margin-bottom: 0.5rem !important;
}

/* ==============================================
   タグのカラー調整 - 2025/09/17
============================================== */
/* プロバイダーカード内の選択されたタグのみ変更 */
.provider-wrapper .inline-flex.bg-black {
    background-color: #059669 !important;
    color: #ffffff !important;
}

/* プロバイダーカード内の未選択タグのみ変更 */
.provider-wrapper .inline-flex.bg-gray-200 {
    background-color: #dbeafe !important;
    color: #000 !important;
}

/* 除外条件タグの背景色（選択状態） */
.provider-wrapper .inline-flex.bg-exclusive-selected {
    background-color: #dc2626 !important;
    color: #ffffff !important;
}

/* 除外条件タグの背景色（未選択状態） */
.provider-wrapper .inline-flex.bg-exclusive-unselected {
    background-color: #ffeded !important;
    color: #000 !important;
}

/*=====================================
    その他共通スタイル
=====================================*/
/* ホバー・フォーカス時のアニメーションとアウトライン */
.clear-filter-btn,
#apply-filters-btn,
#close-filter-settings-modal {
    transition: none !important;
    transform: none !important;
}

.ai-analysis-btn:hover,
.filter-btn:hover,
.clear-filter-btn:hover,
#apply-filters-btn:hover,
#close-filter-settings-modal:hover {
    transform: none !important;
}

.ai-analysis-btn:focus,
.filter-btn:focus,
.sort-btn:focus,
.clear-filter-btn:focus,
#apply-filters-btn:focus,
#close-filter-settings-modal:focus,
#modal-close:focus {
    outline: 2px solid #2C4A52 !important;
    outline-offset: 2px !important;
}

.sort-btn.active,
.sort-btn:hover {
    outline: 2px solid #000000 !important;
    outline-offset: -1px;
}

/* スクロールバー */
.filter-modal-content::-webkit-scrollbar {
    width: 6px;
}

.filter-modal-content::-webkit-scrollbar-track {
    background: #E2E2E2;
    border-radius: 3px;
}

.filter-modal-content::-webkit-scrollbar-thumb {
    background: #B9C4C9;
    border-radius: 3px;
}

.filter-modal-content::-webkit-scrollbar-thumb:hover {
    background: #537072;
}

/* ツールチップのコンテナ */
.tag-tooltip-container {
    position: relative;
    display: inline-block;
}

.tag-tooltip-text {
    visibility: hidden;
    width: 200px;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px 0;
    position: absolute;
    z-index: 10;
    bottom: 125%;
    left: 50%;
    margin-left: -100px;
    opacity: 0;
    transition: opacity 0.3s;
}

.tag-tooltip-container:hover .tag-tooltip-text {
    visibility: visible;
    opacity: 1;
}

.tag-more-indicator {
    background-color: #000000 !important;
    color: #ffffff !important;
    padding: 0.25rem 0.5rem !important;
    border-radius: 9999px !important;
    font-size: 0.75rem !important;
    cursor: pointer;
    margin-left: 0.25rem;
}

/*=====================================
    スマホ版の調整
=====================================*/

@media (max-width: 699px) {


    .search-controls-top {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        margin-bottom: 0.25rem;
    }


    #open-filter-settings-modal {
        flex: 0 0 auto !important;
        font-size: 1rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        background-color: rgba(33, 127, 209, 1 );
    }


    #main-reset-btn {
        flex: 0 0 auto !important;
        margin-left: 0 !important;
        font-size: 1rem !important;
        display: flex !important;

        align-items: center !important;

        justify-content: center !important;

        text-align: center !important;

    }


    #selected-filter-tags {
        width: 100% !important;
        margin-left: 0 !important;
    }

    .control-row {
        align-items: flex-start !important;
        gap: 0.5rem !important;
    }

    .sort-btn {
        flex: 1 !important;
        min-width: 0 !important;
        font-size: 0.8rem !important;
        text-align: center !important;
        white-space: nowrap !important;
        display: flex !important;

        align-items: center !important;

        justify-content: center !important;

    }

    #provider-count,
    #perfect-match-message {
        width: 100% !important;
        text-align: left !important;
    }


    #copy-trading-root .provider-wrapper {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 auto !important;
    }


    .filter-modal-content div.control-row {
        flex-direction: column;
    }

    .filter-modal-content h3 {
        margin-bottom: .5rem !important;
    }

    .filter-category-section {
        padding: .5rem 1rem !important;
    }


    #modal-overlay .bg-white {
        margin: 0 auto !important;
        border-radius: 0.5rem !important;
        position: relative !important;
    }


    #modal-overlay .flex.items-center.justify-between.p-6 {
        padding: 1rem !important;
    }


    #modal-overlay .p-6.overflow-y-auto {
        padding: 1rem !important;
        height: 750px !important;
        max-height: 70vh !important;
    }


    .info-box {
        padding: 1rem !important;
    }


    .info-box-title {
        margin-bottom: 0.5rem !important;
        font-size: 1rem !important;
    }


    #tab-overview .grid,
    #tab-scores .grid,
    #tab-trading_analysis .grid,
    #tab-performance .grid {
        grid-template-columns: 1fr !important;
    }


    .ai-analysis-comment {
        font-size: 0.8rem !important;
        line-height: 1.4 !important;
    }


    #comparison-modal.fixed.inset-0 .bg-white {
        width: 95% !important;
        max-height: 95vh !important;
        max-width: 95vw !important;
        min-width: 0 !important;
        min-height: 0 !important;
        margin: 0 auto !important;
        border-radius: 0.5rem !important;
        position: relative !important;
    }


    #comparison-modal .flex.items-center.justify-between.p-6 {
    padding: 1.5rem 1.5rem 0rem 1.5rem !important;
    justify-content: center !important;
    position: relative !important;
}

#comparison-modal h2 {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #2C4A52 !important;
    font-size: 1.25rem !important;
    font-weight: bold !important;
    text-align: center !important;
    margin-bottom: 0.5rem !important;
}


    #comparison-modal #comparison-content {
        height: 750px !important;
        max-height: 70vh !important;
        padding: 1rem !important;
    }


    #comparison-modal .p-6.border-t.bg-gray-50 {
        height: 70px !important;
        padding: 1rem 1.5rem !important;
    }


    #comparison-modal .comparison-table-container {
        max-height: calc(70vh - 40px) !important;
        overflow-x: auto !important;
        overflow-y: auto !important;
        border-radius: 6px !important;
    }


    #comparison-modal .comparison-label-cell {
        padding: 0.4rem 0.3rem !important;
        line-height: 1.1 !important;
    }


    #comparison-modal .comparison-header-cell {
        padding: 0.4rem 0.2rem !important;
    }

    #comparison-modal .provider-header {
        gap: 0.25rem !important;
    }

    #comparison-modal .provider-name {
        font-size: 0.75rem !important;
        line-height: 1.1 !important;
    }


    #comparison-modal .data-cell {
        line-height: 1.1 !important;
    }


    #comparison-modal .row-label {
        line-height: 1.1 !important;
    }


    #comparison-modal .section-title {
        padding: 0.4rem 0.5rem !important;
    }


    #comparison-modal .remove-from-comparison {
        padding: 0.15rem 0.4rem !important;
        font-size: 0.6rem !important;
        margin-top: 0.1rem !important;
    }


    #comparison-modal.comparison-modal-close,
    #close-comparison-modal.comparison-modal-close {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;

}

}



*, ::before, ::after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:
}
::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:
}
.\!container {
    width: 100% !important
}
.container {
    width: 100%
}
@media (min-width: 640px) {
    .\!container {
        max-width: 640px !important
    }
    .container {
        max-width: 640px
    }
}
@media (min-width: 768px) {
    .\!container {
        max-width: 768px !important
    }
    .container {
        max-width: 768px
    }
}
@media (min-width: 1024px) {
    .\!container {
        max-width: 1024px !important
    }
    .container {
        max-width: 1024px
    }
}
@media (min-width: 1280px) {
    .\!container {
        max-width: 1280px !important
    }
    .container {
        max-width: 1280px
    }
}
@media (min-width: 1536px) {
    .\!container {
        max-width: 1536px !important
    }
    .container {
        max-width: 1536px
    }
}
.fixed {
    position: fixed
}
.absolute {
    position: absolute
}
.relative {
    position: relative
}
.inset-0 {
    inset: 0px
}
.left-0 {
    left: 0px
}
.top-0 {
    top: 0px
}
.top-12 {
    top: 3rem
}
.z-50 {
    z-index: 50
}
.col-span-full {
    grid-column: 1 / -1
}
.mx-auto {
    margin-left: auto;
    margin-right: auto
}
.\!mb-2 {
    margin-bottom: 0.5rem !important
}
.\!mt-2 {
    margin-top: 0.5rem !important
}
.mb-2 {
    margin-bottom: 0.5rem
}
.mb-4 {
    margin-bottom: 1rem
}
.mb-8 {
    margin-bottom: 2rem
}
.ml-2 {
    margin-left: 0.5rem
}
.ml-4 {
    margin-left: 1rem
}
.ml-auto {
    margin-left: auto
}
.mt-1 {
    margin-top: 0.25rem
}
.mt-2 {
    margin-top: 0.5rem
}
.mt-3 {
    margin-top: 0.75rem
}
.mt-4 {
    margin-top: 1rem
}
.mt-8 {
    margin-top: 2rem
}
.mt-auto {
    margin-top: auto
}
.block {
    display: block
}
.flex {
    display: flex
}
.inline-flex {
    display: inline-flex
}
.table {
    display: table
}
.\!grid {
    display: grid !important
}
.grid {
    display: grid
}
.hidden {
    display: none
}
.h-2 {
    height: 0.5rem
}
.h-4 {
    height: 1rem
}
.h-6 {
    height: 1.5rem
}
.h-8 {
    height: 2rem
}
.h-\[80px\] {
    height: 80px
}
.h-auto {
    height: auto
}
.\!max-h-\[320px\] {
    max-height: 320px !important
}
.max-h-\[100\%\] {
    max-height: 100%
}
.max-h-\[70vh\] {
    max-height: 70vh
}
.max-h-\[90vh\] {
    max-height: 90vh
}
.max-h-none {
    max-height: none
}
.min-h-\[200px\] {
    min-height: 200px
}
.min-h-screen {
    min-height: 100vh
}
.\!w-\[90px\] {
    width: 90px !important
}
.w-16 {
    width: 4rem
}
.w-4 {
    width: 1rem
}
.w-6 {
    width: 1.5rem
}
.w-8 {
    width: 2rem
}
.w-\[80px\] {
    width: 80px
}
.w-\[90vw\] {
    width: 90vw
}
.w-full {
    width: 100%
}
.min-w-\[3rem\] {
    min-width: 3rem
}
.min-w-full {
    min-width: 100%
}
.max-w-4xl {
    max-width: 56rem
}
.max-w-6xl {
    max-width: 72rem
}
.max-w-\[800px\] {
    max-width: 800px
}
.max-w-full {
    max-width: 100%
}
.max-w-screen-2xl {
    max-width: 1536px
}
.shrink-0 {
    flex-shrink: 0
}
.transform {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.cursor-not-allowed {
    cursor: not-allowed
}
.cursor-pointer {
    cursor: pointer
}
.list-inside {
    list-style-position: inside
}
.list-disc {
    list-style-type: disc
}
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr))
}
.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}
.grid-cols-\[repeat\(auto-fill\2c minmax\(284px\2c 1fr\)\)\] {
    grid-template-columns: repeat(auto-fill,minmax(284px,1fr))
}
.flex-col {
    flex-direction: column
}
.flex-wrap {
    flex-wrap: wrap
}
.items-start {
    align-items: flex-start
}
.items-center {
    align-items: center
}
.items-stretch {
    align-items: stretch
}
.justify-start {
    justify-content: flex-start
}
.justify-end {
    justify-content: flex-end
}
.justify-center {
    justify-content: center
}
.justify-between {
    justify-content: space-between
}
.gap-1 {
    gap: 0.25rem
}
.gap-2 {
    gap: 0.5rem
}
.gap-3 {
    gap: 0.75rem
}
.gap-4 {
    gap: 1rem
}
.gap-6 {
    gap: 1.5rem
}
.gap-x-2 {
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem
}
.gap-y-1 {
    row-gap: 0.25rem
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.25rem * var(--tw-space-y-reverse))
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.5rem * var(--tw-space-y-reverse))
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.75rem * var(--tw-space-y-reverse))
}
.overflow-hidden {
    overflow: hidden
}
.overflow-x-auto {
    overflow-x: auto
}
.overflow-y-auto {
    overflow-y: auto
}
.whitespace-nowrap {
    white-space: nowrap
}
.rounded {
    border-radius: 0.25rem
}
.rounded-2xl {
    border-radius: 1rem
}
.rounded-full {
    border-radius: 9999px
}
.rounded-lg {
    border-radius: 0.5rem
}
.rounded-md {
    border-radius: 0.375rem
}
.rounded-xl {
    border-radius: 0.75rem
}
.rounded-bl-md {
    border-bottom-left-radius: 0.375rem
}
.rounded-br-md {
    border-bottom-right-radius: 0.375rem
}
.rounded-tl-md {
    border-top-left-radius: 0.375rem
}
.rounded-tr-md {
    border-top-right-radius: 0.375rem
}
.border {
    border-width: 1px
}
.border-b {
    border-bottom-width: 1px
}
.border-b-2 {
    border-bottom-width: 2px
}
.border-t {
    border-top-width: 1px
}
.border-\[\#E2E2E2\] {
    --tw-border-opacity: 1;
    border-color: rgb(226 226 226 / var(--tw-border-opacity, 1))
}
.border-gray-200 {
    --tw-border-opacity: 1;
    border-color: rgb(229 231 235 / var(--tw-border-opacity, 1))
}
.border-gray-300 {
    --tw-border-opacity: 1;
    border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
}
.bg-black {
    --tw-bg-opacity: 1;
    background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1))
}
.bg-blue-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1))
}
.bg-gray-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1))
}
.bg-gray-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
}
.bg-gray-400 {
    --tw-bg-opacity: 1;
    background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1))
}
.bg-gray-50 {
    --tw-bg-opacity: 1;
    background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1))
}
.bg-green-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1))
}
.bg-orange-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1))
}
.bg-purple-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1))
}
.bg-red-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1))
}
.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
}
.bg-opacity-50 {
    --tw-bg-opacity: 0.5
}
.p-1 {
    padding: 0.25rem
}
.p-2 {
    padding: 0.5rem
}
.p-3 {
    padding: 0.75rem
}
.p-4 {
    padding: 1rem
}
.p-6 {
    padding: 1.5rem
}
.\!px-1\.5 {
    padding-left: 0.375rem !important;
    padding-right: 0.375rem !important
}
.\!py-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important
}
.\!py-10 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important
}
.px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem
}
.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem
}
.px-2\.5 {
    padding-left: 0.625rem;
    padding-right: 0.625rem
}
.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem
}
.py-0\.5 {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem
}
.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem
}
.py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem
}
.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem
}
.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem
}
.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem
}
.py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem
}
.\!pl-2 {
    padding-left: 0.5rem !important
}
.pt-2 {
    padding-top: 0.5rem
}
.pt-4 {
    padding-top: 1rem
}
.text-left {
    text-align: left
}
.\!text-center {
    text-align: center !important
}
.text-center {
    text-align: center
}
.text-right {
    text-align: right
}
.\!text-lg {
    font-size: 1.125rem !important;
    line-height: 1.75rem !important
}
.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem
}
.text-base {
    font-size: 1rem;
    line-height: 1.5rem
}
.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem
}
.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem
}
.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem
}
.text-xs {
    font-size: 0.75rem;
    line-height: 1rem
}
.font-bold {
    font-weight: 700
}
.font-medium {
    font-weight: 500
}
.leading-relaxed {
    line-height: 1.625
}
.text-gray-400 {
    --tw-text-opacity: 1;
    color: rgb(156 163 175 / var(--tw-text-opacity, 1))
}
.text-gray-600 {
    --tw-text-opacity: 1;
    color: rgb(75 85 99 / var(--tw-text-opacity, 1))
}
.text-gray-900 {
    --tw-text-opacity: 1;
    color: rgb(17 24 39 / var(--tw-text-opacity, 1))
}
.text-green-600 {
    --tw-text-opacity: 1;
    color: rgb(22 163 74 / var(--tw-text-opacity, 1))
}
.text-red-600 {
    --tw-text-opacity: 1;
    color: rgb(220 38 38 / var(--tw-text-opacity, 1))
}
.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}
.shadow {
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.shadow-\[0_4px_12px_rgba\(0\2c 0\2c 0\2c 0\.08\)\] {
    --tw-shadow: 0 4px 12px rgba(0,0,0,0.08);
    --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.outline {
    outline-style: solid
}
.filter {
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.duration-200 {
    transition-duration: 200ms
}
.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
}

/* 追加の共通コンポーネント例
.card { @apply rounded-2xl shadow p-4 bg-white; }
*/

.hover\:-translate-y-1:hover {
    --tw-translate-y: -0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

.hover\:bg-blue-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1))
}

.hover\:bg-gray-50:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1))
}

.hover\:bg-gray-800:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1))
}

.hover\:bg-green-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1))
}

.hover\:bg-red-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1))
}

.hover\:shadow-lg:hover {
    --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}

@media (min-width: 640px) {
    .sm\:p-6 {
        padding: 1.5rem !important
    }
    .sm\:ml-auto {
        margin-left: auto !important
    }
    .sm\:mt-4 {
        margin-top: 1rem
    }
    .sm\:mt-auto {
        margin-top: auto
    }
    .sm\:\!w-\[120px\] {
        width: 120px !important
    }
    .sm\:w-\[120px\] {
        width: 120px
    }
    .sm\:flex-row {
        flex-direction: row
    }
    .sm\:gap-2 {
        gap: 0.5rem
    }
    .sm\:px-2 {
        padding-left: 0.5rem;
        padding-right: 0.5rem
    }
    .sm\:px-6 {
        padding-left: 2rem;
        padding-right: 2rem
    }
    .sm\:py-1 {
        padding-top: 0.25rem;
        padding-bottom: 0.25rem
    }
    .sm\:py-3 {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem
    }
    .sm\:pt-4 {
        padding-top: 1rem
    }
    .sm\:text-base {
        font-size: 1rem;
        line-height: 1.5rem
    }
    .sm\:text-sm {
        font-size: 0.875rem;
        line-height: 1.25rem
    }
    .sm\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem
    }
    .sm\:text-xs {
        font-size: 0.75rem;
        line-height: 1rem
    }
}

@media (min-width: 768px) {
    .md\:grid-cols-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr))
    }
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .md\:grid-cols-\[35\%_64\%\] {
        grid-template-columns: 35% 64%
    }
    .md\:flex-row {
        flex-direction: row
    }
    .md\:px-4 {
        padding-left: 1rem;
        padding-right: 1rem
    }
    .md\:py-2 {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem
    }
}

@media (min-width: 1024px) {
    .lg\:\!w-\[150px\] {
        width: 150px !important
    }
    .lg\:max-w-\[300px\] {
        max-width: 300px
    }
    .lg\:grid-cols-\[repeat\(auto-fill\2c minmax\(275px\2c 1fr\)\)\] {
        grid-template-columns: repeat(auto-fill,minmax(275px,1fr))
    }
    .lg\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem
    }
    .lg\:\!text-base {
        font-size: 1rem !important;
        line-height: 1.5rem !important
    }
}

/* ==============================================
   銘柄分析テーブル - 割合列非表示設定（最強版）
============================================== */
/* HTMLとJSでコードを非表示設定 20250917*/

@keyframes pulse {
    0% { opacity: 0.6; }
    50% { opacity: 1; }
    100% { opacity: 0.6; }
}

/* チャートオーバーレイ */
.chart-container {
    position: relative;
}

.chart-overlay-scores {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

/* 左上の運用期間表示 */
.operation-period-top-left {
    position: absolute;
    top: -2px;
    left: 8px;
    z-index: 10;
}

.operation-period-top-left .tag-item {
    background: #FFFFFF !important;
    color: #000 !important;
    border: 1px solid #E0E0E0 !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
}

.period-label {
    color: #6B7280;
    font-size: 10px;
    margin-bottom: 1px;
}

.period-value {
    font-weight: 500;
    font-size: 11px;
    color: #374151;
}

/* 円グラフのサイズ調整 */
#instrument-chart {
    max-width: 260px !important;
    max-height: 260px !important;
}

.chart-area .w-full {
    max-width: 260px !important;
    height: 260px !important;
}

/*=====================================
    検索設定モーダルの調整（スマホ）
=====================================*/
/* スマホでのフィルターモーダル改善 - 完全置き換え版 */
@media (max-width: 768px) {
    .filter-modal-content {
        top: 4rem !important;
        max-height: 80vh !important;
        height: 80vh !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        padding: 16px !important;
    }

    .filter-sections {
        flex: 1 !important;
        overflow-y: auto !important;
        padding-bottom: 8px !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .modal-buttons {
        flex-shrink: 0 !important;
        margin: 8px 0 0 0 !important;
        padding: 12px 0 !important;
        border-top: 1px solid #D1D5DB !important;
        background: #f3f4f6 !important;
        border-radius: 0 !important;
        display: flex !important;
        justify-content: center !important;
        gap: 16px !important;
    }
}

/* フィルター設定モーダルのセクションのみパディング調整 */
.filter-category-section {
    padding: 0.75rem !important;
}

/* 業者とEA or 裁量のみ改行を防ぐ（選択的対応） */
@media (max-width: 768px) {

    .filter-modal-content .filter-category-section:first-child .control-row {
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        gap: 0.75rem !important;
    }

    .filter-modal-content .filter-category-section:first-child .control-label {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }


    .filter-modal-content .filter-category-section:nth-child(2) .control-row {
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        gap: 0.75rem !important;
    }

    .filter-modal-content .filter-category-section:nth-child(2) .control-label {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }


    .filter-modal-content .filter-category-section:nth-child(3) .control-row,
    .filter-modal-content .filter-category-section:nth-child(4) .control-row {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    .filter-modal-content .filter-category-section:nth-child(3) .control-label,
    .filter-modal-content .filter-category-section:nth-child(4) .control-label {
        margin-bottom: 0.5rem !important;
    }
}

/*=====================================
    並び替えのボタン幅の調整
=====================================*/

.sort-btn {
    white-space: nowrap;
    text-align: center;
}

#sort-risk {
    min-width: 70px !important;
}

#sort-default,
#sort-stability,
#sort-profitability {
    min-width: 50px !important;
}

/*=====================================
    円グラフのスマホの表示調整
=====================================*/
/* スマホでのみ円グラフを非表示 */
@media (max-width: 767px) {
    .hide-mobile-chart {
        display: none !important;
    }

    .table-area {
        margin-top: 1.5rem !important;
    }
}

/*=====================================
    プロバイダーカードのタグの表示設定
=====================================*/
/* タグコンテナの幅制約を解除 */
#modal-tags-container {
    width: auto !important;
    min-width: 100% !important;
    max-width: none !important;
    flex-wrap: wrap !important;
}

/* padding */
.pad01 {
    padding: 0.1rem;
}

/*=====================================
    モーダルをヘッダーより上に表示するための設定
=====================================*/

/* CSSファイルに追加 */
body > .modal-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 999999 !important;
}

/* 親要素のスタッキングコンテキストを無効化 */
#copy-trading-root {
    position: static !important;
    z-index: auto !important;
}

/*=====================================
検索設定内の表示設定
=====================================*/
/* 業者フィルターセクション全体を非表示 */
.filter-category-section:has(#broker-filter-buttons-wrapper) {
    display: none !important;
}

/* 代替案1：業者ラベルを含む親要素を非表示 */
.control-row:has(.control-label:contains("業者")) {
    display: none !important;
}

/* 代替案2：業者という文字を含むコントロールラベルの親セクション全体を非表示 */
.filter-category-section:has(.control-label:contains("業者")) {
    display: none !important;
}

/* 確実に動作する最も簡単な方法 */
.control-label:contains("業者") {
    display: none !important;
}

.control-label:contains("業者") + #broker-filter-buttons-wrapper {
    display: none !important;
}

/* 親要素全体を非表示 */
.filter-category-section:has(.control-label[text*="業者"]) {
    display: none !important;
}

/* フィルター項目ラベルのサイズを小さく */
.control-label {
    font-size: 14px !important;
    font-weight: 500 !important;
}

/* フィルターボタンのサイズを少し大きく */
.filter-btn {
    font-size: 15px !important;
    padding: 8px 16px !important;
    font-weight: 500 !important;
}

/* レスポンシブ対応：スマホではさらに調整 */
@media (max-width: 640px) {
    .control-label {
        font-size: 13px !important;
    }

    .filter-btn {
        font-size: 12px !important;
        padding: 4px 6px !important;
    }
}

/* PC用：より大きな画面での最適化 */
@media (min-width: 1024px) {
    .control-label {
        font-size: 15px !important;
    }

    .filter-btn {
        font-size: 14px !important;
        padding: 4px 6px !important;
    }
}

/* 「該当プロバイダーは見つかりませんでした」の中央寄せ */
.no-results-message {
    text-align: center !important;
    margin: 40px auto !important;
    padding: 20px !important;
    color: #666 !important;
    font-size: 16px !important;
}

/* PC用：該当なしメッセージの中央寄せ */
@media (min-width: 768px) {
    .provider-grid-container .no-results-message,
    #provider-grid ~ div:contains("該当プロバイダーは見つかりませんでした"),
    div:contains("該当プロバイダーは見つかりませんでした") {
        text-align: center !important;
        margin: 40px auto !important;
        display: block !important;
        width: 100% !important;
    }
}

/* 選択タグ表示の枠線とスタイルを復活 */
#selected-filter-tags {
    padding: 8px 12px !important;
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    margin: 8px 0 !important;
    min-height: 20px !important;
}

/* PC用：自然な改行で2行程度に */
@media (min-width: 768px) {
    #selected-filter-tags .selected-tag-item {
        word-break: break-all !important;
        white-space: normal !important;
        line-height: 1.4 !important;
    }
}

/* スマホ用：画面幅に収める */
@media (max-width: 767px) {
    #selected-filter-tags {
        padding: 6px 8px !important;
        font-size: 13px !important;
    }

    #selected-filter-tags .selected-tag-item {
        word-break: break-all !important;
        overflow-wrap: break-word !important;
    }
}

/* 外側のコンテナは枠なし・透明に */
#selected-filter-tags {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 8px 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

/* 各要素を個別の枠で表示 */
#selected-filter-tags .selected-tag-item {
    background: #f3f4f6 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    padding: 4px 8px !important;
    margin: 0 !important;
    display: inline-block !important;
    color: #374151 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    word-break: break-all !important;
    white-space: normal !important;
    max-width: calc(100% - 16px) !important;
}

/* スマホ用調整 */
@media (max-width: 767px) {
    #selected-filter-tags {
        gap: 6px !important;
    }

    #selected-filter-tags .selected-tag-item {
        font-size: 12px !important;
        padding: 3px 6px !important;
        max-width: calc(100% - 12px) !important;
    }

    #copy-brokers .swell-block-box-menu__link {
        padding: .5em;
    }
    #copy-brokers figure {
        margin-bottom: .5em;
    }
    #broker-buttons figure {
        margin: .05rem;
    }
}
/* ========================================
   AI分析タブ - シンプル版スタイル
======================================== */

/* コメント表示エリア - シンプル版（色付きボックスなし） */
.analysis-comment-box {
    padding: 0.5rem;
    min-height: 100px;
    max-height: 400px;
    overflow-y: auto;
}

/* 箇条書きリストのスタイル */
.analysis-comment-box ul {
    list-style-type: disc;
    padding-left: 1.5rem;
    margin: 0;
}

.analysis-comment-box li {
    margin-bottom: 0.75rem;
    line-height: 1.6;
    color: #4b5563;
    font-size: 0.875rem;
}

.analysis-comment-box li:last-child {
    margin-bottom: 0;
}

/* スクロールバー（必要な場合のみ） */
.analysis-comment-box::-webkit-scrollbar {
    width: 6px;
}

.analysis-comment-box::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 3px;
}

.analysis-comment-box::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 3px;
}

.analysis-comment-box::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

/* レスポンシブ対応 */
@media (max-width: 640px) {
    .analysis-comment-box {
        padding: 0.25rem;
        min-height: 80px;
    }

    .analysis-comment-box li {
        font-size: 0.8125rem;
        margin-bottom: 0.5rem;
    }
}

/* 特徴・注意点と総合分析のフォントサイズを統一 */
#features-risks-comment,
#overall-analysis-comment {
    font-size: 0.875rem;
    line-height: 1.5;
}

#features-risks-comment p,
#overall-analysis-comment p,
#features-risks-comment li,
#overall-analysis-comment li {
    font-size: inherit;
    color: #374151;
}

/* 比較モーダルAI分析の安定性スコアを非表示 */
.hidden-row {
    display: none !important;
}

/* プロバイダーカードのタグ表示順や表示数の制御 */
/* カード一覧のタグのみ制限（詳細画面は除外） */

/* PC: 7個目以降を非表示 */
@media (min-width: 769px) {
    .trader-card .tag-container .tag:nth-child(n+7),
    .provider-card .tag-container .tag:nth-child(n+7) {
        display: none;
    }
}

/* スマホ: 8個目以降を非表示 */
@media (max-width: 768px) {
    .trader-card .tag-container .tag:nth-child(n+8),
    .provider-card .tag-container .tag:nth-child(n+8) {
        display: none;
    }
}

/* 詳細画面では制限しない */
.trader-detail-modal .tag-container .tag,
.detail-page .tag-container .tag {
    display: inline-block !important;
}

/* バナー中央寄せ */
.copy-banner .wp-block-group.is-row.bo-sp-banner.u-mb-ctrl.u-mb-0 {
 justify-content: center;
}

/* 共通アイコンボタンスタイル */
.filter-icon-button {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #ffffff !important;
    border: 2px solid #d1d5db !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

.filter-icon-button:hover {
    background-color: #f9fafb !important;
    border-color: #9ca3af !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important;
}

.filter-icon-button:active {
    transform: translateY(0) !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
}

/* ボタン内のアイコン画像 */
.button-icon-img {
    width: 40px !important;
    height: 40px !important;
    object-fit: contain !important;
    margin: 0 !important;
    display: block !important;
    pointer-events: none !important;
}

/* 左寄せコンテナ */
.search-controls-top {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    justify-content: flex-start !important;
    margin-bottom: 0.5rem !important;
}

/* ==============================================
   ソートドロップダウン
============================================== */

.sort-dropdown-container {
    position: relative;
    display: inline-block;
}

/* ドロップダウンメニュー */
.sort-dropdown-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 200px;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    overflow: hidden;
    display: none;
}

.sort-dropdown-menu.show {
    display: block;
}

/* ドロップダウンアイテム */
.sort-dropdown-item {
    padding: 10px 16px;
    cursor: pointer;
    font-size: 14px;
    color: #374151;
    transition: background-color 0.15s ease;
    border-bottom: 1px solid #f3f4f6;
}

.sort-dropdown-item:last-child {
    border-bottom: none;
}

.sort-dropdown-item:hover {
    background-color: #f9fafb;
}

.sort-dropdown-item.selected {
    background-color: #000000;
    color: #ffffff;
    font-weight: 600;
}

/* ==============================================
   スマホ対応
============================================== */

@media (max-width: 640px) {
    .filter-icon-button {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
    }

    .button-icon-img {
        width: 30px !important;
        height: 30px !important;
    }

    .sort-dropdown-menu {
        min-width: 160px;
    }

    .sort-dropdown-item {
        padding: 8px 12px;
        font-size: 13px;
    }
}

/* H1タイトルを非表示 */
.c-pageTitle {
    display: none !important;
}
/* ==============================================
   名前検索の統合デザイン（アイコン付き・短縮版）
============================================== */

/* 名前検索コンテナ */
.name-search-container {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    height: 40px !important;
    width: 175px !important; /* 短めに設定 */
    background-color: #ffffff !important;
    border: 2px solid #d1d5db !important;
    border-radius: 10px !important;
    padding: 0 35px 0 40px !important; /* 左側にアイコンスペース */
    transition: all 0.2s ease !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}

.name-search-container:focus-within {
    border-color: #3b82f6 !important;
    box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2) !important;
}

/* 検索アイコン（左側） */
.search-icon-img {
    position: absolute !important;
    left: 0px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 35px !important;
    height: 35px !important;
    object-fit: contain !important;
    pointer-events: none !important;
    opacity: 0.6 !important;
}

/* 名前検索の入力欄 */
.name-search-input {
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    font-size: 14px !important;
    outline: none !important;
}

/* クリアボタン */
.clear-name-search {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 24px !important;
    height: 24px !important;
    background: none !important;
    color: #9ca3af !important;
    border: none !important;
    border-radius: 50% !important;
    font-size: 16px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
}

.clear-name-search:hover {
    transform: translateY(-50%) scale(1.1) !important;
}

/* スマホ用 */
@media (max-width: 640px) {
    .name-search-container {
        width: 160px !important; /* スマホではさらに短く */
        height: 40px !important;
        padding: 0 32px 0 36px !important;
    }

    .search-icon-img {
        width: 30px !important;
        height: 30px !important;
        left: 8px !important;
    }

    .name-search-input {
        font-size: 16px !important;
    }

    .clear-name-search {
        width: 22px !important;
        height: 22px !important;
        font-size: 14px !important;
        right: 6px !important;
    }
}

/* ========================================
   グラフと右側指標のコンテナ
   ======================================== */

.chart-and-metrics-container {
    display: flex;
    gap: 0.5rem;
    width: 100%;
}

/* 左側：グラフエリア（60%） */
.chart-area-left {
    flex: 0 0 60%;
    min-width: 0;
}

.side-metrics {
    flex: 0 0 45% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 1fr 1fr !important;
    gap: 0.25rem !important;
    padding: 0 !important;
}


/* 共通スタイル */
.side-metric-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 0.25rem !important;
}

/* ラベル（小さく） */
.side-metric-label {
    font-size: 0.8rem !important;
    color: #6b7280 !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
    margin-bottom: 0.125rem !important;
    font-weight: 500 !important;
}

/* 数値（小さく、整数） */
.side-metric-value {
    font-size: 0.9rme !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0.125rem 0.25rem !important;
    border-radius: 0.25rem !important;
}

/* DD（左上）- 枠なし */
.side-metric-item:nth-child(1) .side-metric-value {
    border: none !important;
}

/* リスク管理（右上）- 枠あり */
.side-metric-item:nth-child(2) .side-metric-value {
    border: 1px solid currentColor !important;
}

/* 全期間利益率（左下）- 枠なし */
.side-metric-item:nth-child(3) .side-metric-value {
    border: none !important;
}

/* リターン（右下）- 枠あり */
.side-metric-item:nth-child(4) .side-metric-value {
    border: 1px solid currentColor !important;
}

/* ========================================
   修正5: 下部エリアを削除
   ======================================== */

.bottom-metrics {
    display: none !important;
}

/* ========================================
   エリア3: グラフ + 最大DD + 全期間利益率
   ======================================== */

.chart-and-side-metrics {
    display: flex !important;
    gap: 0.5rem !important;
    width: 100% !important;
    margin-bottom: 0 !important;
    margin-top: 0.25rem !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    height: 90px !important;
}

.chart-area {
    flex: 0 0 55% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

.chart-container {
    position: relative !important;
    width: 100% !important;
    height: 70px !important;
}
/* ========================================
   エリア4: リスク管理 + リターン
   ======================================== */

.bottom-metrics {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem !important;
    padding-top: 0.5rem !important;
    margin-top: 0.5rem !important;
    border-top: 1px solid #e5e7eb !important;
    flex-shrink: 0 !important;
    min-height: 60px !important;
}

.bottom-metric-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.bottom-metric-label {
    font-size: 0.75rem !important; /* 12px */
    color: #6b7280 !important;
    margin-bottom: 0.25rem !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
}

.bottom-metric-value {
    font-size: 1.25rem !important; /* 20px */
    font-weight: 700 !important;
    line-height: 1.2 !important;
    padding: 0.25rem 0.5rem !important;
    border-radius: 0.25rem !important;
    border: 1px solid currentColor !important;
}

/* ========================================
   レスポンシブ対応（スマホ）
   ======================================== */

@media (max-width: 640px) {
    .chart-and-side-metrics {
        gap: 0.375rem !important;
    }

    .chart-area {
        flex: 0 0 55% !important;
    }

    .side-metrics {
        flex: 0 0 45% !important;
        gap: 0.2rem !important;
        padding: 0.2rem 0 !important;
    }

    .side-metric-label {
        font-size: 0.8rem !important;
    }

    .side-metric-value {
        font-size: 1rem !important;
        padding: 0.2rem 0.4rem !important;
    }

    .bottom-metrics {
        gap: 0.25rem !important;
        padding-top: 0.375rem !important;
        margin-top: 0.375rem !important;
    }

    .bottom-metric-label {
        font-size: 0.6875rem !important;
    }

    .bottom-metric-value {
        font-size: 1.125rem !important;
        padding: 0.2rem 0.4rem !important;
    }
}

/* ========================================
   タブレット対応
   ======================================== */

@media (min-width: 641px) and (max-width: 1024px) {
    .side-metric-label {
        font-size: 0.6rem !important;
    }

    .side-metric-value {
        font-size: 0.9375rem !important;
    }

    .bottom-metric-label {
        font-size: 0.7rem !important;
    }

    .bottom-metric-value {
        font-size: 1.125rem !important;
    }
}

/* ========================================
   Member gate banner (public preview)
   ======================================== */

.member-gate-banner {
    margin: 1.5rem 0 2rem;
}

.member-gate-banner__inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 1.25rem 1.5rem;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    text-align: center;
}

.member-gate-banner__title {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: #0f172a;
}

.member-gate-banner__text {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: #475569;
}

.member-gate-banner__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.member-gate-banner__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    padding: 0.625rem 1.25rem;
    border-radius: 8px;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.member-gate-banner__btn--primary {
    background: #0f172a;
    color: #ffffff;
}

.member-gate-banner__btn--primary:hover {
    background: #1e293b;
    color: #ffffff;
}

.member-gate-banner__btn--secondary {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #0f172a;
}

.member-gate-banner__btn--secondary:hover {
    border-color: #94a3b8;
    background: #f8fafc;
    color: #0f172a;
}
