/**
 * アプリシェル: 背景・トップバー・メインラッパー
 */
.inv-app {
    font-family: var(--inv-font-stack);
    background:
        radial-gradient(circle at top right, #dbeafe 0%, rgba(219, 234, 254, 0) 35%),
        var(--inv-bg-app);
    color: var(--inv-text);
    min-height: 100vh;
    letter-spacing: 0.01em;
}

.inv-navbar {
    box-shadow: 0 10px 24px rgba(29, 78, 216, 0.32);
    backdrop-filter: blur(8px);
}

.inv-navbar .navbar-brand {
    font-weight: 800;
    letter-spacing: 0.03em;
    font-size: 1.1rem;
}

.inv-page-hero {
    background: var(--inv-bg-elevated);
    border: 1px solid var(--inv-border);
    border-radius: var(--inv-radius-lg);
    box-shadow: var(--inv-shadow);
    padding: 0.82rem 1rem;
    margin-bottom: 1rem !important;
}

.inv-page-hero h4,
.inv-page-hero h5 {
    margin-bottom: 0 !important;
    font-size: 1.1rem;
    line-height: 1.25;
    font-weight: 800;
}

.inv-page-hero h4 i,
.inv-page-hero h5 i {
    width: 1.2rem;
    text-align: center;
    font-size: 0.95rem;
}

.inv-page-hero--accent-primary {
    border-left: 4px solid var(--inv-primary);
}

.inv-page-hero--accent-warning {
    border-left: 4px solid var(--inv-warning);
}

.inv-page-hero--accent-success {
    border-left: 4px solid var(--inv-success);
}

.inv-page-hero--accent-info {
    border-left: 4px solid var(--inv-info);
}

/* Bootstrap アラートをトーンに寄せる */
.inv-app .alert {
    border-radius: var(--inv-radius);
    box-shadow: var(--inv-shadow-sm);
}

/* 主要ボタンをトークンに合わせる */
.inv-app .btn-primary {
    --bs-btn-bg: var(--inv-primary);
    --bs-btn-border-color: var(--inv-primary);
    --bs-btn-hover-bg: var(--inv-primary-hover);
    --bs-btn-hover-border-color: var(--inv-primary-hover);
    --bs-btn-active-bg: var(--inv-primary-hover);
    --bs-btn-active-border-color: var(--inv-primary-hover);
    --bs-btn-disabled-bg: #94a3b8;
    --bs-btn-disabled-border-color: #94a3b8;
}

.inv-app .btn {
    min-height: 38px;
    font-weight: 700;
    border-radius: 10px;
    padding-top: 0.38rem;
    padding-bottom: 0.38rem;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
}

.inv-app .btn.btn-sm {
    min-height: 34px;
    padding-top: 0.28rem;
    padding-bottom: 0.28rem;
}

.inv-app .btn.btn-lg {
    min-height: 42px;
    padding-left: 1rem;
    padding-right: 1rem;
}

.inv-app .list-group-item {
    min-height: 40px;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.inv-app .btn-outline-secondary {
    --bs-btn-color: #334155;
    --bs-btn-border-color: #94a3b8;
    --bs-btn-hover-bg: #334155;
    --bs-btn-hover-border-color: #334155;
}
