.fc-box {
    background: var(--fc-fs-box-bg, #fff);
    border: 1px solid var(--fc-fs-box-border, #ddd);
    border-radius: var(--fc-fs-box-radius, 8px);
    padding: var(--fc-fs-box-pad, 20px);
    margin: 20px 0;
    max-width: var(--fc-fs-max, none);
}
.fc-desc {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
    color: #666;
}
.fc-g {
    margin-bottom: var(--fc-fs-gap, 16px);
}
.fc-lbl {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    font-size: var(--fc-fs-label-size, 14px);
    color: var(--fc-fs-label, #1d2327);
}
.fc-req {
    color: #d63638;
    margin-left: 4px;
}
.fc-in,
.fc-fm textarea {
    width: 100%;
    padding: var(--fc-fs-field-pad, 10px) 12px;
    border: 1px solid var(--fc-fs-field-border, #ddd);
    border-radius: var(--fc-fs-field-radius, 4px);
    background: var(--fc-fs-field-bg, #fff);
    font-size: 14px;
    transition: border-color 0.2s;
}
.fc-in:focus,
.fc-fm textarea:focus {
    border-color: var(--fc-fs-primary, #2271b1);
    outline: none;
    box-shadow: 0 0 0 1px var(--fc-fs-primary, #2271b1);
}
.fc-og {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.fc-ol {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: normal;
    cursor: pointer;
}
/* 多选必填未选时的提示：整行显示，浅红底，扁平无黑边 */
.fc-og .fc-group-err {
    flex: 0 0 100%;
    font-size: 13px;
    line-height: 1.6;
    color: #b32d2e;
    background: #fdf0f0;
    border-radius: 6px;
    padding: 6px 10px;
}

.fc-og.fc-group-bad .fc-ol {
    color: #b32d2e;
}

/* 下拉选择 */
.fc-select {
    width: 100%;
    padding: var(--fc-fs-field-pad, 10px) 12px;
    background: var(--fc-fs-field-bg, #fff);
    border-radius: var(--fc-fs-field-radius, 4px);
    cursor: pointer;
}

/* 隐私政策同意 */
.fc-consent {
    align-items: flex-start;
    gap: 8px;
    line-height: 1.6;
}

.fc-consent input {
    margin-top: 3px;
    flex: none;
}

.fc-consent a {
    color: #2271b1;
}

/* 已选择的附件名 */
.fc-file-name {
    display: inline-block;
    margin-top: 8px;
    color: #555;
    font-size: 13px;
}

/* 人机验证 */
.fc-turnstile {
    margin-bottom: 16px;
}
.fc-up {
    position: relative;
}
.fc-fi {
    position: absolute;
    opacity: 0;
    width: 0.1px;
    height: 0.1px;
}
.fc-ul {
    display: inline-block;
    padding: 10px 16px;
    background: #f0f0f1;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.2s;
}
.fc-ul:hover {
    background: #e0e0e1;
}
.fc-ul small {
    display: block;
    font-size: 12px;
    color: #666;
    margin-top: 4px;
}
.fc-pv {
    margin-top: 12px;
}
.fc-pv img {
    max-width: 150px;
    max-height: 150px;
    border: 1px solid #ddd;
    padding: 4px;
    border-radius: 4px;
}
.fc-btn {
    background: var(--fc-fs-primary, #2271b1);
    color: var(--fc-fs-btn-text, #fff);
    border: none;
    padding: 10px 24px;
    border-radius: var(--fc-fs-btn-radius, 4px);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s;
}
.fc-btn:hover {
    background: #135e96;
}
.fc-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.fc-msg-out {
    margin-top: 16px;
    padding: 12px;
    border-radius: 4px;
    display: none;
}
.fc-msg-out.success {
    display: block;
    background: #d1e7dd;
    color: #0f5132;
    border: 1px solid #badbcc;
}
.fc-msg-out.error {
    display: block;
    background: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}
.fc-box-err,
.fc-box-warn {
    padding: 12px;
    border-radius: 4px;
}
.fc-box-err {
    background: #f8d7da;
    color: #842029;
    border: 1px solid #f5c2c7;
}
.fc-box-warn {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffecb5;
}

/* 蜜罐字段：正常访客看不到，也不会被误触 */
.fc-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

/* 提交成功后的回执 */
.fc-receipt-out {
    display: none;
}

.fc-receipt {
    padding: 16px 18px;
    background: #f5faf7;
    border: 1px solid #cfe8db;
    border-radius: 8px;
}

.fc-receipt-t {
    margin: 0 0 12px;
    color: #0f5132;
    font-size: 14px;
    font-weight: 600;
}

.fc-receipt-dl {
    margin: 0;
    padding: 0;
}

.fc-receipt-row {
    display: flex;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px solid rgba(15, 81, 50, 0.08);
    font-size: 13.5px;
}

.fc-receipt-row:first-child {
    border-top: 0;
}

.fc-receipt-row dt {
    flex: none;
    width: 88px;
    color: #5b7166;
}

.fc-receipt-row dd {
    flex: 1;
    margin: 0;
    color: #1d2327;
    word-break: break-word;
}

.fc-receipt-no {
    margin: 12px 0 0;
    color: #7c8f85;
    font-size: 12px;
}

/* 提交成功后引导到联系渠道 */
.fc-receipt-guide {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px dashed #d8e5dd;
}

.fc-receipt-guide .fc-chb-row {
    margin: 10px 0 0;
}

.fc-receipt-guide-t {
    margin: 0;
    font-size: 13.5px;
    color: #4b5563;
}

.fc-receipt-act {
    margin-top: 12px;
}

.fc-again {
    padding: 8px 18px;
    background: #fff;
    border: 1px solid #cfe8db;
    border-radius: 4px;
    color: #0f5132;
    font-size: 13.5px;
    cursor: pointer;
    transition: background 0.2s;
}

.fc-again:hover {
    background: #eef7f2;
}

/* ==========================================================================
   外观设置：标签位置 / 两列 / 按钮整行
   ========================================================================== */

/* ---------- 新增字段类型 ---------- */

/* 隐藏字段：不占位置 */
.fc-g-hidden {
    display: none !important;
}

/* 人机验证：算术题 */
.fc-captcha .fc-cap-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fc-captcha .fc-cap-q {
    flex: none;
    padding: 10px 16px;
    border-radius: var(--fc-fs-field-radius, 4px);
    background: #f4f7fa;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #374151;
}

.fc-captcha .fc-cap-input {
    max-width: 160px;
}

/* 人机验证：滑块 */
.fc-cap-track {
    position: relative;
    height: 44px;
    border-radius: var(--fc-fs-field-radius, 4px);
    background: #f4f7fa;
    overflow: hidden;
    user-select: none;
}

.fc-cap-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    background: rgba(34, 113, 177, .12);
}

.fc-cap-tip {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    font-size: 13px;
    color: #8a94a3;
    pointer-events: none;
}

.fc-cap-slider {
    position: absolute;
    left: 0;
    top: 2px;
    width: 44px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: calc(var(--fc-fs-field-radius, 4px) - 1px);
    background: #fff;
    box-shadow: 0 1px 4px rgba(15, 23, 42, .16);
    color: var(--fc-fs-primary, #2271b1);
    font-size: 18px;
    cursor: grab;
    touch-action: none;
}

.fc-cap-slider:active {
    cursor: grabbing;
}

.fc-captcha-slider.is-done .fc-cap-track {
    background: #eaf7ef;
}

.fc-captcha-slider.is-done .fc-cap-tip {
    color: #12805c;
    font-weight: 600;
}

/* 评分 */
.fc-rate {
    display: flex;
    gap: 6px;
}

.fc-rate-i {
    position: relative;
    cursor: pointer;
    line-height: 1;
}

.fc-rate-i input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.fc-rate-i span {
    font-size: 24px;
    color: #d9dee6;
    transition: color .15s ease;
}

.fc-rate-i.is-on span,
.fc-rate-i:hover span {
    color: #f2b01e;
}

/* 日期区间 */
.fc-range {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fc-range .fc-in {
    flex: 1;
    min-width: 0;
}

.fc-range-sep {
    flex: none;
    color: #9aa3af;
    font-size: 13px;
}

/* 小标题 / 说明文字 */
.fc-note {
    padding: 10px 14px;
    border-left: 3px solid var(--fc-fs-primary, #2271b1);
    border-radius: 0 8px 8px 0;
    background: #f7f9fb;
}

.fc-note b {
    display: block;
    font-size: 15px;
    color: #1f2937;
}

.fc-note span {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.6;
}

.fc-g-note {
    margin-bottom: calc(var(--fc-fs-gap, 16px) - 6px);
}

/* 多文件列表 */
.fc-file-list {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fc-file-list span {
    font-size: 13px;
    color: #4b5563;
}

/* 只用提示词：简单字段的标签隐藏（单选、多选、附件这类仍保留，否则不知道该选什么） */
.fc-labels-hidden .fc-lbl-simple {
    display: none;
}

/* 电脑端两列 */
.fc-2col .fc-fm-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fc-fs-gap, 16px);
    align-items: start;
}

.fc-2col .fc-g {
    margin-bottom: 0;
}

.fc-2col .fc-btn,
.fc-2col .fc-submit,
.fc-2col .fc-turnstile,
.fc-2col .fc-hp,
.fc-2col .fc-g-wide {
    grid-column: 1 / -1;
}

/* 两列布局下，小标题前面留一点间距，隔断感更清楚 */
.fc-2col .fc-g-note {
    margin-top: 4px;
}

.fc-2col .fc-submit {
    justify-self: start;
}

.fc-2col.fc-submit-center .fc-submit {
    justify-self: center;
}

.fc-2col.fc-submit-right .fc-submit {
    justify-self: end;
}

.fc-2col.fc-btn-full .fc-submit {
    justify-self: stretch;
}

@media (max-width: 782px) {
    .fc-2col .fc-fm-body {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* 按钮整行 */
.fc-btn-full .fc-btn {
    display: block;
    width: 100%;
    text-align: center;
}

/* 标题与提交按钮对齐 */
.fc-submit {
    text-align: left;
}

.fc-submit-center .fc-submit {
    text-align: center;
}

.fc-submit-right .fc-submit {
    text-align: right;
}

.fc-title-center .fc-desc,
.fc-title-center .fc-fm-title {
    text-align: center;
}

.fc-title-right .fc-desc,
.fc-title-right .fc-fm-title {
    text-align: right;
}
