/* ============================================================================
   bubblegum-broadcaster.css — NOX LIVE 配信者管理画面用
   ============================================================================
   v0.7.5.a+: 視聴者向け bubblegum.css の上に、配信者管理画面用の
   黒×ピンク管理ダッシュボードトーン (admin theme) を重ねる。
   - bubblegum.css のトークン (--b-*) をそのまま使う
   - top-bar / header は ink バック + pink ボーダー + yellow アクセント
   - ダッシュボード本文は bubblegum.css と同じ白×ピンク
   ============================================================================ */

/* ──── 配信者ヘッダー (黒ベース) ──── */
.broadcaster-container .broadcaster-header,
body > header.top-bar { /* lovense-settings 用 */
    background: var(--b-ink) !important;
    color: #fff !important;
    border-bottom: 3px solid var(--b-pink) !important;
    padding: 14px 30px !important;
    min-height: 110px;
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
}
.broadcaster-container .broadcaster-header h1 {
    color: #fff !important;
    font-family: var(--b-fontT) !important;
    font-weight: 900 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px;
    margin: 0 !important;
}
.broadcaster-container .broadcaster-header h1 img {
    height: 70px !important;
    width: auto !important;
    /* v0.7.5.b+: 偏愛研究所♥ふぇちぼロゴはカラーロゴなので invert しない。
       黒ヘッダー上で発色するよう、軽くドロップシャドウのみ。 */
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.45));
}
.broadcaster-version-chip {
    background: var(--b-pink) !important;
    color: #fff !important;
    border: 2px solid var(--b-yel) !important;
    border-radius: 999px !important;
    padding: 4px 10px !important;
    font-family: var(--b-font) !important;
    font-weight: 900 !important;
    font-size: 12px !important;
    box-shadow: 2px 2px 0 var(--b-yel) !important;
    margin-left: 8px;
    text-shadow: none !important;
}

.broadcaster-header .header-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}
.broadcaster-header .home-link {
    background: #fff !important;
    color: var(--b-ink) !important;
    border: 2px solid var(--b-yel) !important;
    border-radius: 999px !important;
    padding: 6px 14px !important;
    font-family: var(--b-font) !important;
    font-weight: 900 !important;
    font-size: 12px !important;
    text-decoration: none !important;
    box-shadow: 2px 2px 0 var(--b-pink) !important;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.broadcaster-header .user-info {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff !important;
    font-family: var(--b-font) !important;
    font-weight: 800;
}

/* 配信者ダッシュボードタブ */
.dashboard-tabs {
    background: var(--b-card);
    border: var(--b-border);
    border-radius: 999px;
    box-shadow: 3px 3px 0 var(--b-ink);
    padding: 4px;
    display: inline-flex !important;
    gap: 4px !important;
    margin: 0 auto 18px !important;
}
.dashboard-tab {
    background: transparent !important;
    color: var(--b-ink) !important;
    border: 2px solid transparent !important;
    border-radius: 999px !important;
    padding: 7px 16px !important;
    font-family: var(--b-font) !important;
    font-weight: 900 !important;
    font-size: 13px !important;
    cursor: pointer;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
}
.dashboard-tab:hover { background: var(--b-pinkS) !important; }
.dashboard-tab.active {
    background: var(--b-pink) !important;
    color: #fff !important;
    border-color: var(--b-ink) !important;
    box-shadow: 2px 2px 0 var(--b-ink) !important;
}

/* 配信者ダッシュボードのカード */
.broadcaster-container .card {
    background: var(--b-card) !important;
    border: var(--b-border) !important;
    border-radius: 22px !important;
    box-shadow: var(--b-shadow) !important;
    color: var(--b-ink) !important;
    padding: 22px 26px !important;
}
.broadcaster-container .card h2 {
    color: var(--b-ink) !important;
    font-family: var(--b-fontT) !important;
    font-weight: 900 !important;
    background: none !important;
    -webkit-text-fill-color: var(--b-ink) !important;
    text-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px;
}

/* シーン管理 / ウィジェット配置パネル */
.scenes-list, .widget-list-compact, .widget-palette, .widget-panel-right {
    background: var(--b-paper) !important;
    border: var(--b-border-thin) !important;
    color: var(--b-ink) !important;
}
.scene-row, .scene-row-inline {
    background: var(--b-card) !important;
    border: var(--b-border-thin) !important;
    border-radius: 12px !important;
    color: var(--b-ink) !important;
}
.scene-row.selected, .scene-row.is-selected {
    background: var(--b-pinkS) !important;
    border-color: var(--b-pink) !important;
}
.widget-palette-item {
    background: var(--b-card) !important;
    border: var(--b-border-thin) !important;
    color: var(--b-ink) !important;
    border-radius: 8px !important;
}
.widget-palette-item:hover {
    background: var(--b-pinkS) !important;
    border-color: var(--b-pink) !important;
}
.widget-list-compact-item {
    background: var(--b-card) !important;
    color: var(--b-ink) !important;
    border-bottom: 1.5px dashed var(--b-pinkE) !important;
}
.widget-list-compact-item.selected {
    background: var(--b-pinkS) !important;
    border-color: var(--b-pink) !important;
}

/* シーン関連 input */
.scene-field, .scene-field-name, .scene-field-point {
    background: var(--b-card) !important;
    color: var(--b-ink) !important;
    border: var(--b-border-thin) !important;
    border-radius: 8px !important;
}

/* live-emergency-row 緊急ボタン */
.live-emergency-btn {
    border: var(--b-border) !important;
    border-radius: 999px !important;
    box-shadow: 2px 2px 0 var(--b-ink) !important;
}

/* ウィジェット編集ペイン (黒背景 → 紙系) */
.widget-editor-pane {
    color: var(--b-ink) !important;
}
.widget-editor-section {
    /* v0.7.5.f+: 縦詰め — padding/margin を一段圧縮 (10/8 → 7/5)。 */
    background: var(--b-card);
    border: var(--b-border-thin);
    border-radius: 10px;
    padding: 7px 9px;
    margin-bottom: 5px;
}
.widget-editor-section-title {
    color: var(--b-ink2) !important;
    font-family: var(--b-fontT) !important;
    font-weight: 900 !important;
    font-size: 11px !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 3px;             /* v0.7.5.f+: 6 → 3 */
}
.widget-editor-field-label {
    color: var(--b-ink2) !important;
    font-weight: 800 !important;
}
.widget-editor-input {
    background: var(--b-paper) !important;
    color: var(--b-ink) !important;
    border: var(--b-border-thin) !important;
    border-radius: 6px !important;
}

/* video preview wrap */
.video-preview-wrap, .live-video-wrap {
    border: var(--b-border) !important;
    box-shadow: var(--b-shadow-sm) !important;
    background: #000 !important;
    border-radius: 14px !important;
}

/* 配信統計 */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
}
.stat-item {
    background: var(--b-pinkS) !important;
    border: var(--b-border) !important;
    border-radius: 14px !important;
    box-shadow: 2px 2px 0 var(--b-ink) !important;
    padding: 12px !important;
    text-align: center;
}
.stat-value {
    color: var(--b-pinkD) !important;
    font-family: var(--b-fontT) !important;
    font-weight: 900 !important;
    font-size: 24px !important;
}
.stat-label {
    color: var(--b-ink2) !important;
    font-weight: 800 !important;
    font-size: 11px !important;
}

/* チャット (配信者画面の live tab 内) */
.live-chat-card, .chat-messages, #chatMessages {
    background: var(--b-paper) !important;
    color: var(--b-ink) !important;
}
.chat-input input {
    background: var(--b-card) !important;
    color: var(--b-ink) !important;
    border: var(--b-border-thin) !important;
    border-radius: 999px !important;
}

/* ログインページ (broadcaster login) */
.login-container {
    background: var(--b-bg) !important;
    color: var(--b-ink) !important;
}
.login-box {
    background: var(--b-card) !important;
    border: var(--b-border) !important;
    border-radius: 22px !important;
    box-shadow: 8px 8px 0 var(--b-ink) !important;
    color: var(--b-ink) !important;
}
.login-box h1, .login-box .subtitle {
    color: var(--b-ink) !important;
    text-shadow: none !important;
    -webkit-text-fill-color: var(--b-ink) !important;
}
.login-hint, .home-link {
    color: var(--b-ink2) !important;
}

/* 設定タブグリッド */
.settings-tab-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 18px;
}

/* TOTP card etc */
.totp-help, .totp-status, .totp-section {
    color: var(--b-ink2) !important;
}

/* 配信者向けロゴ全体 (lovense-settings の シンプル top-bar) */
body > header.top-bar .logo {
    color: #fff !important;
    font-family: var(--b-fontT) !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    font-size: 22px !important;
}

/* v0.7.5.c+: 編集中ウィジェットの枠は「枠だけ」にする (背景塗り潰しを完全に外す)。
   - editable 状態は dashed pink border + ほぼ透明な fill (1% 以下) のみ。
   - hover/drag/resize 中もごく薄いハイライトに留める。
   - widget-overlay-empty (placeholder) も透過 + dashed border のみで内側は透けて見える。 */
.widget-overlay-item.editable {
    background: transparent !important;
    border: 1.5px dashed rgba(255, 62, 160, 0.6) !important;
}
.widget-overlay-item.editable:hover {
    background: rgba(255, 62, 160, 0.04) !important;
    border-color: var(--b-pink) !important;
}
.widget-overlay-item.editable.dragging,
.widget-overlay-item.editable.resizing,
.widget-overlay-item.editable.selected {
    background: rgba(255, 62, 160, 0.06) !important;
    border-color: var(--b-pink) !important;
    box-shadow: 0 0 0 1px var(--b-pink) !important;
}
/* 空状態 (画像/動画/ウィンドウ未選択) のプレースホルダ — 半透明黒 + dashed border + 中央文字 */
.widget-overlay-empty {
    background: rgba(74, 31, 46, 0.35) !important;
    color: rgba(255, 255, 255, 0.85) !important;
    border: 1.5px dashed rgba(255, 255, 255, 0.5) !important;
    border-radius: 8px !important;
    padding: 6px !important;
    text-align: center !important;
    font-family: var(--b-font) !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    box-shadow: none !important;
}
/* 編集ボックス非表示モードでは空状態も完全に消す */
.widget-overlay.boxes-hidden .widget-overlay-empty {
    background: transparent !important;
    border: none !important;
    color: transparent !important;
}

/* 共通テーブル / 商品一覧 */
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}
.product-card, .add-product-card {
    background: var(--b-card) !important;
    border: var(--b-border) !important;
    border-radius: 18px !important;
    box-shadow: var(--b-shadow) !important;
    color: var(--b-ink) !important;
    overflow: hidden;
}
.add-product-card {
    background: var(--b-pinkS) !important;
    border-style: dashed !important;
    text-align: center;
    padding: 30px 14px;
    cursor: pointer;
}
.add-product-card:hover {
    background: var(--b-pinkE) !important;
}

/* v0.7.5.p+: タクソノミー chip 選択 UI (カテゴリ設定で使う) */
.taxonomy-edit-section {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.chip-select {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 6px;
    background: var(--b-paper) !important;
    border: 1.5px dashed var(--b-pinkE) !important;
    border-radius: 12px;
    min-height: 40px;
    align-items: center;
}
.chip-select-empty {
    color: var(--b-ink3) !important;
    font-size: 12px;
    padding: 4px 8px;
}
.chip-select-item {
    background: var(--b-card) !important;
    color: var(--b-ink) !important;
    border: 2px solid var(--b-ink) !important;
    border-radius: 999px !important;
    padding: 5px 12px !important;
    font-family: var(--b-font) !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    cursor: pointer;
    box-shadow: 2px 2px 0 var(--b-ink) !important;
    transition: transform 0.08s, box-shadow 0.08s, background 0.12s;
}
.chip-select-item:hover {
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 var(--b-ink) !important;
}
.chip-select-item.selected {
    background: var(--b-pink) !important;
    color: #fff !important;
    border-color: var(--b-ink) !important;
}
/* v0.7.5.q+: 削除可能 chip (自由タグ用) */
.chip-removable {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    padding-right: 4px !important;
}
.chip-remove-btn {
    background: transparent;
    border: none;
    color: #fff !important;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
    border-radius: 50%;
    width: 18px; height: 18px;
    display: inline-flex; align-items: center; justify-content: center;
}
.chip-remove-btn:hover { background: rgba(0,0,0,0.25); }
.tag-add-row {
    display: flex;
    gap: 6px;
    margin-top: 6px;
}
.tag-add-row input {
    flex: 1;
    background: var(--b-card) !important;
    color: var(--b-ink) !important;
    border: 2px solid var(--b-ink) !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    font-family: var(--b-font) !important;
}

/* メンテナンス / 設定系 banned-list 等 */
.banned-list, .ng-words-list {
    background: var(--b-paper) !important;
    border: var(--b-border-thin) !important;
    border-radius: 12px !important;
    padding: 8px !important;
}
.banned-empty { color: var(--b-ink2) !important; font-weight: 800; }


/* ============================================================================
   v0.7.5.m+: レスポンシブ (配信ダッシュボード)
   - タブレット (~1024px): カード余白圧縮 + tabs を小型化
   - モバイル (~768px): tabs 横スクロール / カード mobile padding / stat 2列
   - 極小 (~480px): tabs アイコン非表示 / 更にタイト
   ============================================================================ */
@media (max-width: 1024px) {
    .broadcaster-container .card { padding: 18px 20px !important; border-radius: 18px !important; }
    .broadcaster-container .broadcaster-header { padding: 12px 22px !important; min-height: 92px; }
    .broadcaster-container .broadcaster-header h1 img { height: 60px !important; }
    .dashboard-tabs { gap: 3px !important; padding: 3px !important; }
    .dashboard-tab { padding: 6px 13px !important; font-size: 12px !important; }
}

@media (max-width: 768px) {
    /* dashboard-tabs を横スクロール可 (狭幅で溢れない) */
    .dashboard-tabs {
        display: flex !important;
        overflow-x: auto !important;
        max-width: 100% !important;
        white-space: nowrap;
        margin: 0 0 14px !important;
        border-radius: 14px !important;
        padding: 4px !important;
        scrollbar-width: thin;
    }
    .dashboard-tabs::-webkit-scrollbar { height: 5px; }
    .dashboard-tabs::-webkit-scrollbar-thumb { background: var(--b-pinkE); border-radius: 999px; }
    .dashboard-tab {
        padding: 6px 11px !important;
        font-size: 11px !important;
        flex-shrink: 0;
    }
    .dashboard-tab svg { width: 14px !important; height: 14px !important; }

    /* ヘッダ — height/logo 縮減 + version chip 隠す */
    .broadcaster-container .broadcaster-header {
        padding: 10px 14px !important;
        min-height: 72px;
        gap: 8px !important;
    }
    .broadcaster-container .broadcaster-header h1 img { height: 44px !important; }
    .broadcaster-version-chip { display: none !important; }
    .broadcaster-header .header-actions { gap: 6px !important; }
    .broadcaster-header .home-link { padding: 4px 10px !important; font-size: 11px !important; }

    /* カード — mobile padding */
    .broadcaster-container .card {
        padding: 14px 14px !important;
        border-radius: 16px !important;
        box-shadow: 3px 3px 0 var(--b-ink) !important;
    }
    .broadcaster-container .card h2 { font-size: 15px !important; gap: 5px; }
    .broadcaster-container .card h2 svg { width: 16px !important; height: 16px !important; }

    /* stat-grid: 2 列に圧縮 */
    .stats-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .stat-value { font-size: 18px !important; }
    .stat-label { font-size: 10px !important; }
    .stat-item { padding: 10px !important; }

    /* 緊急ボタン横並び詰め */
    .live-emergency-btn { padding: 6px 10px !important; font-size: 11px !important; }

    /* チャット入力 */
    .chat-input input { padding: 7px 12px !important; font-size: 12px; }
}

@media (max-width: 480px) {
    .broadcaster-container .broadcaster-header { padding: 8px 12px !important; min-height: 64px; }
    .broadcaster-container .broadcaster-header h1 img { height: 38px !important; }
    .broadcaster-container .card { padding: 11px 12px !important; }
    .broadcaster-container .card h2 { font-size: 14px !important; }
    .dashboard-tab { padding: 5px 9px !important; font-size: 10px !important; }
    .dashboard-tab svg { display: none !important; }  /* 極小幅ではテキストのみ */
    .stats-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
    .stat-value { font-size: 16px !important; }
}
