/* FC2LIVEr - Dark Accent Theme */

:root {
    --bg-primary: #fafafa;
    --bg-card: #ffffff;
    --text-primary: #333;
    --text-secondary: #666;
    --accent: #e94560;
    --accent-dark: #1a1a2e;
    --border-color: #e0e0e0;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    background-color: var(--bg-primary);
    color: var(--text-primary);
    overflow-x: hidden;
    max-width: 100vw;
}

/* Cards */
.performer-card {
    background-color: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.performer-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.card-img-wrapper {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background-color: #f0f0f0;
}

.card-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Viewer badge */
.viewer-badge {
    background-color: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
    font-size: 0.75rem;
    color: #fff;
}

/* Online dot */
.online-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #00c853;
    animation: pulse-dot 1.5s ease-in-out infinite;
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Pagination */
.page-item.active .page-link {
    background-color: var(--accent-dark);
    border-color: var(--accent-dark);
}

/* table-layout:fixed はランキング系テーブルのみに適用 */
.table-ranking { table-layout: fixed; word-break: break-all; }

/* ヒートマップ・タイムラインのテーブルは auto で列幅を自然に */
.table-heatmap, .table-timeline { table-layout: auto; }

/* Responsive */
@media (max-width: 576px) {
    .performer-card .card-body { padding: 0.4rem; }
    .performer-card .card-title { font-size: 0.8rem; }
    h1 { font-size: 1.4rem !important; }

    /* プロフィールカード: 画像を小さく */
    .profile-image { width: 70px !important; height: 70px !important; }
    .profile-noimage { width: 70px !important; height: 70px !important; }

    /* 統計カード: 数値を少し小さく */
    .stat-value { font-size: 1.1rem !important; }

    /* ボタン: タップターゲット確保 */
    .btn-vote { padding: 6px 12px !important; font-size: 13px !important; min-height: 44px; }

    /* カレンダーヘッダー: フォント縮小 */
    .cal-header-title { font-size: 13px; }

    /* カレンダーセル内時間: 少し大きく */
    .cal-time { font-size: 10px !important; }

    /* レビューフォーム: 縦積み */
    .review-name-col { flex: 0 0 100%; max-width: 100%; margin-bottom: 0.5rem; }
    .review-rating-col { flex: 0 0 100%; max-width: 100%; }

    /* 関連動画タイトル */
    .related-video-title { font-size: 12px !important; }

    /* テーブル内画像 */
    .card-body .table img { width: 50px !important; height: 38px !important; }
}

/* Canvas: スマホのみ高さ制限 */
@media (max-width: 576px) {
    canvas { max-height: 250px; }
}

/* カレンダーナビリンク: タップターゲット確保 */
.cal-nav-link {
    padding: 8px 12px;
    display: inline-block;
}

/* スクロールヒント */
.scroll-hint {
    font-size: 12px;
    color: #999;
    text-align: center;
    margin-top: 4px;
}
