/* ============ 全局重置 ============ */
* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: "Microsoft YaHei", "Segoe UI", Tahoma, sans-serif;
    font-size: 13px;
    color: #333;
    line-height: 1.6;
    background: #f5f7fa;
}

a { text-decoration: none; color: #5662e3; }
a:hover { text-decoration: underline; }

/* ============ 通用容器 ============ */
.container {
    max-width: none;
    margin: 0 auto;
    padding: 0 20px;
}

/* ============ 导航栏 ============ */
.navbar {
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    position: sticky;
    top: 0;
    z-index: 100;
}

.nav-container {
    max-width: none;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 60px;
}

.nav-logo .logo-text {
    font-size: 16px;
    font-weight: 700;
    color: #5662e3;
    text-decoration: none;
}

.nav-links {
    display: flex;
    gap: 24px;
}

.nav-links a {
    font-size: 13px;
    color: #606266;
    text-decoration: none;
    transition: color 0.2s;
}

.nav-links a:hover {
    color: #5662e3;
}

/* ============ Banner ============ */
.banner {
    background: linear-gradient(135deg, #5662e3 0%, #7c84f0 100%);
    color: #fff;
    padding: 80px 20px;
    text-align: center;
}

.banner h1 {
    font-size: 32px;
    margin-bottom: 12px;
}

.banner-subtitle {
    font-size: 16px;
    margin-bottom: 8px;
    opacity: 0.9;
}

.banner-version {
    font-size: 13px;
    margin-bottom: 30px;
    opacity: 0.8;
}

.btn-download-lg {
    display: inline-block;
    padding: 12px 40px;
    background: #fff;
    color: #5662e3;
    font-size: 15px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-download-lg:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    text-decoration: none;
}

/* ============ 通用Section ============ */
.section {
    padding: 60px 0;
}

.section-alt {
    background: #fff;
}

.section-title {
    text-align: center;
    font-size: 22px;
    font-weight: 600;
    color: #333;
    margin-bottom: 30px;
}

/* ============ 产品介绍 ============ */
.intro-content {
    max-width: 700px;
    margin: 0 auto;
    font-size: 14px;
    color: #606266;
    line-height: 2;
}

/* ============ 功能特点 ============ */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.feature-card {
    text-align: center;
    padding: 30px 20px;
    border-radius: 8px;
    background: #f5f7fa;
    transition: all 0.2s;
}

.feature-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    background: #fff;
}

.feature-icon {
    font-size: 36px;
    margin-bottom: 12px;
}

.feature-card h3 {
    font-size: 15px;
    margin-bottom: 8px;
    color: #333;
}

.feature-card p {
    font-size: 13px;
    color: #909399;
}

/* ============ 下载区域 ============ */
.download-card {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    border-radius: 10px;
    padding: 35px;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.06);
}

.download-info h3 {
    font-size: 18px;
    margin-bottom: 20px;
    color: #333;
}

.download-meta {
    margin-bottom: 20px;
}

.meta-item {
    display: flex;
    padding: 6px 0;
    border-bottom: 1px solid #f0f0f0;
}

.meta-label {
    width: 90px;
    color: #909399;
    flex-shrink: 0;
}

.meta-value {
    color: #333;
    font-weight: 500;
}

.download-desc {
    margin-bottom: 25px;
    color: #606266;
    line-height: 1.8;
}

.download-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.btn-download {
    display: inline-block;
    padding: 10px 30px;
    background: #5662e3;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    border-radius: 5px;
    text-decoration: none;
    transition: background 0.2s;
}

.btn-download:hover {
    background: #4550d3;
    text-decoration: none;
}

.btn-register {
    display: inline-block;
    padding: 10px 30px;
    background: #fff;
    color: #5662e3;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid #5662e3;
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-register:hover {
    background: #5662e3;
    color: #fff;
    text-decoration: none;
}

/* ============ 更新日志 ============ */
.changelog {
    max-width: 600px;
    margin: 0 auto;
}

.changelog-item {
    padding: 20px;
    background: #f5f7fa;
    border-radius: 8px;
    border-left: 4px solid #5662e3;
}

.changelog-version {
    font-size: 16px;
    font-weight: 600;
    color: #5662e3;
}

.changelog-date {
    font-size: 12px;
    color: #909399;
    margin-bottom: 10px;
}

.changelog-list {
    list-style: none;
    padding: 0;
}

.changelog-list li {
    padding: 4px 0;
    font-size: 13px;
    color: #606266;
}

.changelog-list li::before {
    content: "• ";
    color: #5662e3;
}

/* ============ 注册页面 ============ */
.register-wrapper {
    max-width: 480px;
    margin: 0 auto;
    background: #fff;
    border-radius: 10px;
    padding: 35px;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.06);
}

.register-tip {
    text-align: center;
    color: #909399;
    margin-bottom: 25px;
}

.register-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.form-field {
    display: flex;
    flex-direction: column;
}

.form-field label {
    margin-bottom: 5px;
    font-weight: 500;
    color: #606266;
    font-size: 13px;
}

.form-field input {
    padding: 9px 12px;
    border: 1px solid #dcdfe6;
    border-radius: 5px;
    font-size: 13px;
    transition: border-color 0.2s;
}

.form-field input:focus {
    border-color: #5662e3;
    outline: none;
    box-shadow: 0 0 0 2px rgba(86, 98, 227, 0.12);
}

.form-actions {
    flex-direction: row;
    gap: 12px;
    margin-top: 10px;
}

.btn-submit {
    padding: 10px 30px;
    background: #5662e3;
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s;
}

.btn-submit:hover {
    background: #4550d3;
}

.btn-back {
    padding: 10px 20px;
    background: #f5f7fa;
    color: #606266;
    border: 1px solid #dcdfe6;
    border-radius: 5px;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-back:hover {
    background: #ebeef5;
    text-decoration: none;
}

/* ============ 提示框 ============ */
.alert {
    padding: 12px 16px;
    border-radius: 5px;
    margin-bottom: 20px;
    font-size: 13px;
}

.alert-success {
    background: #f0f9eb;
    color: #67c23a;
    border: 1px solid #e1f3d8;
}

.alert-error {
    background: #fef0f0;
    color: #f56c6c;
    border: 1px solid #fde2e2;
}

.alert-info {
    background: #f0f7ff;
    color: #409eff;
    border: 1px solid #d9ecff;
}

.register-success {
    text-align: center;
    padding: 20px 0;
}

.register-success p {
    margin-bottom: 20px;
    color: #67c23a;
    font-size: 14px;
}

/* ============ 底部 ============ */
.footer {
    background: #2c2e3e;
    color: #909399;
    padding: 30px 0;
    text-align: center;
}

.footer-text {
    font-size: 13px;
    margin-bottom: 5px;
}

.footer-link a {
    font-size: 12px;
    color: #606266;
}

.footer-link a:hover {
    color: #909399;
}

/* ============ 响应式 ============ */
@media (max-width: 768px) {
    .features-grid {
        grid-template-columns: 1fr;
    }
    .nav-links {
        gap: 12px;
    }
    .nav-links a {
        font-size: 12px;
    }
    .banner h1 {
        font-size: 24px;
    }
    .banner {
        padding: 50px 20px;
    }
    .section {
        padding: 40px 0;
    }
    .download-actions {
        flex-direction: column;
    }
    .btn-download, .btn-register {
        text-align: center;
    }
}

/* ============ setup.php 管理后台专用样式 ============ */
.setup-user {
    color: #5662e3;
    font-size: 13px;
    font-weight: 500;
}

.setup-container {
    max-width: none;
    margin: 0 auto;
    padding: 20px;
}

.setup-panel {
    background: #fff;
    border-radius: 10px;
    padding: 25px 30px;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.06);
}

.setup-content {
    margin-top: 15px;
}

/* 统计卡片 */
.setup-stat-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}
.setup-stat-card {
    background: linear-gradient(135deg, #5662e3, #7c84f0);
    color: #fff;
    padding: 18px;
    border-radius: 8px;
    text-align: center;
}
.setup-stat-num {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 4px;
}
.setup-stat-label {
    font-size: 12px;
    opacity: 0.9;
}

/* 表格 */
.setup-table-wrap {
    overflow-x: auto;
    background: #fff;
    border-radius: 6px;
    border: 1px solid #ebeef5;
}
.setup-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.setup-table th,
.setup-table td {
    padding: 10px 12px;
    text-align: left;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
}
.setup-table th {
    background: #f5f7fa;
    color: #606266;
    font-weight: 600;
    font-size: 12px;
}
.setup-table tbody tr:hover {
    background: #fafbfc;
}
.setup-table code {
    background: #f5f7fa;
    padding: 1px 6px;
    border-radius: 3px;
    font-family: Consolas, monospace;
    font-size: 12px;
    color: #5662e3;
}
.setup-empty {
    text-align: center;
    color: #909399;
    padding: 30px 0 !important;
}

/* 状态标签 */
.setup-tag {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
}
.setup-tag-ok {
    background: #f0f9eb;
    color: #67c23a;
    border: 1px solid #e1f3d8;
}
.setup-tag-off {
    background: #fef0f0;
    color: #f56c6c;
    border: 1px solid #fde2e2;
}

/* 操作按钮 */
.setup-btn-ok,
.setup-btn-off,
.setup-btn-warn {
    padding: 4px 12px;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    transition: opacity 0.2s;
}
.setup-btn-ok {
    background: #67c23a;
    color: #fff;
}
.setup-btn-off {
    background: #f56c6c;
    color: #fff;
}
.setup-btn-warn {
    background: #e6a23c;
    color: #fff;
}
.setup-btn-ok:hover,
.setup-btn-off:hover,
.setup-btn-warn:hover {
    opacity: 0.85;
}

/* 隐藏字段 */
.setup-hidden {
    color: #c0c4cc;
    font-style: italic;
}

/* 日志框 */
.setup-log-box {
    background: #1e1e2e;
    color: #a6e3a1;
    padding: 15px;
    border-radius: 6px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 12px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-all;
    max-height: 500px;
    overflow-y: auto;
}

/* 响应式：管理面板小屏适配 */
@media (max-width: 768px) {
    .setup-stat-row {
        grid-template-columns: repeat(2, 1fr);
    }
    .setup-stat-num {
        font-size: 22px;
    }
    .setup-panel {
        padding: 18px 15px;
    }
    .nav-links {
        flex-wrap: wrap;
    }
}

/* ============ 增强管理后台样式（追加）============ */
/* 操作按钮扩展 */
.setup-btn-info,
.setup-btn-danger {
    padding: 4px 12px;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    color: #fff;
    transition: opacity 0.2s;
    margin-right: 4px;
}
.setup-btn-info {
    background: #409eff;
}
.setup-btn-danger {
    background: #f56c6c;
}
.setup-btn-info:hover,
.setup-btn-danger:hover {
    opacity: 0.85;
}

/* 操作列 */
.setup-actions {
    white-space: nowrap;
}

/* 工具栏（顶部按钮区）*/
.setup-toolbar {
    margin-bottom: 15px;
    text-align: right;
}

/* 卡片行（仪表盘信息）*/
.setup-card-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 15px;
}
.setup-info-card {
    background: #fff;
    border: 1px solid #ebeef5;
    border-radius: 8px;
    padding: 14px 16px;
}
.setup-info-label {
    font-size: 11px;
    color: #909399;
    margin-bottom: 6px;
}
.setup-info-value {
    font-size: 14px;
    color: #303133;
    font-weight: 500;
}
.setup-link {
    color: #5662e3;
    text-decoration: none;
    font-size: 13px;
    margin-left: 6px;
}
.setup-link:hover {
    text-decoration: underline;
}

/* TOTP 绑定区 */
.setup-totp-bind {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #f5f7fa;
    padding: 18px;
    border-radius: 8px;
}
.setup-totp-qr {
    width: 200px;
    height: 200px;
    border: 4px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border-radius: 6px;
}
.setup-totp-info {
    flex: 1;
    font-size: 13px;
    color: #606266;
    word-break: break-all;
}
.setup-totp-info code {
    background: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    font-family: Consolas, monospace;
    color: #5662e3;
    letter-spacing: 1px;
}

/* 表单扩展（tenant_create 用）*/
.setup-form .form-field {
    margin-bottom: 14px;
}

/* 响应式：增强样式适配 */
@media (max-width: 768px) {
    .setup-card-row {
        grid-template-columns: repeat(2, 1fr);
    }
    .setup-totp-bind {
        flex-direction: column;
    }
    .setup-totp-qr {
        width: 180px;
        height: 180px;
    }
    .nav-links {
        gap: 10px;
    }
    .nav-links a {
        font-size: 11px;
    }
}
/* ============ 新增模板向导（上传Excel/CSV生成模板） ============ */
.tplw-mask {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.tplw-dialog {
    background: #fff;
    border-radius: 8px;
    width: 620px;
    max-width: 94%;
    max-height: 90vh;
    box-shadow: 0 8px 28px rgba(0,0,0,.22);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-size: 13px;
}
.tplw-head {
    padding: 14px 18px;
    border-bottom: 1px solid #eee;
    font-weight: 600;
    font-size: 15px;
    display: flex;
    align-items: center;
}
.tplw-close {
    margin-left: auto;
    border: none;
    background: none;
    font-size: 22px;
    line-height: 1;
    color: #999;
    cursor: pointer;
}
.tplw-close:hover { color: #333; }
.tplw-body {
    padding: 16px 18px;
    overflow-y: auto;
}
.tplw-row {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
}
.tplw-field {
    flex: 1;
    min-width: 180px;
}
.tplw-field label {
    display: block;
    font-size: 12px;
    color: #666;
    margin-bottom: 4px;
}
.tplw-field .form-control,
.tplw-field .form-select {
    width: 100%;
}
.tplw-drop {
    border: 2px dashed #c0c4cc;
    border-radius: 8px;
    padding: 22px 14px;
    text-align: center;
    color: #909399;
    cursor: pointer;
    transition: border-color .15s, background .15s;
    margin-bottom: 12px;
}
.tplw-drop:hover,
.tplw-drop.tplw-dragover {
    border-color: #5662e3;
    background: #f5f7ff;
    color: #5662e3;
}
.tplw-drop-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 6px;
}
.tplw-drop-hint {
    font-size: 12px;
    color: #b0b3bb;
    margin-top: 4px;
}
.tplw-file-name {
    font-size: 12px;
    color: #67c23a;
    margin: -4px 0 10px;
    display: none;
}
.tplw-preview {
    display: none;
    border: 1px solid #ebeef5;
    border-radius: 6px;
    background: #fafafa;
    padding: 10px 12px;
    margin-bottom: 12px;
}
.tplw-preview-title {
    font-size: 12px;
    color: #666;
    margin-bottom: 8px;
}
.tplw-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tplw-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid #dcdfe6;
    background: #fff;
    border-radius: 12px;
    padding: 2px 10px;
    font-size: 12px;
    color: #606266;
}
.tplw-chip-role {
    color: #fff;
    background: #5662e3;
    border-radius: 8px;
    padding: 0 6px;
    font-size: 11px;
    line-height: 16px;
}
.tplw-chip-role.tplw-role-num { background: #909399; }
.tplw-chip.tplw-chip-num {
    border-color: #f56c6c;
    background: #fef0f0;
    color: #f56c6c;
    font-weight: 600;
}
.tplw-rowpick {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 12px;
    color: #606266;
}
.tplw-rowpick label {
    margin: 0;
    white-space: nowrap;
    color: #666;
}
.tplw-rowpick select {
    flex: 1;
    min-width: 0;
    height: 28px;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 0 6px;
    font-size: 12px;
    color: #333;
    background: #fff;
}
.tplw-rowpick-warn {
    color: #f56c6c;
    font-size: 12px;
    white-space: nowrap;
}
.tplw-mode-msg {
    font-size: 12px;
    color: #e6a23c;
    margin-top: 6px;
    line-height: 1.6;
}
.tplw-foot {
    padding: 12px 18px;
    border-top: 1px solid #eee;
    display: flex;
    align-items: center;
    gap: 8px;
}
.tplw-foot .tplw-spacer { flex: 1; }
.tplw-err {
    color: #f56c6c;
    font-size: 12px;
    margin-top: 6px;
    display: none;
}

/* 向导弹窗补充 */
.tplw-field-sm { flex: 0 0 130px; min-width: 130px; }
.tplw-field-md { flex: 0 0 170px; min-width: 150px; }
.tplw-file-input { display: none; }

/* ============ 模板列表：缩略图 ============ */
.tpl-thumb-box {
    position: relative;
    width: 148px;
    height: 96px;
    border: 1px solid #e2e5eb;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.tpl-thumb-box:hover {
    border-color: #4a7dff;
    box-shadow: 0 2px 10px rgba(74, 125, 255, .22);
}
.tpl-thumb-scale {
    width: 740px;
    height: 480px;
    transform: scale(0.2);
    transform-origin: top left;
    pointer-events: none;
}
.tpl-thumb-frame {
    width: 740px;
    height: 480px;
    border: 0;
    background: #fff;
    pointer-events: none;
}
.tpl-thumb-box::after {
    content: "🔍 点击预览";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 22px;
    line-height: 22px;
    text-align: center;
    font-size: 11px;
    color: #fff;
    background: rgba(50, 60, 80, .62);
    opacity: 0;
    transition: opacity .15s;
}
.tpl-thumb-box:hover::after { opacity: 1; }

/* ============ 模板管理：顶部工具栏左浮动说明 ============ */
.tpl-toolbar-hint {
    float: left;
}

/* ============ 模板管理：单据模板/产品模板 分类区块 ============ */
.tpl-section {
    margin-top: 18px;
    background: #fff;
    border: 1px solid #ebeef5;
    border-radius: 8px;
    overflow: hidden;
}
.tpl-section-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #f5f7fa;
    border-bottom: 1px solid #ebeef5;
}
.tpl-section-title {
    font-size: 14px;
    font-weight: 600;
    color: #303133;
}
.tpl-section-count {
    font-size: 12px;
    color: #909399;
}
.tpl-section-actions {
    margin-left: auto;
    display: flex;
    gap: 6px;
}
.tpl-section .setup-table-wrap {
    border: none;
    border-radius: 0;
}

/* ============ 模板列表：1:1 布局预览大弹窗 ============ */
.tplpm-mask {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(0, 0, 0, .55);
    align-items: center;
    justify-content: center;
}
.tplpm-box {
    width: 1180px;
    max-width: 95vw;
    height: 90vh;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 12px 48px rgba(0, 0, 0, .28);
}
.tplpm-bar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid #e8ebf0;
    background: #f7f9fc;
}
.tplpm-titles { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.tplpm-title { font-size: 15px; font-weight: 700; color: #2c3e50; white-space: nowrap; }
.tplpm-sub { font-size: 12px; color: #909399; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tplpm-close {
    flex: 0 0 auto;
    border: 1px solid #d8dce5;
    background: #fff;
    border-radius: 5px;
    padding: 5px 14px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}
.tplpm-close:hover { border-color: #f56c6c; color: #f56c6c; }
.tplpm-frame {
    flex: 1;
    width: 100%;
    border: 0;
    background: #f0f2f5;
}

/* 窄屏时缩略图列适当压缩 */
@media (max-width: 1280px) {
    .tpl-thumb-box { width: 124px; }
    .tplpm-sub { display: none; }
}

/* ============================================================
   客户端发布管理页（cr- 前缀，独立类，不复用修改现有类）
   默认字号 13px，电脑端 + 移动端自适应
   ============================================================ */
.cr-current {
    border: 1px solid #d8dce5;
    border-left: 4px solid #5662e3;
    background: #f8f9ff;
    border-radius: 6px;
    padding: 14px 18px;
    margin-bottom: 18px;
}
.cr-current-title {
    font-size: 13px;
    font-weight: 700;
    color: #5662e3;
    margin-bottom: 8px;
}
.cr-current-body { font-size: 13px; color: #2c3e50; }
.cr-none { color: #909399; }
.cr-cur-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.cr-cur-ver { font-size: 18px; font-weight: 700; color: #2c3e50; }
.cr-cur-size { color: #606266; }
.cr-cur-time { color: #909399; font-size: 13px; }
.cr-cur-msg { color: #2c3e50; margin-bottom: 4px; }
.cr-cur-url {
    color: #5662e3;
    word-break: break-all;
    margin-bottom: 4px;
}
.cr-cur-md5 { color: #909399; font-size: 13px; word-break: break-all; }

.cr-form-card {
    border: 1px solid #e4e7ed;
    border-radius: 6px;
    background: #fff;
    padding: 18px;
    margin-bottom: 22px;
}
.cr-form-title {
    font-size: 13px;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f0f2f5;
}
.cr-form-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 14px;
}
.cr-label {
    flex: 0 0 80px;
    width: 80px;
    font-size: 13px;
    color: #606266;
    line-height: 32px;
}
.cr-input,
.cr-textarea {
    flex: 1 1 auto;
    width: 320px;
    max-width: 560px;
    border: 1px solid #dcdfe6;
    border-radius: 5px;
    padding: 7px 10px;
    font-size: 13px;
    color: #2c3e50;
    background: #fff;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.cr-textarea {
    width: 100%;
    max-width: 640px;
    line-height: 1.6;
    resize: vertical;
    font-family: inherit;
}
.cr-input:focus,
.cr-textarea:focus {
    border-color: #5662e3;
    box-shadow: 0 0 0 2px rgba(86, 98, 227, 0.12);
}
.cr-file-cell { flex: 1 1 auto; }
.cr-hint { font-size: 13px; color: #909399; margin-top: 6px; }
.cr-form-actions {
    margin-top: 18px;
    padding-top: 12px;
    border-top: 1px solid #f0f2f5;
}
.cr-form-actions .btn-submit { font-size: 13px; padding: 9px 26px; }
.cr-form-actions .btn-submit:disabled {
    background: #a0a8ef;
    cursor: not-allowed;
}

.cr-list-title {
    font-size: 13px;
    font-weight: 700;
    color: #2c3e50;
    margin: 0 0 12px;
}
.cr-empty {
    text-align: center;
    color: #909399;
    padding: 22px 0;
    font-size: 13px;
}
.cr-cell-ver { white-space: nowrap; font-weight: 700; color: #2c3e50; }
.cr-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #67c23a;
    margin-left: 4px;
}
.cr-cell-msg {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #606266;
}
.cr-cell-md5 {
    font-family: Consolas, Monaco, monospace;
    color: #909399;
    white-space: nowrap;
}
.cr-cell-ops { white-space: nowrap; }
.cr-tag-cur {
    display: inline-block;
    font-size: 13px;
    color: #67c23a;
    border: 1px solid #b3e19d;
    background: #f0f9eb;
    border-radius: 4px;
    padding: 3px 10px;
}
.cr-btn-sm,
.cr-btn-del {
    font-size: 13px;
    border-radius: 4px;
    padding: 4px 12px;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}
.cr-btn-sm {
    border: 1px solid #5662e3;
    background: #fff;
    color: #5662e3;
}
.cr-btn-sm:hover { background: #5662e3; color: #fff; }
.cr-btn-del {
    border: 1px solid #f56c6c;
    background: #fff;
    color: #f56c6c;
}
.cr-btn-del:hover { background: #f56c6c; color: #fff; }
.cr-dl {
    font-size: 13px;
    color: #5662e3;
    text-decoration: none;
}
.cr-dl:hover { text-decoration: underline; }

/* ============ 移动端：发布表单改纵向排列 ============ */
@media (max-width: 768px) {
    .cr-current,
    .cr-form-card { padding: 12px; }
    .cr-form-row { flex-direction: column; }
    .cr-label {
        flex: none;
        width: auto;
        line-height: 1.6;
        margin-bottom: 4px;
    }
    .cr-input,
    .cr-textarea {
        width: 100%;
        max-width: none;
    }
    .cr-cell-msg { max-width: 160px; }
    .cr-cur-ver { font-size: 16px; }
}
