/* ウェルビーイング成長マップ テーマCSS（Bootstrap 5 上書き用） */
:root {
    --wb-primary: #3a8fa3;
    --wb-deep: #2c5f6e;
    --wb-accent: #6fbf9f;
    --wb-soft: #eaf4f4;
    --wb-bg: #f5f9f9;
}

body {
    background-color: var(--wb-bg);
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: #2f3e46;
}

/* サイドバー */
.wb-sidebar {
    background: linear-gradient(180deg, var(--wb-deep) 0%, #35707f 100%);
    min-height: 100vh;
    color: #fff;
    width: 240px;
    flex-shrink: 0;
}
.wb-sidebar .nav-link {
    color: rgba(255, 255, 255, 0.82);
    border-radius: 8px;
    margin: 2px 10px;
    padding: 8px 14px;
    font-size: 0.92rem;
}
.wb-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}
.wb-sidebar .nav-link.active {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-weight: 600;
}
.wb-brand {
    font-weight: 700;
    font-size: 1.02rem;
    color: #fff;
    padding: 18px 20px 10px;
    display: block;
    text-decoration: none;
}
.wb-brand small {
    display: block;
    font-weight: 400;
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.7);
}

/* カード */
.card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(44, 95, 110, 0.08);
}
.card-header {
    background: #fff;
    border-bottom: 1px solid var(--wb-soft);
    font-weight: 600;
    border-radius: 12px 12px 0 0 !important;
}

/* ボタン・バッジ */
.btn-wb {
    background-color: var(--wb-primary);
    border-color: var(--wb-primary);
    color: #fff;
}
.btn-wb:hover {
    background-color: var(--wb-deep);
    border-color: var(--wb-deep);
    color: #fff;
}
.badge.bg-wb {
    background-color: var(--wb-primary) !important;
}

/* KPIカード */
.kpi-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--wb-deep);
}
.kpi-label {
    color: #6c8489;
    font-size: 0.85rem;
}

/* 成長ステージカード */
.stage-card {
    border-radius: 12px;
    padding: 14px 18px;
    color: #fff;
}
.stage-1a { background: linear-gradient(135deg, #c98f5f, #b97a4e); }
.stage-1  { background: linear-gradient(135deg, #d9a441, #c99331); }
.stage-2  { background: linear-gradient(135deg, #7fb069, #6a9d55); }
.stage-3  { background: linear-gradient(135deg, #4f9d8b, #3d8a78); }
.stage-4  { background: linear-gradient(135deg, #3a8fa3, #2c7a8f); }
.stage-5  { background: linear-gradient(135deg, #4c6ba3, #3d5a91); }

/* ヒートマップ風テーブル */
.heat-0 { background-color: #f2f2f2; color: #999; }
.heat-1 { background-color: #f7e2d4; }
.heat-2 { background-color: #fdeec9; }
.heat-3 { background-color: #e3efd3; }
.heat-4 { background-color: #d0e8dd; }
.heat-5 { background-color: #cde3ec; }
.heat-6 { background-color: #d4dcf0; }

/* プライバシー注意文 */
.privacy-note {
    background-color: var(--wb-soft);
    border-left: 4px solid var(--wb-accent);
    border-radius: 6px;
    padding: 12px 16px;
    font-size: 0.85rem;
    color: #44605f;
}

/* テーブル */
.table thead th {
    background-color: var(--wb-soft);
    color: var(--wb-deep);
    font-size: 0.85rem;
    border-bottom: none;
}

/* スマホでの回答しやすさ：タッチ領域を広めに */
@media (max-width: 767.98px) {
    .form-check-input[type="radio"],
    .form-check-input[type="checkbox"] {
        width: 1.35em;
        height: 1.35em;
    }
    .form-check {
        padding-top: 4px;
        padding-bottom: 4px;
    }
}

/* 印刷用 */
@media print {
    .wb-sidebar, .wb-topbar, .no-print { display: none !important; }
    body { background: #fff; }
    .card { box-shadow: none; border: 1px solid #ddd; }
    .print-break { page-break-before: always; }
}
