:root {
    --stock-primary-bg: #e8f0fe;
    --stock-primary-text: #1e4976;
    --stock-success-bg: #ecfdf5;
    --stock-success-text: #047857;
    --stock-danger-bg: #fef2f2;
    --stock-danger-text: #b91c1c;
    --stock-warning-bg: #fffbeb;
    --stock-warning-text: #b45309;
    --stock-info-bg: #eff6ff;
    --stock-info-text: #0369a1;
    --stock-secondary-bg: #f1f5f9;
    --stock-secondary-text: #475569;
    --stock-accent-bg: #f0eef8;
    --stock-accent-text: #4a4080;
    --stock-accent-border: #c9c0de;
}

body {
    background-color: #f8f9fa;
}

/* デモバナー */
.banner-warning {
    background-color: #f5faf6;
    border-bottom: 1px solid #c6e0cc;
    padding: 0.625rem 0;
    font-size: 0.8125rem;
    color: #4a5568;
}

.banner-warning .fw-bold {
    color: #2d3748;
}

.banner-warning .text-success {
    color: #5a9e6f !important;
}

/* バッジ（色分けは維持、トーンを下げる） */
.badge.bg-primary {
    background-color: var(--stock-primary-bg) !important;
    color: var(--stock-primary-text) !important;
    font-weight: 500;
}

.badge.bg-success {
    background-color: var(--stock-success-bg) !important;
    color: var(--stock-success-text) !important;
    font-weight: 500;
}

.badge.bg-danger {
    background-color: var(--stock-danger-bg) !important;
    color: var(--stock-danger-text) !important;
    font-weight: 500;
}

.badge.bg-warning,
.badge.bg-warning.text-dark {
    background-color: var(--stock-warning-bg) !important;
    color: var(--stock-warning-text) !important;
    font-weight: 500;
}

.badge.bg-info {
    background-color: var(--stock-info-bg) !important;
    color: var(--stock-info-text) !important;
    font-weight: 500;
}

.badge.bg-secondary {
    background-color: var(--stock-secondary-bg) !important;
    color: var(--stock-secondary-text) !important;
    font-weight: 500;
}

/* カードヘッダー */
.card-header.bg-primary {
    background-color: var(--stock-primary-bg) !important;
    color: var(--stock-primary-text) !important;
    border-bottom: 1px solid #c7d9f0;
}

.card-header.bg-success {
    background-color: var(--stock-success-bg) !important;
    color: var(--stock-success-text) !important;
    border-bottom: 1px solid #a7f3d0;
}

.card-header.bg-info {
    background-color: var(--stock-info-bg) !important;
    color: var(--stock-info-text) !important;
    border-bottom: 1px solid #bae6fd;
}

.card-header.bg-warning,
.card-header.bg-warning.text-dark {
    background-color: var(--stock-warning-bg) !important;
    color: var(--stock-warning-text) !important;
    border-bottom: 1px solid #fde68a;
}

.card-header-accent {
    background-color: var(--stock-accent-bg) !important;
    color: var(--stock-accent-text) !important;
    border-bottom: 1px solid var(--stock-accent-border);
}

.card-accent-border {
    border-left: 4px solid #9b8ec4 !important;
}

/* 統計カード */
.stat-card {
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

.stat-icon {
    font-size: 2.5rem;
    opacity: 0.45;
}

.card.stat-card.bg-primary {
    background-color: var(--stock-primary-bg) !important;
    color: var(--stock-primary-text) !important;
}

.card.stat-card.bg-success {
    background-color: var(--stock-success-bg) !important;
    color: var(--stock-success-text) !important;
}

.card.stat-card.bg-warning {
    background-color: var(--stock-warning-bg) !important;
    color: var(--stock-warning-text) !important;
}

.card.stat-card.bg-danger {
    background-color: var(--stock-danger-bg) !important;
    color: var(--stock-danger-text) !important;
}

.card.stat-card.bg-info {
    background-color: var(--stock-info-bg) !important;
    color: var(--stock-info-text) !important;
}

.card.stat-card.bg-secondary {
    background-color: var(--stock-secondary-bg) !important;
    color: var(--stock-secondary-text) !important;
}

.stat-card-accent {
    background-color: var(--stock-accent-bg) !important;
    color: var(--stock-accent-text) !important;
}

.card.stat-card .card-subtitle {
    opacity: 0.75;
}

/* ボタン */
.btn-primary {
    background-color: #5b8fc7;
    border-color: #5b8fc7;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #4a7ab0;
    border-color: #4a7ab0;
}

.btn-outline-primary {
    color: #4a7ab0;
    border-color: #a8c4e0;
}

.btn-outline-primary:hover {
    background-color: var(--stock-primary-bg);
    border-color: #7ba3cc;
    color: var(--stock-primary-text);
}

.btn-warning {
    background-color: var(--stock-warning-bg);
    border-color: #fde68a;
    color: var(--stock-warning-text);
}

.btn-warning:hover {
    background-color: #fef3c7;
    border-color: #fcd34d;
    color: var(--stock-warning-text);
}

.btn-info {
    background-color: var(--stock-info-bg);
    border-color: #bae6fd;
    color: var(--stock-info-text);
}

.btn-info:hover,
.btn-info.text-white:hover {
    background-color: #dbeafe;
    border-color: #93c5fd;
    color: var(--stock-info-text) !important;
}

.btn-info.text-white {
    color: var(--stock-info-text) !important;
}

.btn-accent {
    background-color: var(--stock-accent-bg);
    border: 1px solid var(--stock-accent-border);
    color: var(--stock-accent-text);
}

.btn-accent:hover {
    background-color: #e4dff0;
    border-color: #b8aed4;
    color: var(--stock-accent-text);
}

/* モーダル */
.modal-header.bg-success {
    background-color: var(--stock-success-bg) !important;
    color: var(--stock-success-text) !important;
    border-bottom: 1px solid #a7f3d0;
}

/* テーブル */
.table-hover tbody tr:hover {
    background-color: #fafbfc;
}

/* 詳細ページ */
.info-label {
    font-weight: 600;
    color: #6c757d;
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
}

.info-value {
    font-size: 0.95rem;
    color: #212529;
}
