/* ダークモード文字視認性改善 */

/* グローバルダークモード設定 */
[data-theme="dark"] {
    /* テキストカラーを明るく調整 */
    --text-primary: #ffffff !important;
    --text-secondary: #e2e8f0 !important;
    --text-light: #a0aec0 !important;
    --text-muted: #cbd5e0 !important;
    
    /* 背景色を調整 */
    --bg-primary: #0f0f0f !important;
    --bg-secondary: #1a1a1a !important;
    --bg-card: #1a1a1a !important;
    --bg-dark: #000000 !important;
    
    /* ボーダー色を明るく */
    --border-color: #333333 !important;
    --border-light: #444444 !important;
}

/* ボディとベーステキスト */
[data-theme="dark"] body {
    color: var(--text-primary) !important;
    background-color: var(--bg-primary) !important;
}

/* コンテナの背景色 */
[data-theme="dark"] .container-fluid,
[data-theme="dark"] .container {
    color: var(--text-primary) !important;
}

/* すべてのテキスト要素 */
[data-theme="dark"] p,
[data-theme="dark"] span,
[data-theme="dark"] div,
[data-theme="dark"] li,
[data-theme="dark"] td,
[data-theme="dark"] th {
    color: var(--text-primary);
}

/* ヘッダー要素 */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: #ffffff !important;
}

/* ラベル */
[data-theme="dark"] label,
[data-theme="dark"] .form-label {
    color: var(--text-secondary) !important;
}

/* カード */
[data-theme="dark"] .card {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}

[data-theme="dark"] .card-header {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--text-primary) !important;
    border-bottom: 1px solid var(--border-color) !important;
}

[data-theme="dark"] .card-body {
    color: var(--text-primary) !important;
}

/* テーブル */
[data-theme="dark"] .table {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .table thead th {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--text-secondary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table tbody td {
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
}

/* フォーム要素 */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--text-light) !important;
}

/* ボタン */
[data-theme="dark"] .btn {
    color: #ffffff !important;
}

[data-theme="dark"] .btn-secondary {
    background-color: #4a5568 !important;
    border-color: #4a5568 !important;
    color: #ffffff !important;
}

[data-theme="dark"] .btn-light {
    background-color: #e2e8f0 !important;
    color: #1a202c !important;
}

[data-theme="dark"] .btn-outline-secondary {
    color: var(--text-secondary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--border-color) !important;
    color: #ffffff !important;
}

/* バッジ */
[data-theme="dark"] .badge {
    color: #ffffff !important;
}

[data-theme="dark"] .badge-secondary {
    background-color: #4a5568 !important;
    color: #ffffff !important;
}

/* テキストユーティリティクラス */
[data-theme="dark"] .text-muted {
    color: var(--text-light) !important;
}

[data-theme="dark"] .text-secondary {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}

/* リンク */
[data-theme="dark"] a {
    color: #60a5fa !important;
}

[data-theme="dark"] a:hover {
    color: #93bbfc !important;
}

/* ナビゲーション */
[data-theme="dark"] .nav-link {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .nav-link:hover {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .nav-link.active {
    color: #ffffff !important;
}

/* タブナビゲーション（ダッシュボード、仕入管理等） */
[data-theme="dark"] .nav-pills .nav-link:not(.active) {
    color: #ffffff !important;
    background-color: transparent !important;
    opacity: 0.8 !important;
}

[data-theme="dark"] .nav-pills .nav-link:not(.active):hover {
    color: #ffffff !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
    opacity: 1 !important;
}

[data-theme="dark"] .nav-pills .nav-link.active {
    color: #ffffff !important;
    background: var(--primary-gradient) !important;
    opacity: 1 !important;
}

[data-theme="dark"] .nav-pills .nav-link i {
    color: inherit !important;
}

/* 強制的にタブの文字を白に */
[data-theme="dark"] #dashboard-tab,
[data-theme="dark"] #purchase-tab,
[data-theme="dark"] #arrival-tab,
[data-theme="dark"] #stock-tab,
[data-theme="dark"] #sales-tab,
[data-theme="dark"] #report-tab,
[data-theme="dark"] #partner-tab,
[data-theme="dark"] #credit-card-tab,
[data-theme="dark"] #cash-account-tab,
[data-theme="dark"] #card-group-tab,
[data-theme="dark"] #point-type-tab {
    color: #ffffff !important;
}

/* 設定ページのダークモード対応 */
[data-theme="dark"] .welcome-section {
    background-color: transparent !important;
    color: var(--text-primary) !important;
}

/* ナビゲーションピル（設定ページ）の強制ダークモード */
/* nav-pills コンテナ自体の背景色 */
[data-theme="dark"] .nav-pills,
[data-theme="dark"] ul.nav-pills,
[data-theme="dark"] #masterTab {
    background-color: transparent !important;
    background: transparent !important;
}

[data-theme="dark"] #masterTab .nav-link,
[data-theme="dark"] #masterTab button.nav-link,
[data-theme="dark"] .nav-pills .nav-link,
[data-theme="dark"] .nav-pills button.nav-link,
[data-theme="dark"] ul#masterTab li button.nav-link {
    background-color: #242424 !important;
    color: #e2e8f0 !important;
    border: 1px solid #333333 !important;
}

[data-theme="dark"] #masterTab .nav-link:hover,
[data-theme="dark"] #masterTab button.nav-link:hover,
[data-theme="dark"] .nav-pills .nav-link:hover,
[data-theme="dark"] .nav-pills button.nav-link:hover,
[data-theme="dark"] ul#masterTab li button.nav-link:hover {
    background-color: #2d2d2d !important;
    color: #ffffff !important;
    border-color: #444444 !important;
}

[data-theme="dark"] #masterTab .nav-link.active,
[data-theme="dark"] #masterTab button.nav-link.active,
[data-theme="dark"] .nav-pills .nav-link.active,
[data-theme="dark"] .nav-pills button.nav-link.active,
[data-theme="dark"] ul#masterTab li button.nav-link.active {
    background-color: #4a9eff !important;
    color: #ffffff !important;
    border-color: #4a9eff !important;
}

[data-theme="dark"] .welcome-title {
    color: #ffffff !important;
}

[data-theme="dark"] .welcome-subtitle {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .master-card {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-color) !important;
}

[data-theme="dark"] .tab-content {
    background-color: transparent !important;
}

[data-theme="dark"] .tab-pane {
    background-color: transparent !important;
}

/* モーダル */
[data-theme="dark"] .modal-content {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}

[data-theme="dark"] .modal-header {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .modal-body {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .modal-footer {
    border-top: 1px solid var(--border-color) !important;
}

/* アラート */
[data-theme="dark"] .alert {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .alert-info {
    background-color: rgba(59, 130, 246, 0.1) !important;
    border-color: #3b82f6 !important;
    color: #93bbfc !important;
}

[data-theme="dark"] .alert-success {
    background-color: rgba(34, 197, 94, 0.1) !important;
    border-color: #22c55e !important;
    color: #86efac !important;
}

[data-theme="dark"] .alert-warning {
    background-color: rgba(245, 158, 11, 0.1) !important;
    border-color: #f59e0b !important;
    color: #fcd34d !important;
}

[data-theme="dark"] .alert-danger {
    background-color: rgba(239, 68, 68, 0.1) !important;
    border-color: #ef4444 !important;
    color: #fca5a5 !important;
}

/* 統計カード */
[data-theme="dark"] .stat-card {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}

[data-theme="dark"] .stat-card h2,
[data-theme="dark"] .stat-card .card-title,
[data-theme="dark"] .stat-card small {
    color: var(--text-primary) !important;
}

/* 価格表示 */
[data-theme="dark"] .price {
    color: #86efac !important;
}

[data-theme="dark"] .profit.positive {
    color: #86efac !important;
}

[data-theme="dark"] .profit.negative {
    color: #fca5a5 !important;
}

/* インプットグループ */
[data-theme="dark"] .input-group-text {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
}

/* ドロップダウン */
[data-theme="dark"] .dropdown-menu {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .dropdown-item:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--text-primary) !important;
}

/* ページネーション */
[data-theme="dark"] .page-link {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-theme="dark"] .page-link:hover {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--text-primary) !important;
}

/* 特定の要素の強制修正 */
[data-theme="dark"] .inventory-detail-label {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .inventory-detail-value {
    color: var(--text-primary) !important;
}

[data-theme="dark"] .additional-info {
    color: var(--text-light) !important;
}

[data-theme="dark"] .updated-time {
    color: var(--text-light) !important;
}

/* スケルトンローディング */
[data-theme="dark"] .skeleton {
    background: linear-gradient(90deg, #2d3748 25%, #4a5568 50%, #2d3748 75%) !important;
}

/* グラデーション背景の文字色修正（ライトモード） */
.bg-gradient-primary {
    color: #ffffff !important;
}

.bg-gradient-primary h1,
.bg-gradient-primary h2,
.bg-gradient-primary h3,
.bg-gradient-primary h4,
.bg-gradient-primary h5,
.bg-gradient-primary h6,
.bg-gradient-primary p,
.bg-gradient-primary span,
.bg-gradient-primary i {
    color: #ffffff !important;
}

.card-header.bg-gradient-primary {
    color: #ffffff !important;
}

.card-header.bg-gradient-primary * {
    color: #ffffff !important;
}

/* グラデーション背景の文字色修正（ダークモード） */
[data-theme="dark"] .bg-gradient-primary {
    color: #ffffff !important;
}

[data-theme="dark"] .bg-gradient-primary * {
    color: #ffffff !important;
}

/* 特定の要素を強制的に白に */
.card-header.bg-gradient-primary.text-white h6 {
    color: #ffffff !important;
}