/* ==========================================================
   StockFlow · 基础层
   设计变量、Bootstrap 主题覆盖、全局排版、通用按钮与章节
   加载顺序：bootstrap.css → base.css → 其他模块
   ========================================================== */

/* 主题色: #667eea */
:root {
    --stock-primary: #667eea;
    --stock-primary-dark: #5568d3;
    --stock-primary-light: #8b9cf5;
    --stock-secondary: #524ba2;
    --stock-text: #1f2937;
    --stock-text-muted: #6b7280;
    --stock-bg-soft: #f6f7ff;
    --stock-border: #e8eaf6;
    --stock-radius: 16px;
    --stock-shadow: 0 20px 50px rgba(102, 126, 234, 0.15);

    /* Bootstrap 主题色（覆盖 bootstrap.css 的默认蓝色 #0d6efd） */
    --bs-primary: #667eea;
    --bs-primary-rgb: 102, 126, 234;
    --bs-link-color: #667eea;
    --bs-link-hover-color: #5568d3;
}

/* ==========================================================
   Bootstrap 主题色覆盖：Primary = #667eea
   bootstrap.css 中大量 primary 色值在编译期被写死，仅改 CSS
   变量无法覆盖按钮、表单、分页等组件，因此在此集中覆盖。
   ========================================================== */
.btn-primary {
    --bs-btn-bg: #667eea;
    --bs-btn-border-color: #667eea;
    --bs-btn-hover-bg: #5568d3;
    --bs-btn-hover-border-color: #4a5bc4;
    --bs-btn-focus-shadow-rgb: 102, 126, 234;
    --bs-btn-active-bg: #4a5bc4;
    --bs-btn-active-border-color: #4553b8;
    --bs-btn-disabled-bg: #667eea;
    --bs-btn-disabled-border-color: #667eea;
}

.btn-outline-primary {
    --bs-btn-color: #667eea;
    --bs-btn-border-color: #667eea;
    --bs-btn-hover-bg: #667eea;
    --bs-btn-hover-border-color: #667eea;
    --bs-btn-focus-shadow-rgb: 102, 126, 234;
    --bs-btn-active-bg: #667eea;
    --bs-btn-active-border-color: #667eea;
    --bs-btn-disabled-color: #667eea;
    --bs-btn-disabled-border-color: #667eea;
}

.link-primary {
    color: #667eea !important;
}

    .link-primary:hover,
    .link-primary:focus {
        color: #5568d3 !important;
    }

.text-bg-primary {
    background-color: rgba(102, 126, 234, var(--bs-bg-opacity, 1)) !important;
}

/* 表单：聚焦边框、聚焦光晕、选中态 */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: #8b9cf5;
    box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
}

.form-check-input:checked,
.form-check-input[type=checkbox]:indeterminate {
    background-color: #667eea;
    border-color: #667eea;
}

.form-range::-webkit-slider-thumb,
.form-range::-moz-range-thumb {
    background-color: #667eea;
}

    .form-range::-webkit-slider-thumb:active,
    .form-range::-moz-range-thumb:active {
        background-color: #8b9cf5;
    }

.form-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
}

.form-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
}

/* 关闭按钮聚焦光晕 */
.btn-close:focus {
    box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
}

/* 手风琴 */
.accordion {
    --bs-accordion-btn-focus-border-color: #8b9cf5;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%235568d3'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-active-color: #5568d3;
    --bs-accordion-active-bg: rgba(102, 126, 234, 0.1);
}

/* 分页 */
.pagination {
    --bs-pagination-hover-color: #5568d3;
    --bs-pagination-focus-color: #5568d3;
    --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(102, 126, 234, 0.25);
    --bs-pagination-active-bg: #667eea;
    --bs-pagination-active-border-color: #667eea;
}

/* 下拉菜单 */
.dropdown-menu,
.dropdown-menu-dark {
    --bs-dropdown-link-active-bg: #667eea;
}

/* 导航胶囊 */
.nav-pills {
    --bs-nav-pills-link-active-bg: #667eea;
}

/* 进度条 */
.progress {
    --bs-progress-bar-bg: #667eea;
}

/* 列表组 */
.list-group {
    --bs-list-group-active-bg: #667eea;
    --bs-list-group-active-border-color: #667eea;
}

.list-group-item-primary {
    color: #3b4a9e;
    background-color: #e6e9fb;
}

    .list-group-item-primary.list-group-item-action:hover,
    .list-group-item-primary.list-group-item-action:focus {
        color: #3b4a9e;
        background-color: #d7ddf6;
    }

    .list-group-item-primary.list-group-item-action.active {
        color: #fff;
        background-color: #5568d3;
        border-color: #5568d3;
    }

/* 警告框 */
.alert-primary {
    --bs-alert-color: #3b4a9e;
    --bs-alert-bg: #e6e9fb;
    --bs-alert-border-color: #cfd5f6;
}

    .alert-primary .alert-link {
        color: #2f3c8a;
    }

/* 表格 */
.table-primary {
    --bs-table-color: #3b4a9e;
    --bs-table-bg: #e6e9fb;
    --bs-table-border-color: #cfd5f6;
    --bs-table-striped-bg: #dbe0f8;
    --bs-table-striped-color: #3b4a9e;
    --bs-table-active-bg: #d3d9f5;
    --bs-table-active-color: #3b4a9e;
    --bs-table-hover-bg: #d7ddf6;
    --bs-table-hover-color: #3b4a9e;
}

/* ---------------- 全局排版 ---------------- */
html {
    scroll-behavior: smooth;
}

body {
    font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    color: var(--stock-text);
    background: #fff;
    padding-top: 72px;
}

::selection {
    background: rgba(102, 126, 234, .25);
}

/* ---------------- 通用按钮 ---------------- */
.btn-stock-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--stock-primary), var(--stock-secondary));
    border: none;
    border-radius: 10px;
    padding: 10px 28px;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(102, 126, 234, .35);
    transition: transform .2s ease, box-shadow .2s ease;
}

    .btn-stock-primary:hover, .btn-stock-primary:focus {
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 12px 26px rgba(102, 126, 234, .45);
    }

.btn-stock-outline {
    color: var(--stock-primary);
    background: #fff;
    border: 1.5px solid var(--stock-primary);
    border-radius: 10px;
    padding: 10px 28px;
    font-weight: 600;
    transition: all .2s ease;
}

    .btn-stock-outline:hover, .btn-stock-outline:focus {
        color: #fff;
        background: var(--stock-primary);
        border-color: var(--stock-primary);
    }

.btn-stock-light {
    background: #fff;
    color: var(--stock-primary);
    border-radius: 10px;
    padding: 12px 36px;
    font-weight: 700;
    border: none;
    transition: transform .2s ease;
}

/* ---------------- 章节通用 ---------------- */
.section {
    padding: 90px 0;
}

.section-light {
    background: var(--stock-bg-soft);
}

.section-label {
    display: inline-block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    color: var(--stock-primary);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.section-heading h2 {
    font-size: 2rem;
    font-weight: 700;
}

.section-heading p {
    color: var(--stock-text-muted);
    margin-top: 8px;
}

/* ---------------- 旧模板遗留规则 ---------------- */
/* 内容区域左右留白，避免贴边 */
.body-content {
    margin-top: 15px;
    padding-left: 15px;
    padding-right: 15px;
}

/* 覆盖 Bootstrap 对过长 dt 的截断行为 */
.dl-horizontal dt {
    white-space: normal;
}

/* 表单控件默认 100% 宽，这里限制最大值 */
input,
select,
textarea {
    max-width: 280px;
}

/* ---------------- 响应式 ---------------- */
@media (max-width: 575.98px) {
    .section {
        padding: 64px 0;
    }
}
