﻿/* ==========================================================================
   科技岗位招聘报名审核系统 —— 全站统一设计系统
   配色取自首页 Hero（昆明植物园 扶荔宫 · 森林 · 秋叶）：
   植物深绿 / 墨绿 / 灰绿为主，暖金与秋叶橙为辅，不使用亮蓝与科技蓝渐变。
   所有颜色集中定义在下方 :root，页面中不再单独写颜色。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 设计令牌
   -------------------------------------------------------------------------- */
:root {
    /* ---- 品牌：植物绿 ---- */
    --app-brand: #1F5A46; /* 主色 · 植物深绿 */
    --app-brand-dark: #123D32; /* 深色 · 墨绿 */
    --app-brand-darker: #0D2C23; /* 最深 · Hero 遮罩 */
    --app-brand-2: #527A68; /* 次主色 · 灰绿 */
    --app-brand-soft: #E9F1EC; /* 浅绿底 */
    /* ---- 强调：暖金 / 秋叶 ---- */
    --app-accent: #C58A45; /* 暖金 */
    --app-accent-dark: #A66F31;
    --app-accent-soft: #FAF2E6;
    /* ---- 中性 ---- */
    --app-ink: #26332D; /* 正文 */
    --app-ink-2: #46564E;
    --app-ink-3: #6E7F76;
    --app-line: #D8E1DA; /* 边框 */
    --app-line-strong: #BFCDC5;
    --app-bg: #F3F6F1; /* 页面浅背景 */
    --app-surface: #FFFFFF; /* 卡片 */
    --app-surface-2: #F7FAF6; /* 卡片头 / 表头 */
    /* ---- 语义色 ---- */
    --app-ok: #1F7A4D; /* 通过 */
    --app-ok-soft: #E6F3EB;
    --app-ok-border: rgba(31,122,77,.30);
    --app-warn: #A96A17; /* 待办 / 警告 · 暖橙 */
    --app-warn-soft: #FBF1E2;
    --app-warn-border: rgba(169,106,23,.32);
    --app-danger: #B3261E; /* 危险操作保持红色 */
    --app-danger-dark: #93201A;
    --app-danger-soft: #FBECEB;
    --app-danger-border: rgba(179,38,30,.30);
    --app-neutral: #5B6B63; /* 无需审核 · 中性石绿 */
    --app-neutral-soft: #EEF2EF;
    --app-neutral-border: rgba(91,107,99,.30);
    --app-muted: #6E7F76;
    --app-muted-soft: #EDF1EC;
    /* ---- 交互 ---- */
    --app-ring: rgba(31,90,70,.24); /* 焦点圈 */
    --app-on-dark: rgba(255,255,255,.92);
    --app-on-dark-2: rgba(255,255,255,.72);
    --app-on-dark-line: rgba(255,255,255,.34);
    /* ---- 形状 ---- */
    --app-radius: 10px;
    --app-radius-sm: 6px;
    --app-radius-lg: 14px;
    --app-shadow-1: 0 1px 2px rgba(18,61,50,.05), 0 1px 3px rgba(18,61,50,.06);
    --app-shadow-2: 0 6px 18px rgba(18,61,50,.10);
    --app-gap: 1rem;
    /* ---- 覆盖 Bootstrap 5.1 的默认蓝（作用于 .text-primary / .bg-primary 等工具类）---- */
    --bs-primary: #1F5A46;
    --bs-primary-rgb: 31,90,70;
    --bs-info: #527A68;
    --bs-info-rgb: 82,122,104;
    --bs-secondary: #527A68;
    --bs-secondary-rgb: 82,122,104;
    --bs-success: #1F7A4D;
    --bs-success-rgb: 31,122,77;
    --bs-warning: #A96A17;
    --bs-warning-rgb: 169,106,23;
    --bs-danger: #B3261E;
    --bs-danger-rgb: 179,38,30;
    --bs-body-color: #26332D;
}

/* --------------------------------------------------------------------------
   2. 基础排版
   -------------------------------------------------------------------------- */
html {
    font-size: 15px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background-color: var(--app-bg);
    color: var(--app-ink);
    font-family: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans CJK SC", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--app-ink);
    font-weight: 600;
    line-height: 1.35;
}

a {
    color: var(--app-brand);
    text-decoration: none;
}

    a:hover {
        color: var(--app-brand-dark);
        text-decoration: underline;
    }

hr {
    border-color: var(--app-line);
    opacity: 1;
}

code, kbd {
    color: var(--app-brand-dark);
}

::selection {
    background: var(--app-brand-soft);
    color: var(--app-brand-dark);
}

.app-text-muted {
    color: var(--app-ink-3);
}

.app-break {
    word-break: break-word;
    overflow-wrap: anywhere;
    white-space: normal;
}

.app-clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.app-ellipsis {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

/* --------------------------------------------------------------------------
   3. 顶部品牌区（纯文字，无图片 Logo）
   -------------------------------------------------------------------------- */
.app-brandbar {
    background: linear-gradient(100deg, var(--app-brand-darker) 0%, var(--app-brand-dark) 58%, var(--app-brand) 100%);
    color: #fff;
    border-bottom: 3px solid var(--app-accent);
}

.app-brandbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 0;
    flex-wrap: wrap;
}

.app-brandbar__id {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
    max-width: 100%;
    color: #fff;
    text-decoration: none;
}

    .app-brandbar__id:hover {
        color: #fff;
        text-decoration: none;
    }

/* 所徽底片：白色圆形，保证绿色徽标在深绿顶栏上依然清晰 */
.app-brandbar__mark {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(255,255,255,.55);
    box-shadow: 0 1px 4px rgba(6,26,20,.25);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px;
    overflow: hidden;
}

    .app-brandbar__mark img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

.app-brandbar__title {
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: .04em;
    margin: 0;
    color: #fff;
}

.app-brandbar__sub {
    font-size: .8rem;
    color: var(--app-on-dark-2);
    letter-spacing: .18em;
    margin: 0;
}

.app-brandbar__meta {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    font-size: .82rem;
    color: var(--app-on-dark);
}

    .app-brandbar__meta .bi {
        margin-right: .3rem;
        color: var(--app-accent);
    }

@media (max-width: 767.98px) {
    .app-brandbar__title {
        font-size: 1.05rem;
    }

    .app-brandbar__sub {
        letter-spacing: .1em;
        font-size: .72rem;
    }

    .app-brandbar__mark {
        width: 40px;
        height: 40px;
        padding: 2px;
    }

    .app-brandbar__meta {
        display: none;
    }
}

/* --------------------------------------------------------------------------
   4. 主导航（白底 + 绿色激活态，与 Hero 自然衔接）
   -------------------------------------------------------------------------- */
.app-nav {
    background: var(--app-surface);
    border-bottom: 1px solid var(--app-line);
    box-shadow: var(--app-shadow-1);
    padding: 0;
}

    .app-nav .navbar-collapse {
        align-items: center;
    }

    .app-nav .navbar-toggler {
        border-color: var(--app-line-strong);
        padding: .3rem .55rem;
        margin: .5rem 0;
    }

        .app-nav .navbar-toggler:focus {
            box-shadow: 0 0 0 .2rem var(--app-ring);
        }

    .app-nav .nav-link {
        color: var(--app-ink-2);
        font-size: .95rem;
        padding: .85rem .8rem;
        border-bottom: 3px solid transparent;
        white-space: nowrap;
    }

        .app-nav .nav-link:hover,
        .app-nav .nav-link:focus {
            color: var(--app-brand);
            background-color: var(--app-brand-soft);
        }

        .app-nav .nav-link.is-active {
            color: var(--app-brand);
            font-weight: 600;
            border-bottom-color: var(--app-brand);
        }

.app-nav__user {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.app-nav__username {
    color: var(--app-ink-2);
    font-size: .9rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .app-nav .nav-link {
        padding: .6rem .25rem .6rem .6rem;
        border-bottom: none;
        border-left: 3px solid transparent;
    }

        .app-nav .nav-link.is-active {
            border-bottom: none;
            border-left-color: var(--app-brand);
        }

    .app-nav__user {
        flex-wrap: wrap;
        padding: .5rem 0 .75rem;
    }
}

/* --------------------------------------------------------------------------
   5. 首页 Hero
   -------------------------------------------------------------------------- */
.app-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: clamp(480px, 42vw, 620px);
    background-color: var(--app-brand-darker);
    background-image: url("../img/hero-kib.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    /* 桌面端：竖向取中偏下，保证扶荔宫主体完整 */
    background-position: 62% 52%;
    border-bottom: 3px solid var(--app-brand-dark);
    overflow: hidden;
}

    /* 左侧墨绿 → 透明遮罩 + 轻微上下压暗，保证文字清晰又不糊住照片 */
    .app-hero::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        background: linear-gradient(90deg, rgba(13,44,35,.62) 0%, rgba(13,44,35,.44) 26%, rgba(13,44,35,.16) 46%, rgba(13,44,35,0) 64%), linear-gradient(180deg, rgba(13,44,35,.26) 0%, rgba(13,44,35,0) 34%, rgba(13,44,35,0) 66%, rgba(13,44,35,.30) 100%);
    }

/* 注意：只改上下内边距，保留 Bootstrap .container 的左右 gutter 与最大宽度，
   这样 Hero 文字与页面其余内容左对齐 */
.app-hero__inner {
    position: relative;
    z-index: 1;
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.app-hero__text {
    max-width: 34rem;
}

.app-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .82rem;
    letter-spacing: .16em;
    color: var(--app-on-dark);
    margin: 0 0 .9rem;
    padding: .3rem .75rem .3rem .6rem;
    border: 1px solid var(--app-on-dark-line);
    border-radius: 999px;
    background: rgba(13,44,35,.35);
}

    .app-hero__eyebrow .bi {
        color: var(--app-accent);
    }

/* 标题保持单行不换行：字号随视口收缩，最小 1.25rem，
   在 320px 窄屏下 12 个汉字仍能完整放下且不产生横向滚动 */
.app-hero__title {
    color: #fff;
    font-size: clamp(1.25rem, 4vw, 2.3rem);
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.3;
    margin: 0 0 .75rem;
    white-space: nowrap;
    text-shadow: 0 2px 18px rgba(6,26,20,.5);
}

.app-hero__subtitle {
    color: var(--app-on-dark);
    font-size: clamp(.95rem, 1.3vw, 1.1rem);
    letter-spacing: .1em;
    margin: 0 0 1.35rem;
    text-shadow: 0 1px 10px rgba(6,26,20,.5);
}

.app-hero__deadline {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem .85rem;
    padding: .6rem .95rem;
    border-radius: var(--app-radius);
    background: rgba(13,44,35,.52);
    border: 1px solid var(--app-on-dark-line);
    color: var(--app-on-dark);
    font-size: .88rem;
    margin-bottom: 1.4rem;
}

    .app-hero__deadline .bi {
        color: var(--app-accent);
    }

.app-hero__deadline strong {
    color: #fff;
}

.app-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

/* Hero 上的按钮：暖金强调 + 浅色描边，不使用亮蓝 */
.btn-hero {
    background-color: var(--app-accent);
    border: 1px solid var(--app-accent);
    color: #1B2E22;
    font-weight: 600;
    padding: .55rem 1.35rem;
}

    .btn-hero:hover,
    .btn-hero:focus,
    .btn-hero:active {
        background-color: var(--app-accent-dark) !important;
        border-color: var(--app-accent-dark) !important;
        color: #fff;
    }

.btn-hero-ghost {
    background-color: rgba(255,255,255,.08);
    border: 1px solid var(--app-on-dark-line);
    color: #fff;
    font-weight: 500;
    padding: .55rem 1.35rem;
}

    .btn-hero-ghost:hover,
    .btn-hero-ghost:focus,
    .btn-hero-ghost:active {
        background-color: #fff !important;
        border-color: #fff !important;
        color: var(--app-brand-dark) !important;
    }

/* 倒计时在 Hero 中的排版 */
.app-hero .app-countdown span {
    color: #fff;
    font-weight: 700;
}

.app-hero .app-countdown small {
    color: var(--app-on-dark-2);
    margin: 0 .35rem 0 .1rem;
    font-weight: 400;
}

/* 平板 */
@media (max-width: 991.98px) {
    .app-hero {
        min-height: 440px;
        background-position: 64% 50%;
    }

    .app-hero__inner {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }
}

/* 手机：整体缩短；图片按高度铺满，只做横向取景，保证扶荔宫主体不被裁掉；
   文字改为叠在顶部的深绿渐变上 */
@media (max-width: 767.98px) {
    .app-hero {
        min-height: 420px;
        align-items: flex-start;
        /* 竖屏时图片按高度铺满，只能横向取景：偏右取景以避开左侧遮罩、保留扶荔宫主体 */
        background-position: 74% center;
    }

        .app-hero::before {
            background: linear-gradient(180deg, rgba(13,44,35,.86) 0%, rgba(13,44,35,.62) 36%, rgba(13,44,35,.16) 62%, rgba(13,44,35,.44) 100%);
        }

    .app-hero__inner {
        padding-top: 1.75rem;
        padding-bottom: 2rem;
    }

    .app-hero__text {
        max-width: 100%;
    }

    .app-hero__deadline {
        width: 100%;
        margin-bottom: 1rem;
    }

    .app-hero__actions .btn {
        flex: 1 1 auto;
    }
}

@media (max-width: 400px) {
    .app-hero {
        min-height: 380px;
        background-position: 76% center;
    }
}

/* --------------------------------------------------------------------------
   6. 页面骨架
   -------------------------------------------------------------------------- */
.app-main {
    flex: 1 0 auto;
    padding: 0 0 2.5rem;
}

.app-main__inner {
    padding-top: 1.5rem;
}

.app-page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.app-page-head__title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: .55rem;
}

    .app-page-head__title .bi {
        color: var(--app-brand);
    }

.app-page-head__desc {
    color: var(--app-ink-3);
    font-size: .9rem;
    margin: .3rem 0 0;
}

.app-page-head__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.app-crumb {
    font-size: .85rem;
    color: var(--app-ink-3);
    margin-bottom: .5rem;
}

    .app-crumb a {
        color: var(--app-ink-3);
    }

        .app-crumb a:hover {
            color: var(--app-brand);
        }

/* 页脚 */
.app-footer {
    flex-shrink: 0;
    background: var(--app-brand-dark);
    border-top: 3px solid var(--app-accent);
    color: var(--app-on-dark-2);
    font-size: .85rem;
    padding: 1.25rem 0;
}

.app-footer__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1.5rem;
    flex-wrap: wrap;
}

.app-footer a {
    color: var(--app-on-dark);
}

    .app-footer a:hover {
        color: #fff;
    }

/* --------------------------------------------------------------------------
   7. 卡片 / 区块
   -------------------------------------------------------------------------- */
.app-card {
    background: var(--app-surface);
    border: 1px solid var(--app-line);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-1);
    margin-bottom: 1.25rem;
}

.app-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .9rem 1.15rem;
    border-bottom: 1px solid var(--app-line);
    background: var(--app-surface-2);
    border-radius: var(--app-radius) var(--app-radius) 0 0;
}

.app-card__title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: .45rem;
}

    .app-card__title .bi {
        color: var(--app-brand);
    }

.app-card__hint {
    font-size: .82rem;
    color: var(--app-ink-3);
}

.app-card__body {
    padding: 1.15rem;
}

.app-card__body--flush {
    padding: 0;
}

.app-card__foot {
    padding: .85rem 1.15rem;
    border-top: 1px solid var(--app-line);
    background: var(--app-surface-2);
    border-radius: 0 0 var(--app-radius) var(--app-radius);
}

/* 统计块 */
.app-stat {
    display: block;
    background: var(--app-surface);
    border: 1px solid var(--app-line);
    border-radius: var(--app-radius);
    padding: 1rem 1.1rem;
    height: 100%;
    text-decoration: none;
    color: inherit;
    transition: border-color .15s ease, box-shadow .15s ease;
}

a.app-stat:hover {
    border-color: var(--app-brand);
    box-shadow: var(--app-shadow-2);
    text-decoration: none;
    color: inherit;
}

.app-stat__label {
    font-size: .82rem;
    color: var(--app-ink-3);
    display: flex;
    align-items: center;
    gap: .35rem;
}

.app-stat__value {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--app-brand);
    line-height: 1.2;
    margin-top: .2rem;
}

.app-stat__value--muted {
    color: var(--app-ink-3);
}

.app-stat__note {
    font-size: .78rem;
    color: var(--app-ink-3);
}

/* --------------------------------------------------------------------------
   8. 按钮
   -------------------------------------------------------------------------- */
.btn {
    border-radius: var(--app-radius-sm);
    font-size: .92rem;
    font-weight: 500;
    padding: .45rem .95rem;
}

    .btn:focus,
    .btn:active:focus,
    .btn-link.nav-link:focus,
    .form-control:focus,
    .form-select:focus,
    .form-check-input:focus {
        box-shadow: 0 0 0 .2rem var(--app-ring);
    }

.btn-lg {
    font-size: 1rem;
    padding: .6rem 1.4rem;
}

.btn-sm {
    font-size: .82rem;
    padding: .3rem .6rem;
}

/* 主按钮：植物深绿 */
.btn-primary {
    background-color: var(--app-brand);
    border-color: var(--app-brand);
    color: #fff;
}

    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background-color: var(--app-brand-dark) !important;
        border-color: var(--app-brand-dark) !important;
        color: #fff;
    }

.btn-outline-primary {
    color: var(--app-brand);
    border-color: var(--app-line-strong);
    background-color: transparent;
}

    .btn-outline-primary:hover,
    .btn-outline-primary:focus,
    .btn-outline-primary:active {
        background-color: var(--app-brand) !important;
        border-color: var(--app-brand) !important;
        color: #fff !important;
    }

/* 次按钮：灰绿 */
.btn-secondary {
    background-color: var(--app-brand-2);
    border-color: var(--app-brand-2);
    color: #fff;
}

    .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active {
        background-color: #446553 !important;
        border-color: #446553 !important;
    }

.btn-outline-secondary {
    color: var(--app-ink-2);
    border-color: var(--app-line-strong);
    background-color: transparent;
}

    .btn-outline-secondary:hover,
    .btn-outline-secondary:focus,
    .btn-outline-secondary:active {
        background-color: var(--app-brand-2) !important;
        border-color: var(--app-brand-2) !important;
        color: #fff !important;
    }

/* 通过 */
.btn-success {
    background-color: var(--app-ok);
    border-color: var(--app-ok);
    color: #fff;
}

    .btn-success:hover, .btn-success:focus, .btn-success:active {
        background-color: #19653F !important;
        border-color: #19653F !important;
    }

.btn-outline-success {
    color: var(--app-ok);
    border-color: var(--app-ok-border);
    background-color: transparent;
}

    .btn-outline-success:hover,
    .btn-outline-success:focus,
    .btn-outline-success:active {
        background-color: var(--app-ok) !important;
        border-color: var(--app-ok) !important;
        color: #fff !important;
    }

/* 危险操作保持红色 */
.btn-danger {
    background-color: var(--app-danger);
    border-color: var(--app-danger);
    color: #fff;
}

    .btn-danger:hover, .btn-danger:focus, .btn-danger:active {
        background-color: var(--app-danger-dark) !important;
        border-color: var(--app-danger-dark) !important;
    }

.btn-outline-danger {
    color: var(--app-danger);
    border-color: var(--app-danger-border);
    background-color: transparent;
}

    .btn-outline-danger:hover,
    .btn-outline-danger:focus,
    .btn-outline-danger:active {
        background-color: var(--app-danger) !important;
        border-color: var(--app-danger) !important;
        color: #fff !important;
    }

/* 警告使用暖橙 */
.btn-warning {
    background-color: var(--app-warn);
    border-color: var(--app-warn);
    color: #fff;
}

    .btn-warning:hover, .btn-warning:focus, .btn-warning:active {
        background-color: #8E5813 !important;
        border-color: #8E5813 !important;
        color: #fff;
    }

.btn-outline-warning {
    color: var(--app-warn);
    border-color: var(--app-warn-border);
    background-color: transparent;
}

    .btn-outline-warning:hover,
    .btn-outline-warning:focus,
    .btn-outline-warning:active {
        background-color: var(--app-warn) !important;
        border-color: var(--app-warn) !important;
        color: #fff !important;
    }

/* 中性描边（无需审核 / 备注等） */
.btn-outline-dark {
    color: var(--app-ink);
    border-color: var(--app-line-strong);
    background-color: transparent;
}

    .btn-outline-dark:hover,
    .btn-outline-dark:focus,
    .btn-outline-dark:active {
        background-color: var(--app-ink) !important;
        border-color: var(--app-ink) !important;
        color: #fff !important;
    }

.btn-info,
.btn-outline-info {
    color: var(--app-brand-2);
    background-color: transparent;
    border-color: var(--app-line-strong);
}

    .btn-info:hover, .btn-outline-info:hover {
        background-color: var(--app-brand-2) !important;
        border-color: var(--app-brand-2) !important;
        color: #fff !important;
    }

.btn-light {
    background-color: #fff;
    border-color: var(--app-line-strong);
    color: var(--app-ink-2);
}

    .btn-light:hover {
        background-color: var(--app-brand-soft);
        border-color: var(--app-line-strong);
        color: var(--app-brand-dark);
    }

.btn-link {
    color: var(--app-brand);
}

    .btn-link:hover {
        color: var(--app-brand-dark);
    }

.btn[disabled],
.btn.disabled {
    opacity: .6;
    cursor: not-allowed;
}

.app-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .35rem;
}

    .app-actions .btn {
        white-space: nowrap;
    }

.app-formbar {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    padding-top: .35rem;
}

    .app-formbar .app-formbar__spacer {
        flex: 1 1 auto;
    }

/* --------------------------------------------------------------------------
   9. 表单
   -------------------------------------------------------------------------- */
.app-form-section {
    border-top: 1px solid var(--app-line);
    padding-top: 1.15rem;
    margin-top: 1.15rem;
}

    .app-form-section:first-of-type {
        border-top: none;
        padding-top: 0;
        margin-top: 0;
    }

.app-form-section__title {
    font-size: .98rem;
    font-weight: 600;
    color: var(--app-brand-dark);
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .2rem;
}

    .app-form-section__title::before {
        content: "";
        width: 3px;
        height: 1em;
        background: var(--app-brand);
        border-radius: 2px;
        display: inline-block;
    }

.app-form-section__desc {
    font-size: .84rem;
    color: var(--app-ink-3);
    margin-bottom: .9rem;
}

.app-field {
    margin-bottom: 1rem;
}

    .app-field > label,
    .app-field .control-label,
    .app-field .form-label {
        display: block;
        font-size: .88rem;
        font-weight: 600;
        color: var(--app-ink-2);
        margin-bottom: .3rem;
    }

.app-field__hint {
    display: block;
    font-size: .8rem;
    color: var(--app-ink-3);
    margin-top: .25rem;
}

.app-required::after {
    content: "*";
    color: var(--app-danger);
    margin-left: .2rem;
    font-weight: 700;
}

.form-control,
.form-select {
    border-radius: var(--app-radius-sm);
    border-color: var(--app-line-strong);
    color: var(--app-ink);
    padding: .45rem .7rem;
    font-size: .93rem;
}

    .form-control:focus,
    .form-select:focus {
        border-color: var(--app-brand);
    }

    .form-control::placeholder {
        color: #9BAAA1;
    }

    .form-control.input-validation-error,
    .form-select.input-validation-error {
        border-color: var(--app-danger);
        background-color: #FFFBFA;
    }

textarea.form-control {
    min-height: 7rem;
}

.form-check-input:checked {
    background-color: var(--app-brand);
    border-color: var(--app-brand);
}

.field-validation-error,
.text-danger {
    color: var(--app-danger) !important;
}

.field-validation-error {
    display: block;
    font-size: .82rem;
    margin-top: .25rem;
}

.app-validation-summary {
    border: 1px solid var(--app-danger-border);
    background: var(--app-danger-soft);
    color: var(--app-danger);
    border-radius: var(--app-radius-sm);
    padding: .75rem 1rem;
    margin-bottom: 1rem;
    font-size: .88rem;
}

    .app-validation-summary ul {
        margin: 0;
        padding-left: 1.2rem;
    }

    .app-validation-summary.validation-summary-valid {
        display: none;
    }

    .app-validation-summary .app-validation-summary__title {
        font-weight: 600;
        display: flex;
        align-items: center;
        gap: .4rem;
        margin-bottom: .3rem;
    }

/* 文件上传区域 */
.app-upload {
    border: 1px dashed var(--app-line-strong);
    background: var(--app-surface-2);
    border-radius: var(--app-radius-sm);
    padding: .9rem 1rem;
}

    .app-upload:focus-within {
        border-color: var(--app-brand);
        background: #fff;
    }

.app-upload__label {
    font-size: .88rem;
    font-weight: 600;
    color: var(--app-ink-2);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .4rem;
}

.app-upload__tip {
    font-size: .8rem;
    color: var(--app-ink-3);
    margin-top: .35rem;
}

.app-upload__current {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: var(--app-ok-soft);
    color: var(--app-ok);
    border: 1px solid var(--app-ok-border);
    max-width: 100%;
}

.app-upload__missing {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: var(--app-muted-soft);
    color: var(--app-muted);
    border: 1px solid var(--app-line-strong);
}

.app-upload__picked {
    display: block;
    font-size: .8rem;
    color: var(--app-brand);
    margin-top: .35rem;
    word-break: break-all;
}

.uploaded-label {
    color: var(--app-ok);
    font-size: .82rem;
    font-weight: 500;
    margin-left: .3rem;
}

/* --------------------------------------------------------------------------
   10. 表格
   -------------------------------------------------------------------------- */
.app-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.app-table {
    width: 100%;
    margin-bottom: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .9rem;
}

    .app-table > thead > tr > th {
        background: var(--app-brand-soft);
        color: var(--app-brand-dark);
        font-weight: 600;
        font-size: .85rem;
        white-space: nowrap;
        padding: .7rem .75rem;
        border-bottom: 1px solid var(--app-line);
        border-top: none;
        vertical-align: middle;
    }

    .app-table > tbody > tr > td {
        padding: .7rem .75rem;
        border-bottom: 1px solid var(--app-line);
        vertical-align: middle;
        color: var(--app-ink);
    }

    .app-table > tbody > tr:last-child > td {
        border-bottom: none;
    }

    .app-table > tbody > tr:hover > td {
        background-color: var(--app-surface-2);
    }

    .app-table td.app-table__wrap,
    .app-table th.app-table__wrap {
        white-space: normal;
        word-break: break-word;
        min-width: 12rem;
    }

    .app-table td.app-table__num {
        text-align: right;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

    .app-table td.app-table__nowrap {
        white-space: nowrap;
    }

    /* 内容较短的列（如「申请岗位」最多 6 个汉字）：按内容宽度排版，
       不设 min-width，避免被 __wrap 的 12rem 撑宽，也不会把 6 个字挤成两行 */
    .app-table td.app-table__narrow,
    .app-table th.app-table__narrow {
        white-space: nowrap;
        min-width: 0;
    }

    .app-table td.app-table__actions {
        white-space: nowrap;
    }

.app-table__index {
    color: var(--app-ink-3);
    font-variant-numeric: tabular-nums;
    width: 3rem;
}

@media (max-width: 767.98px) {
    .app-table {
        font-size: .85rem;
    }

        .app-table > thead > tr > th,
        .app-table > tbody > tr > td {
            padding: .55rem .55rem;
        }
}

/* 空状态 */
.app-empty {
    text-align: center;
    padding: 2.5rem 1rem;
    color: var(--app-ink-3);
}

.app-empty__icon {
    font-size: 2.1rem;
    color: var(--app-line-strong);
    line-height: 1;
    margin-bottom: .6rem;
}

.app-empty__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--app-ink-2);
    margin-bottom: .25rem;
}

.app-empty__text {
    font-size: .87rem;
    margin-bottom: 1rem;
}

/* --------------------------------------------------------------------------
   11. 状态徽章（全站统一颜色与文字规则）
   -------------------------------------------------------------------------- */
.app-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .78rem;
    font-weight: 500;
    line-height: 1.4;
    padding: .2rem .55rem;
    border-radius: 999px;
    border: 1px solid transparent;
    white-space: nowrap;
}

.app-badge--pass {
    background: var(--app-ok-soft);
    color: var(--app-ok);
    border-color: var(--app-ok-border);
}

.app-badge--fail {
    background: var(--app-danger-soft);
    color: var(--app-danger);
    border-color: var(--app-danger-border);
}

.app-badge--skip {
    background: var(--app-neutral-soft);
    color: var(--app-neutral);
    border-color: var(--app-neutral-border);
}

.app-badge--pending {
    background: var(--app-warn-soft);
    color: var(--app-warn);
    border-color: var(--app-warn-border);
}

.app-badge--returned {
    background: var(--app-muted-soft);
    color: var(--app-muted);
    border-color: var(--app-line-strong);
}

.app-badge--neutral {
    background: var(--app-muted-soft);
    color: var(--app-ink-2);
    border-color: var(--app-line-strong);
}

/* 提交状态条 */
.app-statusbar {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    padding: .7rem 1rem;
    border-radius: var(--app-radius-sm);
    font-size: .9rem;
    border: 1px solid var(--app-line);
    background: var(--app-surface-2);
}

.app-statusbar--locked {
    background: var(--app-ok-soft);
    border-color: var(--app-ok-border);
    color: #14522F;
}

.app-statusbar--open {
    background: var(--app-warn-soft);
    border-color: var(--app-warn-border);
    color: #7A4C10;
}

/* --------------------------------------------------------------------------
   12. 提示 / 消息
   -------------------------------------------------------------------------- */
.alert {
    border-radius: var(--app-radius-sm);
    border-width: 1px;
    font-size: .9rem;
    padding: .8rem 1rem;
}

.alert-success {
    background: var(--app-ok-soft);
    border-color: var(--app-ok-border);
    color: #14522F;
}

.alert-danger {
    background: var(--app-danger-soft);
    border-color: var(--app-danger-border);
    color: #7F1A15;
}

.alert-warning {
    background: var(--app-warn-soft);
    border-color: var(--app-warn-border);
    color: #7A4C10;
}

.alert-info {
    background: var(--app-brand-soft);
    border-color: rgba(31,90,70,.20);
    color: var(--app-brand-dark);
}

.app-alert-stack {
    margin-bottom: 1rem;
}

    .app-alert-stack .alert {
        display: flex;
        align-items: flex-start;
        gap: .55rem;
    }

        .app-alert-stack .alert .bi {
            flex: 0 0 auto;
            margin-top: .12rem;
        }

/* --------------------------------------------------------------------------
   13. 进度 / 清单
   -------------------------------------------------------------------------- */
.app-progress {
    height: .5rem;
    border-radius: 999px;
    background: var(--app-muted-soft);
    overflow: hidden;
}

.app-progress__bar {
    height: 100%;
    background: linear-gradient(90deg, var(--app-brand) 0%, var(--app-brand-2) 62%, var(--app-accent) 100%);
    border-radius: 999px;
    transition: width .4s ease;
}

.app-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
}

.app-checklist__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem .25rem;
    border-bottom: 1px dashed var(--app-line);
}

    .app-checklist__item:last-child {
        border-bottom: none;
    }

.app-checklist__icon {
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    background: var(--app-muted-soft);
    color: var(--app-ink-3);
}

.app-checklist__item--done .app-checklist__icon {
    background: var(--app-ok-soft);
    color: var(--app-ok);
}

.app-checklist__body {
    flex: 1 1 auto;
    min-width: 0;
}

.app-checklist__name {
    font-size: .92rem;
    font-weight: 500;
    color: var(--app-ink);
}

.app-checklist__meta {
    font-size: .8rem;
    color: var(--app-ink-3);
}

.app-checklist__action {
    flex: 0 0 auto;
}

/* 流程步骤 */
.app-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: .85rem;
    counter-reset: step;
}

.app-step {
    position: relative;
    background: var(--app-surface);
    border: 1px solid var(--app-line);
    border-radius: var(--app-radius);
    padding: 1rem 1rem 1rem 3rem;
}

    .app-step::before {
        counter-increment: step;
        content: counter(step);
        position: absolute;
        left: 1rem;
        top: 1rem;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        background: var(--app-brand);
        color: #fff;
        font-size: .82rem;
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: center;
    }

.app-step__title {
    font-size: .95rem;
    font-weight: 600;
    margin-bottom: .15rem;
}

.app-step__text {
    font-size: .84rem;
    color: var(--app-ink-3);
    margin: 0;
}

/* 倒计时 */
.app-countdown {
    display: inline-flex;
    align-items: baseline;
    gap: .15rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: .02em;
}

/* 内页使用的截止时间条 */
.app-deadline {
    background: linear-gradient(100deg, var(--app-brand-dark), var(--app-brand));
    color: #fff;
    border-radius: var(--app-radius);
    padding: 1.15rem 1.35rem;
    box-shadow: var(--app-shadow-2);
}

.app-deadline__label {
    font-size: .82rem;
    color: var(--app-on-dark-2);
    letter-spacing: .06em;
}

.app-deadline__value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
}

.app-deadline__date {
    font-size: .85rem;
    color: var(--app-on-dark-2);
}

.app-deadline--closed {
    background: linear-gradient(100deg, #46564E, #6E7F76);
}

/* --------------------------------------------------------------------------
   14. 筛选与分页
   -------------------------------------------------------------------------- */
.app-filterbar {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.app-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.app-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .32rem .8rem;
    font-size: .85rem;
    border-radius: 999px;
    border: 1px solid var(--app-line-strong);
    background: var(--app-surface);
    color: var(--app-ink-2);
    text-decoration: none;
    white-space: nowrap;
}

    .app-chip:hover {
        border-color: var(--app-brand);
        color: var(--app-brand);
        text-decoration: none;
    }

    .app-chip.is-active {
        background: var(--app-brand);
        border-color: var(--app-brand);
        color: #fff;
    }

        .app-chip.is-active:hover {
            color: #fff;
        }

.pagination {
    margin-bottom: 0;
    flex-wrap: wrap;
    gap: .25rem;
    align-items: center;
}

.page-link {
    border-radius: var(--app-radius-sm) !important;
    border-color: var(--app-line);
    color: var(--app-brand);
    font-size: .88rem;
    padding: .35rem .7rem;
}

    .page-link:hover {
        background: var(--app-brand-soft);
        border-color: var(--app-line-strong);
        color: var(--app-brand-dark);
    }

    .page-link:focus {
        box-shadow: 0 0 0 .2rem var(--app-ring);
    }

.page-item.active .page-link {
    background: var(--app-brand);
    border-color: var(--app-brand);
    color: #fff;
}

.page-item.disabled .page-link {
    color: var(--app-ink-3);
    background: var(--app-surface-2);
}

.app-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    flex-wrap: wrap;
    padding: .85rem 1.15rem;
    border-top: 1px solid var(--app-line);
    background: var(--app-surface-2);
    border-radius: 0 0 var(--app-radius) var(--app-radius);
}

.app-pager__info {
    font-size: .85rem;
    color: var(--app-ink-3);
}

.app-pager__jump {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .85rem;
    color: var(--app-ink-3);
}

    .app-pager__jump .form-control {
        width: 5rem;
    }

/* --------------------------------------------------------------------------
   15. 详情（描述列表）
   -------------------------------------------------------------------------- */
.app-dl {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0;
    margin: 0;
}

.app-dl__item {
    padding: .65rem .25rem;
    border-bottom: 1px dashed var(--app-line);
    min-width: 0;
}

.app-dl__item--full {
    grid-column: 1 / -1;
}

.app-dl__label {
    font-size: .8rem;
    color: var(--app-ink-3);
    margin-bottom: .1rem;
}

.app-dl__value {
    font-size: .95rem;
    color: var(--app-ink);
    word-break: break-word;
}

    .app-dl__value:empty::after {
        content: "—";
        color: var(--app-ink-3);
    }

.app-rich {
    font-size: .93rem;
    line-height: 1.75;
}

    .app-rich p {
        margin-bottom: .5rem;
    }

    .app-rich img {
        max-width: 100%;
        height: auto;
    }

/* 危险确认区（删除页） */
.app-danger-zone {
    border: 1px solid var(--app-danger-border);
    background: var(--app-danger-soft);
    border-radius: var(--app-radius-sm);
    padding: 1rem 1.15rem;
    margin-bottom: 1.15rem;
    color: #7F1A15;
}

.app-danger-zone__title {
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .25rem;
}

/* --------------------------------------------------------------------------
   16. 申报材料表（预览 / 打印）
   -------------------------------------------------------------------------- */
.app-doc {
    background: var(--app-surface);
    color: #000;
    padding: 1.5rem;
    border: 1px solid var(--app-line);
    border-radius: var(--app-radius);
}

.app-doc__title {
    text-align: center;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: .06em;
    margin: .5rem 0 .25rem;
}

.app-doc__subtitle {
    text-align: center;
    font-size: .88rem;
    color: var(--app-ink-3);
    margin-bottom: 1.25rem;
}

.app-doc__section {
    margin-top: 1.35rem;
}

.app-doc__section-title {
    font-size: .95rem;
    font-weight: 600;
    text-align: center;
    padding: .5rem .6rem;
    border: 1px solid #000;
    border-bottom: none;
    margin: 0;
}

.app-doc table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
    table-layout: fixed;
}

    .app-doc table th,
    .app-doc table td {
        border: 1px solid #000;
        padding: .4rem .5rem;
        vertical-align: middle;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    .app-doc table th {
        font-weight: 600;
        text-align: center;
    }

.app-doc__cell-head {
    text-align: center;
    white-space: normal;
}

.app-doc__block {
    text-align: left !important;
    vertical-align: top !important;
}

/* 标题上内嵌的证明材料链接：屏幕上可点击，打印时回归纯文本 */
.app-doc a {
    color: var(--app-brand);
    text-decoration: underline;
}

.app-doc__hint {
    text-align: center;
    font-size: .82rem;
    color: var(--app-ink-3);
    margin: -.9rem 0 1.25rem;
}

    .app-doc__hint .bi {
        color: var(--app-brand);
        margin-right: .3rem;
    }

.app-doc__clip {
    margin-left: .25rem;
    color: var(--app-brand);
    font-size: .9em;
}

.app-doc__nofile {
    margin-left: .35rem;
    font-size: .78em;
    color: var(--app-ink-3);
    white-space: nowrap;
}

.app-doc__pledge {
    border: 1px solid #000;
    padding: 1.25rem 1.5rem;
    font-size: .9rem;
    line-height: 1.9;
}

    .app-doc__pledge h5 {
        text-align: center;
        font-weight: 700;
        margin-bottom: .75rem;
    }

.app-doc__sign {
    text-align: right;
    margin-top: 2.5rem;
}

/* --------------------------------------------------------------------------
   17. 打印样式
   -------------------------------------------------------------------------- */
@media print {
    .app-no-print,
    .app-brandbar,
    .app-nav,
    .app-hero,
    .app-footer,
    .app-page-head__actions,
    .app-alert-stack,
    .btn,
    nav,
    header,
    footer {
        display: none !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
        font-size: 12pt;
        display: block;
    }

    .app-main,
    .app-main__inner {
        padding: 0 !important;
    }

    .app-card,
    .app-doc {
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .app-doc table {
        page-break-inside: auto;
    }

        .app-doc table tr {
            page-break-inside: avoid;
            page-break-after: auto;
        }

        .app-doc table thead {
            display: table-header-group;
        }

    .app-page-break {
        page-break-after: always;
    }

    a[href]::after {
        content: "";
    }

    .app-doc a {
        color: #000 !important;
        text-decoration: none !important;
    }

    @page {
        size: A4;
        margin: 12mm;
    }
}

/* --------------------------------------------------------------------------
   18. 账户页面（登录 / 注册 / 找回密码等）
   -------------------------------------------------------------------------- */
.app-auth {
    max-width: 62rem;
    margin: 0 auto;
}

.app-auth--narrow {
    max-width: 34rem;
}

.app-auth__head {
    text-align: center;
    margin-bottom: 1.25rem;
}

.app-auth__title {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: .3rem;
}

.app-auth__desc {
    color: var(--app-ink-3);
    font-size: .9rem;
    margin: 0;
}

.app-auth__aside {
    background: var(--app-brand-soft);
    border: 1px solid rgba(31,90,70,.16);
    border-radius: var(--app-radius);
    padding: 1.15rem;
    height: 100%;
}

    .app-auth__aside h3 {
        font-size: .95rem;
        font-weight: 600;
        color: var(--app-brand-dark);
        margin-bottom: .6rem;
    }

    .app-auth__aside ol,
    .app-auth__aside ul {
        padding-left: 1.15rem;
        margin: 0;
        font-size: .87rem;
        color: var(--app-ink-2);
    }

    .app-auth__aside li {
        margin-bottom: .35rem;
    }

.app-auth__links {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
    font-size: .87rem;
    margin-top: 1rem;
}

/* Identity 账户管理页左侧导航 */
.app-manage-nav .nav-link {
    color: var(--app-ink-2);
    border-radius: var(--app-radius-sm);
    padding: .5rem .8rem;
    font-size: .92rem;
}

    .app-manage-nav .nav-link:hover {
        background: var(--app-brand-soft);
        color: var(--app-brand);
    }

    .app-manage-nav .nav-link.active {
        background: var(--app-brand);
        color: #fff;
    }

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--app-brand);
    color: #fff;
}

/* --------------------------------------------------------------------------
   19. 杂项
   -------------------------------------------------------------------------- */
.app-inline-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    font-size: .87rem;
}

.app-file-link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .86rem;
    max-width: 100%;
}

    .app-file-link .bi {
        color: var(--app-danger);
    }

.app-file-link--none {
    color: var(--app-ink-3);
}

    .app-file-link--none .bi {
        color: var(--app-ink-3);
    }

.app-quota {
    font-size: .82rem;
    color: var(--app-ink-3);
    white-space: nowrap;
}

    .app-quota strong {
        color: var(--app-brand);
    }

.app-quota--full strong {
    color: var(--app-warn);
}

/* 覆盖 Bootstrap 中仍会出现蓝色的少量元素 */
.text-primary {
    color: var(--app-brand) !important;
}

.text-info {
    color: var(--app-brand-2) !important;
}

.text-success {
    color: var(--app-ok) !important;
}

.text-warning {
    color: var(--app-warn) !important;
}

.bg-primary {
    background-color: var(--app-brand) !important;
}

.border-primary {
    border-color: var(--app-brand) !important;
}

.spinner-border {
    border-right-color: transparent;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--app-brand);
}

/* UEditor 容器不撑破布局 */
.edui-default .edui-editor,
.edui-container {
    max-width: 100% !important;
}

/* ==========================================================================
   审核列表：导出 Excel 下拉 + 操作列
   ========================================================================== */

.app-export-menu {
    min-width: 14rem;
}

.app-export-custom {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem 1rem .15rem;
    white-space: nowrap;
    font-size: .875rem;
    color: var(--app-ink-2);
}

    .app-export-custom .form-control {
        width: 4.5rem;
        text-align: center;
    }

/* 「成果审核」列隐藏后，富余宽度让给操作列：给个下限，按钮少折行。
   不用 width:100%，否则备注列（.app-break 可任意断行）会被挤到只剩一两个字。 */
.app-table td.app-table__actions--review,
.app-table th.app-table__actions--review {
    min-width: 21rem;
}

@media (max-width: 991.98px) {
    .app-table td.app-table__actions--review,
    .app-table th.app-table__actions--review {
        min-width: 0;
    }
}
