:root {
    --primary: #FF2442;
    --primary-light: #FFF2F4;
    --secondary: #333;
    --bg: #f5f6f7;
    --card-bg: #fff;
    --border: #e8e8e8;
    --text: #333;
    --text-light: #999;
    --shadow: 0 2px 8px rgba(0,0,0,0.06);
    --radius: 12px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
}

.sys-nav {
    background: #fff;
    color: #333;
    padding: 0 24px;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;
    border-bottom: 1px solid #eee;
}
.sys-nav-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 18px;
    color: #333;
}
.brand-logo {
    width: 28px;
    height: 28px;
    background: #FF6B35;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 11px;
    font-weight: 700;
}
.sys-nav-links {
    display: flex;
    align-items: center;
    gap: 32px;
}
.sys-nav a {
    color: #666;
    text-decoration: none;
    transition: color 0.2s;
    font-size: 14px;
}
.sys-nav a:hover {
    color: #FF2442;
}
.sys-nav-current {
    color: #FF2442;
    font-weight: 500;
    font-size: 14px;
}

.navbar {
    background: var(--primary);
    color: white;
    padding: 0 24px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 4px rgba(255,36,66,0.2);
}

.nav-brand {
    font-size: 18px;
    font-weight: 700;
}
.brand-logo-img { height: 24px; width: 24px; border-radius: 6px; object-fit: cover; display: inline-block; vertical-align: middle; margin-right: 4px; }

.nav-auth {
    display: flex;
    align-items: center;
    gap: 8px;
}
.user-info {
    display: flex;
    align-items: center;
    gap: 8px;
    color: white;
    font-size: 13px;
    position: relative;
}
#user-name {
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 6px;
    user-select: none;
}
#user-name:hover {
    background: rgba(255, 255, 255, 0.15);
}
.user-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    min-width: 140px;
    padding: 6px;
    z-index: 1000;
}
.user-menu-item {
    padding: 9px 12px;
    font-size: 13px;
    color: #333;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
}
.user-menu-item:hover {
    background: #f5f5f5;
}
.btn-sm {
    padding: 4px 12px;
    font-size: 13px;
    border-radius: 6px;
}
.btn-outline {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.5);
    color: white;
}
.btn-outline:hover {
    background: rgba(255,255,255,0.15);
}
.btn-text {
    background: none;
    border: none;
    color: rgba(255,255,255,0.7);
    padding: 4px 8px;
}
.btn-text:hover {
    color: white;
}
.btn-block {
    width: 100%;
    margin-top: 8px;
}

/* Modal */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.modal-box {
    background: white;
    border-radius: var(--radius);
    width: 100%;
    max-width: 360px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    animation: modalSlide 0.2s ease;
}
@keyframes modalSlide {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}
.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
}
/* 分享弹窗：海报预览时内容较长，允许滚动 */
#share-modal .modal-box {
    max-height: 92vh;
    overflow-y: auto;
}
/* 导入弹窗（导入报名 / 表格导入）：预览行数多时会超出屏幕，
   限高并让主体区域滚动，标题栏固定可见 */
#pm-import-modal .modal-box,
#pm-sheet-import-modal .modal-box {
    max-height: 92vh;
    display: flex;
    flex-direction: column;
}
#pm-import-modal .modal-body,
#pm-sheet-import-modal .modal-body {
    overflow-y: auto;
}
/* 组队设置/单日可探弹层：21 个单元行内容很高，弹层限高 + 主体滚动 + 底栏吸附，
   防止超高卡片把标题栏顶出屏幕（2026-09-28 修复「卡片占满全屏」） */
#pm-slots-modal .modal-box,
#pm-date-modal .modal-box {
    max-height: 92vh;
    display: flex;
    flex-direction: column;
}
#pm-slots-modal .modal-body,
#pm-date-modal .modal-body {
    overflow-y: auto;
}
/* 外层弹层已限高滚动，列表自身不再 52vh 截断，避免双滚动条 */
#pm-slots-modal .pm-slot-list,
#pm-date-modal .pm-slot-list {
    max-height: none;
}
#share-modal #share-qr-placeholder canvas {
    border-radius: 8px;
    display: block;
}
.modal-header h3 {
    font-size: 16px;
    font-weight: 600;
}
.modal-close {
    background: none;
    border: none;
    font-size: 22px;
    color: #999;
    cursor: pointer;
    line-height: 1;
}
.modal-close:hover {
    color: var(--text);
}
.modal-body {
    padding: 20px;
}

/* Admin-only visibility */
.admin-only {
    display: none;
}

.nav-links {
    display: flex;
    gap: 24px;
}

.nav-link {
    color: rgba(255,255,255,0.8);
    text-decoration: none;
    font-size: 14px;
    padding: 4px 0;
    border-bottom: 2px solid transparent;
    transition: all 0.2s;
}

.nav-link:hover, .nav-link.active {
    color: white;
    border-bottom-color: white;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px;
}

.page { display: none; }
.page.active { display: block; }

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.page-header h1 {
    font-size: 24px;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}

/* 项目管理页标题行按钮较多（交付看板/审稿队列/质检中心…），允许按钮区换行防标题挤压（2026-09-23 审稿队列） */
#app-pm-projects .page-header > div[style*="display:flex"] {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 6px;
}

.btn {
    padding: 8px 16px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s;
    font-weight: 500;
}

.btn-primary {
    background: var(--primary);
    color: white;
}
.btn-primary:hover { background: #e0203a; }

.btn-secondary {
    background: white;
    color: var(--text);
    border: 1px solid var(--border);
}
.btn-secondary:hover { background: var(--bg); }

.btn-success {
    background: #52c41a;
    color: white;
}
.btn-success:hover { background: #389e0d; }

/* 反选通过专属深绿（2026-09-15）：与「初筛通过」亮绿同族分层（亮绿=初筛确认 / 深绿=商家确认），融入界面绿系，防混态误触 */
.btn-pick {
    background: #237804;
    color: white;
}
.btn-pick:hover { background: #135200; }

.btn-danger {
    background: #ff4d4f;
    color: white;
}
.btn-danger:hover { background: #cf1322; }

.btn-large {
    padding: 12px 32px;
    font-size: 16px;
}

.filter-bar {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.filter-bar input, .filter-bar select {
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    background: white;
    outline: none;
}

.filter-bar input {
    flex: 1;
    min-width: 200px;
}

.filter-bar input:focus, .filter-bar select:focus {
    border-color: var(--primary);
}

.filter-row {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 120px;
}

.filter-group label {
    font-size: 12px;
    color: var(--text-light);
    font-weight: 500;
}

.filter-row select {
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    background: white;
    outline: none;
    cursor: pointer;
    min-width: 120px;
}

.filter-row select:focus {
    border-color: var(--primary);
}

.filter-count {
    font-size: 15px;
    color: var(--text);
    font-weight: 600;
    margin-bottom: 16px;
    padding-left: 4px;
}

/* 达人卡片 */
.influencer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
}

.influencer-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid var(--border);
}

.influencer-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

.card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.card-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
    overflow: hidden;
}

.card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-avatar .avatar-placeholder {
    font-size: 20px;
}

.card-info h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 2px;
}

.card-info .card-id {
    font-size: 12px;
    color: var(--text-light);
}
.card-info .card-created {
    font-size: 11px;
    color: #999;
    margin-top: 2px;
}

.card-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.pct-badge {
    background: #e6f7ff;
    color: #1890ff;
    font-size: 11px;
    padding: 1px 6px;
    border-radius: 8px;
    margin-left: 6px;
    font-weight: 500;
}

.tag {
    background: var(--primary-light);
    color: var(--primary);
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 4px;
}

.platform-badge {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.platform-badge.xhs {
    background: #ffe6eb;
    color: #ff2442;
}

.platform-badge.dianxin {
    background: #fff2cc;
    color: #d46b08;
}

.tag-outline {
    background: white;
    border: 1px solid var(--border);
    color: var(--text-light);
}

.card-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.metric {
    text-align: center;
}

/* Platform banner */
.platform-banner {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 4px 0 12px;
    margin-bottom: 8px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.platform-banner::-webkit-scrollbar {
    display: none;
}
.platform-banner-item {
    flex-shrink: 0;
    padding: 8px 20px;
    border-radius: 20px;
    background: white;
    border: 1px solid var(--border);
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.platform-banner-item:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.platform-banner-item.active {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
}

.metric-value {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
}

.metric-label {
    font-size: 12px;
    color: var(--text-light);
    margin-top: 2px;
}

.card-price {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.price-value {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
}

.price-label {
    font-size: 12px;
    color: var(--text-light);
}

/* 达人库列表卡片 A2（2026-09-15，仅达人库列表 renderInfluencers 使用；
   达人包详情/分享页仍用上方 .card-header/.card-metrics 旧样式，勿合并） */
.ic2 {
    padding: 18px 20px;
}
.ic2-head {
    display: flex;
    align-items: center;
    gap: 12px;
}
.ic2-avatar {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}
.ic2-avatar-fb {
    font-size: 19px;
    color: var(--primary);
    font-weight: 600;
}
.ic2-avatar img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ic2-title {
    min-width: 0;
}
.ic2-nameline {
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.ic2-name {
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.ic2-lowq {
    font-size: 11px;
    color: #ff4d4f;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
/* 2026-10-27 预收录建档：骨架档案（报名即入库、待抓取填充）徽标 */
.ic2-skeleton {
    font-size: 11px;
    color: #b26a00;
    background: #fff7e6;
    border: 1px solid #ffd591;
    border-radius: 4px;
    padding: 0 4px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
.ic2-hit {
    font-size: 11px;
    color: #fa8c16;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
.ic2-meta {
    font-size: 12px;
    color: var(--text-light);
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 19px;
}
.ic2-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.ic2-plat {
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 12px;
    font-weight: 600;
    white-space: nowrap;
    letter-spacing: 0.5px;
}
.ic2-plat.xhs {
    background: #ff2442;
    color: #fff;
}
.ic2-plat.dianxin {
    background: #ff8c1a;
    color: #fff;
}
.ic2-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.ic2-metric {
    text-align: center;
}
.ic2-mval {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
}
.ic2-mval.empty {
    color: #d9d9d9;
    font-weight: 400;
}
.ic2-mlabel {
    font-size: 11px;
    color: var(--text-light);
    margin-top: 1px;
}
.ic2-updated {
    margin-top: 8px;
    font-size: 11px;
    color: #bbb;
    text-align: right;
}

/* 添加页面 */
.add-form {
    max-width: 600px;
    background: white;
    padding: 32px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.form-group {
    margin-bottom: 24px;
}

.form-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

.form-group input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
}

.form-group textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    resize: vertical;
    font-family: inherit;
    box-sizing: border-box;
}

.form-group textarea:focus {
    border-color: var(--primary);
}

/* 勾选行（如"商家参与终审"开关）：label 横向排列，勾选框不被 width:100% 拉宽 */
.pm-check-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    cursor: pointer;
    font-weight: normal;
}

.pm-check-row input[type="checkbox"],
.pm-check-row input[type="radio"] {
    width: auto;
    margin-top: 3px;
    flex-shrink: 0;
}

/* 项目表单「签约状态」选项行：勾选框在文字前面、行内排列（.form-group label 默认块级加粗，需 ID 级覆盖） */
#pm-form-cs-group .pm-check-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 400;
    margin-bottom: 6px;
    cursor: pointer;
}
#pm-form-cs-group .pm-check-row input[type="radio"] {
    margin-top: 0;
}

.form-group input:focus {
    border-color: var(--primary);
}

.form-hint {
    font-size: 12px;
    color: var(--text-light);
    margin-top: 6px;
}

.status-message {
    margin-top: 16px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    display: none;
}

.status-message.success {
    background: #f6ffed;
    color: #52c41a;
    border: 1px solid #b7eb8f;
    display: block;
}

.status-message.error {
    background: #fff2f0;
    color: #ff4d4f;
    border: 1px solid #ffccc7;
    display: block;
}

.status-message.loading {
    background: #e6f7ff;
    color: #1890ff;
    border: 1px solid #91d5ff;
    display: block;
}

/* 详情页 */
.detail-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.detail-panel {
    background: white;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 24px;
}

.detail-panel h2 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--primary-light);
}

.detail-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-label {
    color: var(--text-light);
}

.detail-value {
    font-weight: 600;
}

.detail-value.highlight {
    color: var(--primary);
}

/* 点星详情：基础信息面板内部双列 */
.detail-rows-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 32px;
}

.detail-rows-col {
    min-width: 0;
}

/* 详情页顶部档案卡 + 指标条（2026-09-14 重构） */
.inf-hero-top {
    display: flex;
    align-items: center;
    gap: 16px;
}

.inf-hero-id {
    flex: 1;
    min-width: 0;
}

.inf-hero-name {
    font-size: 20px;
    font-weight: 700;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.inf-hero-meta {
    margin-top: 4px;
    font-size: 13px;
    color: var(--text-light);
}

.inf-hero-links {
    margin-top: 8px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 13px;
}

.inf-hero-contacts {
    margin-top: 8px;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--text-light);
}

.inf-metrics {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
}

.inf-metric {
    background: #fafafa;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 10px;
    text-align: center;
    min-width: 0;
}

.inf-metric-label {
    font-size: 12px;
    color: var(--text-light);
}

.inf-metric-value {
    margin-top: 4px;
    font-size: 20px;
    font-weight: 700;
    color: var(--text);
    word-break: break-all;
}

.inf-metric-value.primary {
    color: var(--primary);
}

.inf-metric-sub {
    margin-top: 2px;
    font-size: 11px;
    color: var(--text-light);
}

/* 详情页头像 */
.detail-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid var(--primary-light);
}

.detail-avatar.fallback {
    background: var(--primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    border: 2px solid var(--primary-light);
}

/* 手机端详情头像 + 指标条 */
@media (max-width: 768px) {
    .detail-avatar {
        width: 56px;
        height: 56px;
    }
    .detail-avatar.fallback {
        font-size: 22px;
    }
    .inf-hero-name {
        font-size: 17px;
    }
    .inf-metrics {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: 8px;
        margin-top: 16px;
        padding-top: 16px;
    }
    .inf-metric {
        padding: 10px 6px;
    }
    .inf-metric-value {
        font-size: 16px;
    }
    .hide-on-mobile {
        display: none !important;
    }
}

.notes-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.notes-table th {
    background: var(--primary-light);
    color: var(--primary);
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
}

.notes-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
}
.notes-table td.note-title {
    vertical-align: top;
}
.notes-table td.note-title .note-title-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.notes-table tr:hover {
    background: var(--bg);
}

/* ===== 履约履历 + 达人备注（一期） ===== */
.perf-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}
.perf-item:last-child { border-bottom: none; }
.perf-item-head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.perf-badge {
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
    flex-shrink: 0;
}
.perf-badge.perf-ok { background: #f6ffed; color: #52c41a; border: 1px solid #b7eb8f; }
.perf-badge.perf-bad { background: #fff2f0; color: #ff4d4f; border: 1px solid #ffccc7; }
.perf-badge.perf-warn { background: #fffbe6; color: #d48806; border: 1px solid #ffe58f; }
.perf-badge.perf-muted { background: #f5f5f5; color: #999; border: 1px solid #e0e0e0; }
.perf-proj { font-weight: 600; color: var(--text); font-size: 14px; }
.perf-date { margin-left: auto; color: var(--text-light); font-size: 12px; flex-shrink: 0; }
.perf-item-sub { margin-top: 4px; font-size: 12px; color: var(--text-light); }
.perf-item-stats { margin-top: 4px; font-size: 12px; color: var(--text); }
.perf-ratio-good { color: #52c41a; font-weight: 600; }
.perf-ratio-low { color: #ff4d4f; font-weight: 600; }

/* ===== 履约评价 + 达人画像（一期 B） ===== */
.perf-sum-head {
    background: #fafafa;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 12px;
}
.perf-sum-row { font-size: 13px; color: var(--text); line-height: 1.9; }
.perf-sum-main { font-weight: 600; }
.perf-sum-line { color: var(--text-light); font-size: 12px; }
.perf-tag {
    display: inline-block;
    background: #eef3ff;
    color: #2b5cd9;
    border: 1px solid #c9d8ff;
    border-radius: 10px;
    padding: 1px 8px;
    margin: 2px 4px 2px 0;
    font-size: 12px;
}
.perf-tag-sys { background: #f5f5f5; color: #888; border-color: #e0e0e0; }
.perf-tag-sub { font-size: 10px; color: #bbb; margin-left: 4px; font-style: normal; }
.perf-eval-row { margin-top: 6px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.perf-eval-comment { font-size: 12px; color: #666; }
/* 评价人（2026-09-17）：跟在评价文字后的小灰字 */
.perf-eval-author { font-size: 11px; color: #999; }
/* 画像汇总头标签三档分组行（2026-09-17）：组标题小灰字前缀 */
.perf-sum-tagrow { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 6px; }
.perf-sum-tag-cat { font-size: 11px; color: #999; flex-shrink: 0; }
.perf-eval-btn {
    border: 1px solid #c9d8ff;
    background: #fff;
    color: #2b5cd9;
    border-radius: 8px;
    padding: 1px 8px;
    font-size: 12px;
    cursor: pointer;
}
.perf-eval-btn:hover { background: #eef3ff; }

/* ===== 笔记趋势档案（2026-10-18 方案B，达人详情，仅运营三角色） ===== */
.inf-trend-agg-row { font-size: 13px; color: var(--text-light); line-height: 1.9; }
.inf-trend-agg-row b { color: var(--text); }
.inf-trend-sep { margin: 0 8px; color: #ddd; }
.inf-trend-agg-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.inf-trend-agg-chip {
    font-size: 12px; padding: 1px 8px; border-radius: 10px;
    border: 1px solid; background: #fff; font-weight: 600;
}
.inf-trend-via { font-size: 12px; color: #d48806; margin-top: 6px; }
.inf-trend-card {
    border: 1px solid var(--border); border-radius: 8px;
    padding: 8px 12px; margin-top: 10px; cursor: pointer;
    transition: box-shadow .15s ease;
}
.inf-trend-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.inf-trend-card-head { display: flex; align-items: center; gap: 8px; }
.inf-trend-chip {
    display: inline-block; padding: 1px 7px; border-radius: 8px;
    font-size: 11px; font-weight: 600; color: #fff; flex-shrink: 0; cursor: help;
}
.inf-trend-chip-none { background: #d9d9d9; }
.inf-trend-title {
    font-size: 13px; color: var(--text); font-weight: 600;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.inf-trend-date { margin-left: auto; color: var(--text-light); font-size: 12px; flex-shrink: 0; }
/* 订单名称行（2026-10-20 owner 拍板：每个趋势图体现订单名称） */
.inf-trend-order {
    margin-top: 3px; font-size: 11px; color: var(--text-light);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.inf-trend-card-body { display: flex; align-items: center; gap: 16px; margin-top: 6px; }
.inf-trend-spark { flex-shrink: 0; }
.inf-trend-nospark { color: #ccc; font-size: 12px; }
.inf-trend-nums { font-size: 12px; color: var(--text-light); line-height: 1.8; }
.inf-trend-nums b { color: var(--text); }
.inf-trend-modal {
    position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1200;
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
.inf-trend-modal-box {
    background: #fff; border-radius: 12px; padding: 16px 20px;
    width: 720px; max-width: 100%; max-height: 90vh; overflow-y: auto;
}
.inf-trend-modal-head { display: flex; align-items: center; gap: 8px; }
.inf-trend-modal-close {
    margin-left: auto; border: none; background: #f5f5f5; border-radius: 50%;
    width: 28px; height: 28px; cursor: pointer; color: #666; flex-shrink: 0;
}
.inf-trend-modal-close:hover { background: #e8e8e8; }
.inf-trend-modal-sub { font-size: 12px; color: var(--text-light); margin: 8px 0 4px; }
.inf-trend-modal-sub b { color: var(--text); }
@media (max-width: 768px) {
    .inf-trend-card-body { flex-direction: column; align-items: flex-start; gap: 6px; }
}
.eval-chip {
    border: 1px solid #ddd;
    background: #fff;
    color: #555;
    border-radius: 12px;
    padding: 3px 10px;
    font-size: 13px;
    cursor: pointer;
}
.eval-chip.sel { background: #eef3ff; border-color: #2b5cd9; color: #2b5cd9; font-weight: 600; }
/* 三档配色（2026-09-13 owner 拍板）：综合档=蓝 / 正向=绿 / 负向=红；未选中描边淡彩、选中填色加重 */
.eval-chip.cat-overall { border-color: #b9c9ee; color: #2b5cd9; }
.eval-chip.cat-overall.sel { background: #e3ebfd; border-color: #2b5cd9; color: #1e46a8; }
.eval-chip.cat-positive { border-color: #a9dcb8; color: #2e8b47; }
.eval-chip.cat-positive.sel { background: #e3f5e9; border-color: #34a853; color: #1f7a38; font-weight: 600; }
.eval-chip.cat-negative { border-color: #f0b9b2; color: #d4380d; }
.eval-chip.cat-negative.sel { background: #fdeae6; border-color: #d4380d; color: #a82c08; font-weight: 600; }
/* 履历行/画像头的标签 chips 同步三档配色（按标签名映射档位，取不到保持原灰色） */
.perf-tag.cat-overall { background: #e3ebfd; border-color: #b9c9ee; color: #1e46a8; }
.perf-tag.cat-positive { background: #e3f5e9; border-color: #a9dcb8; color: #1f7a38; }
.perf-tag.cat-negative { background: #fdeae6; border-color: #f0b9b2; color: #a82c08; }
/* 评价弹窗三档分组（综合档单选/正向/负向，2026-09-13） */
.eval-group { margin-bottom: 10px; }
.eval-group-title { font-size: 12px; color: #999; margin-bottom: 5px; }
.eval-group-hint {
    margin-left: 6px;
    font-size: 11px;
    color: #d48806;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 8px;
    padding: 0 6px;
}
.eval-group-chips { display: flex; flex-wrap: wrap; gap: 6px; }
/* 标签管理行操作区（档位下拉 + 改名/停用） */
.eval-tag-ops { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.eval-tag-cat {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 2px 4px;
    font-size: 12px;
    color: #555;
    background: #fff;
}
.eval-tag-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--border);
}
.eval-tag-row.off .eval-tag-name { color: #bbb; }
.eval-tag-name { font-size: 13px; color: var(--text); }
/* 未评价（写评价/待评价）：橙色描边浅底，维持「待办」感（2026-11-02 与已评价态拉大色差） */
.pm-eval-pending {
    display: inline-block;
    margin-left: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #d46b08;
    background: #fff7e6;
    border: 1px solid #ffa940;
    border-radius: 8px;
    padding: 0 6px;
    cursor: pointer;
}
/* 已评价态（2026-11-02 改实心绿底白字）：与未评价的浅色描边形成「实心 vs 描边」强对比，扫一眼即辨 */
.pm-eval-pending.pm-eval-done {
    color: #fff;
    background: #52c41a;
    border-color: #52c41a;
}
.pm-eval-pending.pm-eval-done:hover {
    background: #389e0d;
    border-color: #389e0d;
}
/* 评价弹窗已有评价留痕（谁写的 / 最后更新时间） */
.eval-saved-meta {
    font-size: 12px;
    color: #888;
    background: #fafafa;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 6px 8px;
    margin-bottom: 10px;
}
/* 他人评价只读态：chips 不可点（hover 不再显示手型） */
.eval-readonly .eval-chip { cursor: default; opacity: .85; }

.remark-editor {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    margin-bottom: 14px;
}
.remark-editor textarea {
    flex: 1;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
}
.remark-editor textarea:focus { outline: none; border-color: var(--primary); }
.remark-editor .btn { flex-shrink: 0; }
.remark-item {
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}
.remark-item:last-child { border-bottom: none; }
.remark-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-light);
}
.remark-author { font-weight: 600; color: var(--primary); }
.remark-del {
    margin-left: auto;
    border: none;
    background: none;
    color: #ccc;
    cursor: pointer;
    font-size: 12px;
    padding: 2px 4px;
}
.remark-del:hover { color: #ff4d4f; }
.remark-content { margin-top: 4px; font-size: 13px; color: var(--text); line-height: 1.6; word-break: break-word; }

.empty-state {
    text-align: center;
    padding: 80px 20px;
    color: var(--text-light);
}

.empty-icon {
    font-size: 64px;
    margin-bottom: 16px;
}

/* Distribution bars */
.dist-bars {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin-top: 6px;
}
.dist-bar-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.dist-bar-label {
    font-size: 13px;
    color: #666;
    min-width: 60px;
    text-align: right;
}
.dist-bar-track {
    flex: 1;
    height: 8px;
    background: #f0f0f0;
    border-radius: 4px;
    overflow: hidden;
}
.dist-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.4s ease;
}
.dist-bar-value {
    font-size: 13px;
    color: #333;
    font-weight: 500;
    min-width: 40px;
    text-align: right;
}

/* Profile link */
.profile-link {
    color: var(--primary);
    text-decoration: none;
    font-size: 13px;
}
.profile-link:hover {
    text-decoration: underline;
}

.detail-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.pm-dropdown {
    position: relative;
    display: inline-block;
}

.pm-dropdown-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 160px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    padding: 6px;
    z-index: 500;
}

.pm-dropdown-item {
    display: block;
    width: 100%;
    text-align: left;
    padding: 9px 12px;
    border: none;
    background: none;
    font-size: 14px;
    color: #374151;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
}

.pm-dropdown-item:hover {
    background: #f3f4f6;
}

.pm-dropdown-item-danger {
    color: #dc2626;
}

.pm-dropdown-item-danger:hover {
    background: #fef2f2;
}

/* 认证页面 */
.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #FF2442 0%, #ff6b7a 100%);
}

.auth-card {
    background: white;
    border-radius: var(--radius);
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    padding: 40px 32px;
    width: 100%;
    max-width: 400px;
    margin: 20px;
}

.auth-header {
    text-align: center;
    margin-bottom: 28px;
}

.auth-header h1 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 6px;
}

.auth-header p {
    color: var(--text-light);
    font-size: 14px;
}

.auth-form .form-group {
    margin-bottom: 16px;
}

.auth-form .form-group label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--text);
}

.auth-form .form-group input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
}

.auth-form .form-group input:focus {
    border-color: var(--primary);
}

.btn-block {
    width: 100%;
    margin-top: 8px;
}

.btn-sm {
    padding: 6px 12px;
    font-size: 13px;
}

.auth-footer {
    text-align: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    font-size: 14px;
    color: var(--text-light);
}

.auth-footer a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.auth-footer a:hover {
    text-decoration: underline;
}

/* 导航栏用户信息 */
.nav-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.user-name {
    color: rgba(255,255,255,0.9);
    font-size: 14px;
}

/* App 页面切换 */
/* 外部入口（?pm_m/?daren 等分享链接）：JS 路由接管前隐藏整个主控台（含导航栏），避免首页闪现 */
.ext-entry #page-app {
    display: none !important;
}
/* 统一用 class 控制子页面显隐（新增页面只需 class="app-page"，无需再登记 ID 列表） */
.app-page {
    display: none;
}
.app-page.active {
    display: block;
}


/* 响应式：平板和手机 */
@media (max-width: 768px) {
    .container {
        padding: 12px;
    }
    .navbar {
        height: auto;
        min-height: 48px;
        padding: 8px 12px;
        flex-wrap: wrap;
        gap: 4px;
    }
    .nav-brand {
        font-size: 15px;
    }
    .nav-menu {
        order: 3;
        width: 100%;
        display: flex;
        overflow-x: auto;
        gap: 2px;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding-bottom: 2px;
    }
    .nav-menu::-webkit-scrollbar {
        display: none;
    }
    .nav-menu button {
        white-space: nowrap;
        font-size: 12px;
        padding: 4px 8px;
        flex-shrink: 0;
    }
    .nav-auth {
        margin-left: auto;
    }
    .nav-auth button, .nav-auth .user-info {
        font-size: 12px;
    }
    .sys-nav {
        height: 44px;
        padding: 0 12px;
    }
    .sys-nav-brand {
        gap: 6px;
    }
    .brand-logo {
        width: 22px;
        height: 22px;
        font-size: 9px;
    }
    .sys-nav-brand .brand-text {
        display: none;
    }
    .sys-nav-links {
        gap: 16px;
    }
    .sys-nav a, .sys-nav-current {
        font-size: 13px;
    }
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        margin-bottom: 16px;
    }
    .page-header h1 {
        font-size: 20px;
    }
    .filter-bar {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        gap: 8px;
        margin-bottom: 12px;
    }
    .filter-bar input, .filter-bar select {
        min-width: 120px;
        font-size: 16px;
        padding: 10px 12px;
        flex-shrink: 0;
    }
    .filter-bar input {
        flex: 0 0 160px;
    }
    .filter-row {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        gap: 8px;
        margin-bottom: 16px;
    }
    .filter-row select {
        min-width: 110px;
        font-size: 16px;
        padding: 10px 12px;
        flex-shrink: 0;
    }
    .filter-group {
        min-width: 110px;
    }
    .influencer-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .influencer-card {
        padding: 16px;
    }
    .card-avatar {
        width: 40px;
        height: 40px;
    }
    .card-avatar .avatar-placeholder {
        font-size: 16px;
    }
    .card-info h3 {
        font-size: 15px;
    }
    .ic2 {
        padding: 16px;
    }
    .ic2-avatar {
        width: 40px;
        height: 40px;
    }
    .ic2-avatar-fb {
        font-size: 16px;
    }
    .ic2-name {
        font-size: 15px;
    }
    .detail-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .detail-rows-2col {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .detail-panel {
        padding: 16px;
    }
    .detail-row {
        flex-direction: column;
        gap: 4px;
        padding: 12px 0;
    }
    .detail-label {
        font-size: 12px;
    }
    .detail-value {
        font-size: 14px;
    }
    .notes-table {
        display: table;
        width: 100%;
    }
    .notes-table th, .notes-table td {
        padding: 8px 6px;
        font-size: 12px;
    }
    /* XHS: 日期(紧凑) | 标题(占满剩余) | 阅读(紧凑) | 点赞(紧凑) | 收藏(紧凑) */
    .notes-table-xhs th:nth-child(1), .notes-table-xhs td:nth-child(1) { width: 1%; white-space: nowrap; text-align: center; }
    .notes-table-xhs th:nth-child(2), .notes-table-xhs td:nth-child(2) { width: 100%; }
    .notes-table-xhs th:nth-child(3), .notes-table-xhs td:nth-child(3),
    .notes-table-xhs th:nth-child(4), .notes-table-xhs td:nth-child(4),
    .notes-table-xhs th:nth-child(5), .notes-table-xhs td:nth-child(5) { width: 1%; white-space: nowrap; text-align: center; }
    /* Dianxin: 标题(占满剩余) | 浏览量(紧凑) | 互动量(紧凑) | 种草量(紧凑) */
    .notes-table-dianxin th:nth-child(1), .notes-table-dianxin td:nth-child(1) { width: 100%; }
    .notes-table-dianxin th:nth-child(2), .notes-table-dianxin td:nth-child(2),
    .notes-table-dianxin th:nth-child(3), .notes-table-dianxin td:nth-child(3),
    .notes-table-dianxin th:nth-child(4), .notes-table-dianxin td:nth-child(4) { width: 1%; white-space: nowrap; text-align: center; }
    .detail-actions {
        flex-direction: column;
        width: 100%;
    }
    .detail-actions .btn {
        width: 100%;
        text-align: center;
    }
    .add-form {
        padding: 20px;
    }
    .btn-large {
        padding: 10px 20px;
        font-size: 15px;
    }
    .empty-state {
        padding: 48px 16px;
    }
    .empty-icon {
        font-size: 48px;
    }
    .platform-banner-item {
        padding: 6px 14px;
        font-size: 13px;
    }
    .auth-card {
        padding: 24px 20px;
        margin: 16px;
    }
    .packages-list {
        grid-template-columns: 1fr;
    }
    .selection-bar {
        flex-direction: column;
        gap: 8px;
        align-items: flex-start;
    }
    .nav-menu {
        gap: 4px;
    }
    .nav-menu .btn {
        font-size: 12px;
        padding: 4px 8px;
    }
}

/* ========== PACKAGES & SELECTION BAR ========== */

.nav-menu {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-menu .btn {
    color: rgba(255,255,255,0.85);
    font-size: 14px;
    padding: 6px 12px;
}

.nav-menu .btn:hover {
    color: white;
    background: rgba(255,255,255,0.15);
}

.packages-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.package-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid var(--border);
    display: flex;
    flex-direction: column;
}

.package-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    border-color: var(--primary);
}

.package-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.package-card-header h3 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.package-count {
    font-size: 12px;
    color: var(--primary);
    background: var(--primary-light);
    padding: 2px 8px;
    border-radius: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.package-desc {
    font-size: 13px;
    color: var(--text-light);
    margin-bottom: 12px;
    line-height: 1.5;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.package-meta {
    font-size: 12px;
    color: var(--text-light);
    border-top: 1px solid var(--border);
    padding-top: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.package-creator {
    color: var(--primary);
    font-weight: 500;
}

/* Card checkbox */
.card-checkbox-wrap {
    margin-left: auto;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.influencer-card .card-checkbox {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--primary);
}

/* Selection bar */
.selection-bar {
    display: none;
    align-items: center;
    justify-content: space-between;
    background: white;
    border: 1px solid var(--primary-light);
    border-radius: var(--radius);
    padding: 12px 16px;
    margin-bottom: 16px;
    box-shadow: var(--shadow);
    gap: 12px;
    flex-wrap: wrap;
}

.selection-count {
    font-size: 14px;
    color: var(--text);
}

.selection-count strong {
    color: var(--primary);
    font-size: 16px;
}

.selection-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.add-to-package-btn {
    font-size: 14px;
    padding: 6px 16px;
}

/* Package list inside modal */
.package-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s;
    border: 1px solid transparent;
}

.package-list-item:hover {
    background: var(--bg);
    border-color: var(--border);
}

.package-list-item input[type="radio"] {
    accent-color: var(--primary);
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
}

.package-list-name {
    font-size: 14px;
    color: var(--text);
    flex: 1;
}

.package-list-count {
    font-size: 12px;
    color: var(--text-light);
    background: var(--primary-light);
    padding: 2px 8px;
    border-radius: 12px;
}

/* App page visibility：已由 .app-page / .page 两条 class 规则统一控制，此处不再按 ID 登记 */

/* Share page (standalone, no navbar) */
#app-share {
    min-height: 100vh;
    background: var(--bg);
}
.share-header {
    background: var(--primary);
    color: white;
    padding: 40px 24px 24px;
    text-align: center;
}
.share-header h1 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 8px;
}
.share-header .share-desc {
    font-size: 14px;
    opacity: 0.9;
    margin-bottom: 8px;
}
.share-header .share-meta {
    font-size: 13px;
    opacity: 0.75;
}
#share-content {
    padding: 24px 0 40px;
    max-width: 1200px;
    margin: 0 auto;
}

/* Share detail page */
.share-detail-body {
    max-width: 800px;
    margin: 0 auto;
    padding: 24px;
}
.share-detail-profile {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}
.share-detail-info {
    flex: 1;
    min-width: 0;
}
.share-detail-id {
    font-size: 13px;
    color: #999;
    word-break: break-all;
}
.share-detail-price {
    font-size: 13px;
    color: #999;
    margin-top: 4px;
}
.share-detail-link {
    margin-top: 8px;
}
.share-detail-link a {
    color: var(--primary);
    font-size: 13px;
    text-decoration: none;
    word-break: break-all;
}
.share-detail-link a:hover {
    text-decoration: underline;
}
.share-detail-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}
.share-metric-card {
    background: #f9f9f9;
    border-radius: 8px;
    padding: 16px;
    text-align: center;
}
.share-metric-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--primary);
}
.share-metric-label {
    font-size: 12px;
    color: #999;
    margin-top: 4px;
}

/* Mobile responsive for share page */
@media (max-width: 768px) {
    .share-header {
        padding: 24px 16px 16px;
    }
    .share-header h1 {
        font-size: 20px;
    }
    .share-header .share-desc {
        font-size: 13px;
    }
    #share-content .influencer-grid {
        grid-template-columns: 1fr;
        padding: 0 12px !important;
    }
    .share-detail-body {
        padding: 16px 12px;
    }
    .share-detail-profile {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .share-detail-info {
        width: 100%;
    }
    .share-detail-metrics {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .share-metric-card {
        padding: 12px;
    }
    .share-metric-value {
        font-size: 16px;
    }
}

/* Users table (admin) */
.users-list {
    padding: 0;
}
.users-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.users-table th {
    background: var(--primary);
    color: white;
    padding: 14px 16px;
    text-align: left;
    font-size: 14px;
    font-weight: 600;
}
.users-table td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
    color: var(--text);
}
.users-table tr:hover {
    background: var(--primary-light);
}
.users-table .user-role {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}
.users-table .user-role.admin {
    background: #fff2f0;
    color: #ff4d4f;
}
.users-table .user-role.user {
    background: #f0f9ff;
    color: #1890ff;
}

/* Match table sticky columns */
.match-table-wrapper {
    overflow-x: auto;
    max-width: 100%;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.match-table-wrapper table {
    width: 100%;
    border-collapse: collapse;
    background: var(--card-bg);
}
.match-table-wrapper th,
.match-table-wrapper td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    font-size: 13px;
    white-space: nowrap;
    text-align: left;
    background: #fff;
}
.match-table-wrapper th {
    background: var(--primary) !important;
    color: white;
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 20;
}
.match-table-wrapper .sticky-col-1 {
    position: sticky;
    left: 0;
    z-index: 10;
    width: 120px;
    min-width: 120px;
    background: #fff;
    border-right: 2px solid #ddd;
}
.match-table-wrapper .sticky-col-2 {
    position: sticky;
    left: 120px;
    z-index: 10;
    width: 80px;
    min-width: 80px;
    background: #fff;
    border-right: 2px solid #ddd;
}
.match-table-wrapper th.sticky-col-1,
.match-table-wrapper th.sticky-col-2 {
    z-index: 30;
    background: var(--primary) !important;
    border-right: 2px solid rgba(255,255,255,0.3);
}
.match-table-wrapper tr:nth-child(even) .sticky-col-1,
.match-table-wrapper tr:nth-child(even) .sticky-col-2 {
    background: #fafafa;
}
.match-table-wrapper tr:nth-child(odd) .sticky-col-1,
.match-table-wrapper tr:nth-child(odd) .sticky-col-2 {
    background: #fff;
}
.match-table-wrapper tr:hover .sticky-col-1,
.match-table-wrapper tr:hover .sticky-col-2 {
    background: var(--primary-light);
}

@media (max-width: 768px) {
    .users-table th, .users-table td {
        padding: 10px 8px;
        font-size: 13px;
    }
    .match-table-wrapper .sticky-col-1 {
        min-width: 100px;
        width: 100px;
    }
    .match-table-wrapper .sticky-col-2 {
        left: 100px;
        min-width: 70px;
        width: 70px;
    }
}

/* ========== 商单项目管理（一期） ========== */

.pm-section-title {
    font-size: 16px;
    margin: 24px 0 12px;
    color: #333;
}

/* 板块折叠：标题可点击，箭头指示展开/收起 */
.pm-sec-toggle {
    cursor: pointer;
    user-select: none;
}
.pm-sec-toggle:hover {
    color: #3B6FD4;
}
.pm-sec-toggle .pm-sec-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 7px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    color: #3B6FD4;
    background: #E7EEFB;
    border-radius: 50%;
    vertical-align: -3px;
    transition: transform 0.15s, background 0.15s;
}
.pm-sec-toggle:hover .pm-sec-arrow {
    background: #D3E0F8;
}
.pm-sec-toggle.collapsed .pm-sec-arrow {
    transform: rotate(-90deg);
}
.pm-sec-toggle.collapsed {
    opacity: 0.65;
    margin-bottom: 4px;
}

.pm-hint {
    font-size: 12px;
    color: #999;
    font-weight: normal;
}

.pm-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    background: #f0f0f0;
    color: #666;
    font-size: 12px;
}

.pm-badge-status {
    background: #e8f4ff;
    color: #1677ff;
}

/* 运营待办（2026-09-18，PRD: docs/PRD-运营新动态提醒.md 方案B）：项目卡片行内待办 chip + 待办条新增闪烁 */
.pm-badge-pending-applied {
    background: #fff7e6;
    color: #d46b08;
    border: 1px solid #ffd591;
}

/* 缺点星订单 ID 徽标（2026-10-13）：含点星包但未录订单 ID 的项目卡片标记 */
.pm-badge-dx-missing {
    background: #fff1f0;
    color: #cf1322;
    border: 1px solid #ffa39e;
}

/* 项目卡片行内「补录订单ID」小按钮 */
.pm-dxfill-btn {
    padding: 1px 10px;
    font-size: 12px;
    margin-left: 8px;
}

.pm-badge-pending-draft {
    background: #f9f0ff;
    color: #722ed1;
    border: 1px solid #d3adf7;
}

@keyframes pmPendingFlash {
    0%, 100% { box-shadow: none; }
    50% { box-shadow: 0 0 0 4px rgba(250, 173, 20, 0.55); }
}

.pm-pending-flash {
    animation: pmPendingFlash 0.9s ease-in-out 3;
    border-radius: 8px;
}

.pm-badge-reported {
    background: #e6ffed;
    color: #389e0d;
}

.pm-badge-unreported {
    background: #fff7e6;
    color: #d48806;
}

.pm-badge-mixed {
    background: #f9f0ff;
    color: #722ed1;
}

/* 平台标签配色（项目卡片）：与各平台主站品牌色一致（小红书 #FF2442 / 大众点评 #FF6633 / 抖音 #000000） */
.pm-badge-xhs {
    background: #ff2442;
    color: #fff;
}

.pm-badge-dianping {
    background: #ff6633;
    color: #fff;
}

.pm-badge-douyin {
    background: #000;
    color: #fff;
}

/* 履约单平台角标（多达人包一期）：平台色 chip + 包展示名；flex 换行避免挤压卡片/表格/日历 */
.pm-tier-badge {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px 4px;
    vertical-align: middle;
    white-space: normal;
}

.pm-tier-badge .pm-badge {
    padding: 1px 6px;
    font-size: 11px;
    line-height: 1.5;
}

.pm-tier-badge-name {
    font-size: 11px;
    color: #888;
    font-weight: 500;
    line-height: 1.4;
}

.pm-card-name .pm-tier-badge,
.pm-cal-member .pm-tier-badge,
.pm-table-influencer > .pm-tier-badge {
    margin-left: 3px;
}

/* 辅任务同步（2026-09-04）：项目表单多选 + 品牌色同步笔记 chip + 达人端上传区 */
.pm-sync-platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    padding: 6px 0 2px;
}

.pm-sync-platforms .pm-check-row {
    margin: 0;
}

.pm-sync-platforms input:disabled {
    opacity: 0.45;
}

a.pm-sync-chip {
    text-decoration: none;
    margin-left: 6px;
    font-weight: 500;
}

a.pm-sync-chip:hover {
    opacity: 0.85;
}

/* 已发布态「修改链接」展开盒（2026-10-11 改版后仍沿用；旧 pm-i-edit-link-btn 文本按钮样式随改版移除） */
.pm-i-edit-link,
.pm-i-sync-edit {
    margin-top: 8px;
}

.pm-m-sync-row {
    margin-top: 8px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

.pm-m-sync-row .pm-m-meta {
    font-size: 12px;
}

/* 辅任务同步分发卡（2026-10-11 改版）：卡头进度 chip + 每平台一张小行卡（品牌色 chip + 状态徽标） */
.pm-i-sync2 {
    padding: 14px;
}

.pm-i-sync2-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 600;
}

.pm-i-sync2-progress {
    font-size: 12px;
    font-weight: 500;
    color: #52c41a;
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    border-radius: 10px;
    padding: 1px 8px;
}

.pm-i-sync2-progress.all {
    background: #52c41a;
    border-color: #52c41a;
    color: #fff;
}

.pm-i-sync2-row {
    margin-top: 12px;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    padding: 10px 12px;
}

.pm-i-sync2-row.done {
    background: #fcfffa;
    border-color: #e5f5d5;
}

.pm-i-sync2-row-head {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pm-i-sync2-plat {
    font-size: 14px;
    font-weight: 600;
}

.pm-i-sync2-status {
    font-size: 12px;
    font-weight: 600;
}

.pm-i-sync2-status.ok {
    color: #52c41a;
}

.pm-i-sync2-status.todo {
    color: #bfbfbf;
    font-weight: 500;
}

.pm-i-sync2-time {
    font-size: 12px;
    color: #bfbfbf;
    margin-left: auto;
}

.pm-i-sync2-links {
    margin-top: 6px;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.pm-i-sync2-links a {
    color: #576b95;
    text-decoration: none;
}

.pm-i-sync2-links .minor {
    background: none;
    border: none;
    color: #bfbfbf;
    font-size: 12px;
    cursor: pointer;
    padding: 0 2px;
}

.pm-i-sync2-inputrow {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.pm-i-sync2-inputrow input {
    flex: 1;
    min-width: 0;
    padding: 9px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    outline: none;
    box-sizing: border-box;
}

.pm-i-sync2-inputrow input:focus {
    border-color: #ff2442;
}

.pm-i-sync2-inputrow button {
    flex-shrink: 0;
    padding: 0 16px;
    border: none;
    border-radius: 8px;
    background: #ff2442;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* 项目列表搜索框 */
.pm-projects-search {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.pm-projects-search input {
    flex: 1;
    min-width: 200px;
    max-width: 420px;
    padding: 9px 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
}

.pm-projects-search select {
    padding: 9px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    background: #fff;
    outline: none;
    cursor: pointer;
}

.pm-projects-search input:focus,
.pm-projects-search select:focus {
    border-color: #FF2442;
}

/* 项目列表卡片 */
.pm-projects-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.pm-proj-pager { grid-column: 1 / -1; }

.pm-project-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 16px;
    cursor: pointer;
    transition: box-shadow 0.2s;
}

.pm-project-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.pm-project-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    /* 极端情况（长名 + 多 chip）一行放不下时，chip 组整体落到下一行，绝不压扁 chip */
    flex-wrap: wrap;
}

.pm-project-name {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    /* 名字弹性占满剩余空间，但保底 40%：chip 组超过 ~60% 时整组换行而不是把名字挤没 */
    flex: 1;
    min-width: 40%;
    /* 最多两行，超出省略号（悬停 title 看全名），避免长名把卡片撑成好几行 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: break-word;
}

/* 卡片头 chip 组（待初筛/待审稿/SLA/状态，2026-09-21）：作为整体钉在右侧，
   每颗 chip 永不内折、永不压缩（修复长项目名把 chip 挤成两行矮胖条的问题） */
.pm-project-card-chips {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-shrink: 0;
    max-width: 100%;
    flex-wrap: wrap;
    margin-left: auto;
}

.pm-project-card-chips .pm-badge,
.pm-project-card-chips .pm-sla-chip {
    white-space: nowrap;
    flex-shrink: 0;
}

.pm-project-merchant {
    color: #888;
    font-size: 13px;
    margin: 6px 0;
}

.pm-project-meta {
    color: #bbb;
    font-size: 12px;
    margin-top: 8px;
}

.pm-project-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.pm-progress {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pm-progress-bar {
    flex: 1;
    height: 8px;
    background: #f0f0f0;
    border-radius: 4px;
    overflow: hidden;
}

.pm-progress-fill {
    height: 100%;
    background: #ff2442;
    border-radius: 4px;
    transition: width 0.3s;
}

.pm-progress-text {
    font-size: 12px;
    color: #888;
    white-space: nowrap;
}

/* 异常队列 */
.pm-exc-group {
    background: #fff;
    border: 1px solid #ffd6d6;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 10px;
}

.pm-exc-group-title {
    font-size: 14px;
    font-weight: 600;
    color: #cf1322;
    margin-bottom: 8px;
}

.pm-exc-count {
    margin-left: 8px;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    background: #ff2442;
    border-radius: 10px;
    padding: 1px 8px;
    vertical-align: 2px;
}

.pm-exc-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
}

.pm-exc-item:hover {
    background: #fff1f0;
}

.pm-exc-name {
    font-weight: 600;
    color: #333;
}

.pm-exc-meta {
    color: #999;
    flex: 1;
}

.pm-exc-go {
    color: #cf1322;
}

/* 项目详情 */
.pm-detail-title {
    font-size: 20px;
    margin: 0 0 8px;
}

.pm-detail-meta {
    color: #888;
    font-size: 13px;
}

.pm-detail-brief {
    margin-top: 8px;
    font-size: 13px;
    color: #666;
    background: #fafafa;
    border-radius: 6px;
    padding: 8px 10px;
    white-space: pre-wrap;
}

.pm-detail-brief a,
.pm-i-brief a {
    color: #1890ff;
    text-decoration: underline;
    word-break: break-all;
}

/* 项目与 Brief 板块（运营工作台，只读呈现） */
.pm-proj-sub {
    font-size: 12px;
    color: #999;
    font-weight: 600;
    margin: 10px 0 4px;
    letter-spacing: 0.5px;
}

.pm-proj-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    background: #fafafa;
    border-radius: 6px;
    overflow: hidden;
}

.pm-proj-table th,
.pm-proj-table td {
    text-align: left;
    padding: 7px 10px;
}

.pm-proj-table thead th {
    color: #999;
    font-weight: 400;
    font-size: 12px;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
}

.pm-proj-table tbody td {
    color: #333;
    font-weight: 500;
    border-bottom: 1px solid #f5f5f5;
}

.pm-proj-table tbody tr:last-child td {
    border-bottom: none;
}

.pm-proj-table .pm-proj-cost {
    color: #e67e22;
    font-weight: 700;
}

.pm-proj-kv {
    font-size: 13px;
    color: #666;
    margin-top: 6px;
    line-height: 1.6;
}

.pm-proj-empty {
    font-size: 13px;
    color: #bbb;
    padding: 6px 0;
}

/* ---------- 数据复盘工作面（2026-09-19） ---------- */
.pm-review-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}

.pm-review-sum-chip {
    background: #fff2f4;
    border: 1px solid #ffd6dd;
    color: #cf1322;
    border-radius: 16px;
    padding: 5px 14px;
    font-size: 13px;
    font-weight: 600;
}

.pm-review-sum-chip em {
    font-style: normal;
    font-weight: 400;
    color: #999;
}

/* 多订单标签切换（2026-09-20 方案A） */
.pm-review-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 2px solid #f0f1f3;
    margin-bottom: 14px;
}

.pm-review-tab {
    border: none;
    background: none;
    cursor: pointer;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #666;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-review-tab:hover {
    color: #FF2442;
}

.pm-review-tab-active {
    color: #FF2442;
    border-bottom-color: #FF2442;
}

.pm-review-tab-pending {
    color: #aaa;
    font-weight: 400;
}

.pm-review-tab .pm-review-pending-tag {
    margin-left: 4px;
    padding: 0 8px;
}

.pm-review-order {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.pm-review-order-pending {
    background: #fafafa;
    border-style: dashed;
}

.pm-review-order-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.pm-review-pending-tag {
    background: #f0f0f0;
    color: #999;
    font-size: 12px;
    font-weight: 400;
    border-radius: 10px;
    padding: 1px 10px;
    margin-left: 8px;
}

.pm-review-pending-hint {
    color: #999;
    font-size: 13px;
}

.pm-review-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    background: #fbfcfe;
    border: 1px solid #f0f1f3;
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.pm-review-metric-l {
    color: #999;
    font-size: 12px;
}

.pm-review-metric-v {
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

.pm-review-notes-wrap {
    overflow-x: auto;
}

.pm-review-notes {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.pm-review-notes th {
    background: #FF2442;
    color: #fff;
    padding: 7px 8px;
    text-align: center;
    white-space: nowrap;
}

.pm-review-notes td {
    padding: 7px 8px;
    border-bottom: 1px solid #eee;
    text-align: center;
    color: #333;
}

.pm-review-notes td:nth-child(2),
.pm-review-notes td:nth-child(3) {
    text-align: left;
}

.pm-review-note-title {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-review-author {
    cursor: pointer;
    color: #FF2442;
}

/* 项目表单：点星订单 ID chips */
.pm-dxo-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.pm-dxo-empty {
    color: #bbb;
    font-size: 12px;
}

.pm-dxo-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f6f7f9;
    border: 1px solid #e5e6eb;
    border-radius: 14px;
    padding: 3px 10px;
    font-size: 12px;
    color: #333;
}

.pm-dxo-tag {
    border-radius: 8px;
    padding: 0 6px;
    font-size: 11px;
}

.pm-dxo-tag.found {
    background: #f6ffed;
    color: #52c41a;
    border: 1px solid #b7eb8f;
}

.pm-dxo-tag.pending {
    background: #f0f0f0;
    color: #999;
}

.pm-dxo-tag.checking {
    background: #e6f4ff;
    color: #1677ff;
}

.pm-dxo-del {
    color: #bbb;
    text-decoration: none;
    font-size: 12px;
}

.pm-dxo-del:hover {
    color: #cf1322;
}

/* 进展看板：档位×环节 可点格子矩阵 */
.pm-funnel {
    display: block;
}

.pm-funnel-plan {
    font-weight: normal;
    font-size: 12px;
    color: #999;
    margin-left: 6px;
}

.pm-fgrid {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 12px;
}

.pm-fg-row {
    display: grid;
    grid-template-columns: 190px repeat(7, 1fr);
    gap: 6px;
    align-items: stretch;
}

.pm-fg-cell {
    background: #f7f8fa;
    border-radius: 8px;
    padding: 10px 6px;
    text-align: center;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s;
    /* 行高被左侧档位块撑高后数字仍上下居中（多达人包行头有角标/报名按钮，行更高） */
    display: flex;
    align-items: center;
    justify-content: center;
}
.pm-fg-cell:hover { background: #eef1f6; }

.pm-fg-cell.sel {
    background: #3B6FD4;
    border-color: #3B6FD4;
}
.pm-fg-cell.sel .pm-fg-num { color: #fff !important; }

.pm-fg-hd {
    background: transparent;
    cursor: default;
    font-size: 12px;
    color: #999;
    padding: 2px 6px;
}
.pm-fg-hd:hover { background: transparent; }

.pm-fg-num { font-size: 18px; font-weight: 700; color: #333; }
.pm-fg-num.ok { color: #389e0d; }
.pm-fg-num.warn { color: #d48806; }
.pm-fg-num.bad { color: #cf1322; }

.pm-fg-tier {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 2px;
}

.pm-fg-tier-name { font-weight: 700; font-size: 14px; color: #333; }

/* 底部审稿队列 + 淘汰/异常入口 */
.pm-fg-queue {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
    align-items: center;
}

.pm-fg-qchip {
    border: 1px solid #e5e6eb;
    background: #fff;
    border-radius: 16px;
    padding: 5px 12px;
    font-size: 12px;
    color: #666;
    cursor: pointer;
    transition: all .15s;
}
.pm-fg-qchip:hover { border-color: #ffb74d; color: #e8930c; }
.pm-fg-qchip b { color: #333; margin-left: 2px; }
.pm-fg-qchip.sel { background: #E8930C; border-color: #E8930C; color: #fff; }
.pm-fg-qchip.sel b { color: #fff; }

/* 当前筛选提示行 */
.pm-fg-selbar {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #3b5678;
    background: #eef3fd;
    border: 1px solid #d4e0f7;
    border-radius: 8px;
    padding: 6px 12px;
}
.pm-fg-clear { color: #3B6FD4; cursor: pointer; font-weight: 600; }
.pm-fg-clear:hover { text-decoration: underline; }

/* 手机端档位 tab（PC 隐藏） */
.pm-fg-tabs { display: none; }

/* 看板列高亮（进展看板点击后滚动定位） */
.pm-kanban-col-hl {
    box-shadow: 0 0 0 2px #3B6FD4;
    background: #f0f5ff;
}

/* 看板 */
.pm-kanban {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 8px;
    align-items: flex-start; /* 列高按内容自适应，卡片移动时不互相牵扯重排 */
}

.pm-kanban-col {
    min-width: 210px;
    width: 210px;
    background: #fafafa;
    border-radius: 10px;
    padding: 10px;
    flex-shrink: 0;
}

.pm-kanban-exc {
    background: #fff7f7;
}

.pm-kanban-col-title {
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}

.pm-kanban-count {
    background: #e0e0e0;
    border-radius: 8px;
    padding: 0 6px;
    font-size: 11px;
    color: #666;
}

.pm-kanban-empty {
    color: #ccc;
    text-align: center;
    padding: 12px 0;
    font-size: 12px;
}

/* 看板分组：4 组色条组头 */
.pm-kb-group {
    flex-shrink: 0;
    margin-right: 16px;
}
.pm-kb-group:last-child { margin-right: 0; }

.pm-kb-group-title {
    font-size: 13px;
    font-weight: 700;
    color: #444;
    margin-bottom: 6px;
    padding-left: 8px;
    border-left: 4px solid var(--gc, #999);
    line-height: 1.2;
}

.pm-kb-group-count {
    background: #ececec;
    border-radius: 8px;
    padding: 0 6px;
    font-size: 11px;
    font-weight: 600;
    color: #777;
    margin-left: 6px;
}

.pm-kb-group-cols {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

/* 空列折叠：窄竖条，点击展开 */
.pm-kb-empty-col {
    min-width: 36px !important;
    width: 36px !important;
    padding: 10px 6px !important;
    cursor: pointer;
    background: #f4f4f5;
    border: 1px dashed #e0e0e3;
    text-align: center;
}
.pm-kb-empty-col:hover { background: #ececef; }

.pm-kb-empty-label {
    writing-mode: vertical-rl;
    font-size: 12px;
    color: #999;
    letter-spacing: 2px;
    margin: 0 auto;
    white-space: nowrap;
}

.pm-kb-empty-num {
    color: #c0c0c4;
    font-size: 11px;
    margin-top: 6px;
}

.pm-kb-empty-fold {
    float: right;
    color: #bbb;
    cursor: pointer;
    font-size: 12px;
}
.pm-kb-empty-fold:hover { color: #666; }

.pm-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
}

.pm-card-name {
    font-weight: 600;
    font-size: 13px;
    margin-bottom: 4px;
}

/* 库外达人标识（2026-09-13）：名称后「库外」小角标，看板/表格/日历统一，
   与报名导入预览的库外标同色系；名称本身保持默认颜色 */
.pm-ext-badge {
    display: inline-block;
    color: #fa8c16;
    border: 1px solid #fa8c16;
    border-radius: 3px;
    padding: 0 4px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.4;
    white-space: nowrap;
    margin-left: 4px;
    vertical-align: 1px;
}

/* 统一头像（pmAvatar 助手） */
.pm-avatar {
    position: relative;
    display: inline-block;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    vertical-align: middle;
}

.pm-avatar-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #fff;
    font-weight: 600;
    border-radius: 50%;
}

.pm-avatar-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* ---------- 履约看板·表格视图 ---------- */
.pm-view-switch {
    margin-left: 10px;
    display: inline-flex;
    vertical-align: middle;
}

.pm-view-btn {
    border: 1px solid #ddd;
    background: #fff;
    padding: 3px 12px;
    font-size: 12px;
    cursor: pointer;
    color: #666;
}

.pm-view-btn:first-child {
    border-radius: 6px 0 0 6px;
    border-right: none;
}

.pm-view-btn:last-child {
    border-radius: 0 6px 6px 0;
}

.pm-view-btn.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.pm-board-table {
    /* 工作台固定框：数据滚动由 #pm-table-region 承担，本容器只做纵向 flex 布局 */
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* 高级筛选：分段表头（两级，2px 白缝隔组） */
.pm-seg {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 10px;
}

.pm-seg-row {
    display: grid;
    grid-template-columns: repeat(var(--cols), minmax(70px, 1fr));
    gap: 2px;
    background: #fff;   /* gap 处透出白色形成白缝 */
}
.pm-seg-row + .pm-seg-row { margin-top: 2px; }

.pm-seg-g {
    background: var(--gc);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    padding: 4px 0;
    letter-spacing: 1px;
}

.pm-seg-cell {
    background: color-mix(in srgb, var(--gc) 9%, #fff);
    color: #555;
    border: none;
    padding: 7px 2px;
    font-size: 12px;
    cursor: pointer;
    text-align: center;
    white-space: nowrap;
    transition: background .12s;
}
.pm-seg-cell:hover { background: color-mix(in srgb, var(--gc) 22%, #fff); }
.pm-seg-cell.sel { background: var(--gc); color: #fff; font-weight: 700; }
.pm-seg-n { font-size: 11px; color: #aaa; margin-left: 3px; font-weight: 400; }
.pm-seg-cell.sel .pm-seg-n { color: rgba(255,255,255,.85); }

.pm-adv-toggle.open {
    background: #3B6FD4;
    border-color: #3B6FD4;
    color: #fff;
}

@media (max-width: 768px) {
    .pm-seg { overflow-x: auto; }
    .pm-seg-row { min-width: 780px; }
}

.pm-table-toolbar {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.pm-export-btn {
    margin-left: auto;
    white-space: nowrap;
}

.pm-table-search {
    padding: 5px 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
    width: 180px;
}

.pm-table-chip {
    border: 1px solid #e0e0e0;
    background: #fafafa;
    border-radius: 12px;
    padding: 2px 10px;
    font-size: 12px;
    color: #666;
    cursor: pointer;
}

.pm-table-chip.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.pm-table {
    border-collapse: collapse;
    width: 100%;
    min-width: 960px;
    background: #fff;
    font-size: 13px;
}

.pm-table th {
    position: sticky;
    top: 0;
    background: #fafafa;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid #eee;
    font-size: 12px;
    color: #666;
    white-space: nowrap;
    z-index: 1;
}

.pm-th-sort {
    cursor: pointer;
    user-select: none;
}

.pm-th-sort:hover {
    color: var(--primary);
}

.pm-th-sortable {
    color: #ccc;
    font-size: 10px;
    margin-left: 2px;
}

.pm-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
}

.pm-table tbody tr:nth-child(even) {
    background: #fcfcfc;
}

.pm-table tbody tr:hover {
    background: #f5f9ff;
}

.pm-table-influencer .pm-card-link,
.pm-table-influencer-inner {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pm-table-name {
    font-weight: 600;
}

.pm-table-hp {
    display: inline-block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--primary);
    cursor: pointer;
    text-decoration: none;
}

.pm-table-hp-add {
    color: #fa8c16;
}

/* 达人名称下方副行（2026-11-04 owner 拍板）：主页 ↗ / 数据源 ↗ 与「写评价」并排，
   评价标签固定挂在链接右侧（无链接时也在这一行行首），扫单时位置恒定不随状态列跳动 */
.pm-table-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 6px;
    margin-top: 2px;
}

.pm-table-links .pm-table-hp {
    margin-top: 0;
}

.pm-table-links .pm-link-edit,
.pm-table-links .pm-eval-pending {
    margin-left: 0;
}

.pm-table-actions {
    white-space: nowrap;
}

.pm-table-actions .btn {
    margin: 1px 2px;
}

.pm-table-date {
    white-space: nowrap;
    font-size: 12px;
    color: #666;
}

.pm-table-empty {
    text-align: center;
    color: #ccc;
    padding: 20px;
}

/* 状态徽标色系：早段蓝 / 中段青 / 后段绿 / 完成灰 / 异常红 */
.pm-st {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.pm-st-early { background: #f0f5ff; color: #2f54eb; }
.pm-st-mid { background: #e6fffb; color: #08979c; }
.pm-st-late { background: #f6ffed; color: #389e0d; }
.pm-st-done { background: #f0f0f0; color: #595959; }
.pm-st-exc { background: #fff1f0; color: #cf1322; }
/* 反选通过专属深绿（2026-09-15）：与初筛通过的亮绿徽标同族分层 */
.pm-st-pick { background: #e2f2d8; color: #135200; }

/* 看板卡标题行（头像+名字） */
.pm-card-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.pm-card-title-row .pm-card-name {
    margin-bottom: 0;
    min-width: 0;
}

/* 日历成员（头像+名字行内） */
.pm-cal-member {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    vertical-align: middle;
}

/* 组队弹窗选中预览 */
.pm-team-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    min-height: 32px;
    font-size: 13px;
}

.pm-team-preview-name {
    font-weight: 600;
}

/* 商家端排期成员行（头像+名字） */
.pm-m-name-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* 达人任务卡队友 */
.pm-i-teammate {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.pm-i-mate {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pm-action-hint {
    margin-top: 8px;
    padding: 8px 10px;
    background: #f6f8fa;
    border-radius: 8px;
    color: #666;
    font-size: 13px;
    line-height: 1.5;
}

/* 表格行内组队色条：同组相邻行的色条纵向延伸连成一线；组与组之间留白断开 */
.pm-team-cell {
    position: relative;
    padding-left: 11px;
    margin: 4px 0;
}

.pm-team-cell::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 2px;
    background: var(--tc, transparent);
}

/* ct=与上一行同组（向上延伸至单元格顶），cb=与下一行同组（向下延伸至单元格底）。
   td border 1px + padding 8px + 容器 margin 4px = 13px，正好桥接到相邻行色条 */
.pm-team-cell.ct::before {
    top: -13px;
    border-radius: 0 0 2px 2px;
}

.pm-team-cell.cb::before {
    bottom: -13px;
    border-radius: 2px 2px 0 0;
}

.pm-team-cell.ct.cb::before {
    border-radius: 0;
}

/* 与下一行同组时：第一列底部分隔线去掉，色条无断点穿过（其他列分隔线保留） */
.pm-table td.pm-td-conn {
    border-bottom: none;
}

.pm-card-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #888;
    margin-bottom: 4px;
}

.pm-card-price {
    color: #ff2442;
    font-weight: 600;
}

.pm-card-note {
    font-size: 12px;
    margin-bottom: 4px;
}

.pm-card-warn {
    font-size: 12px;
    color: #cf1322;
    margin-bottom: 4px;
}

.pm-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
    align-items: center;
}

/* 主按钮占满剩余宽度，⋯ 固定宽度，保证同一行 */
.pm-card-actions .btn:not(.btn-more) { flex: 1; white-space: nowrap; }

.pm-card-check {
    font-size: 12px;
    color: #666;
    display: flex;
    align-items: center;
    gap: 2px;
}

/* 表格批量勾选列（多维表式独立左列，窄宽居中） */
.pm-th-check, .pm-td-check { width: 30px; text-align: center; }

/* ⋯ 更多操作按钮 */
.btn-more {
    background: #F0F1F3;
    color: #666;
    min-width: 30px;
    font-weight: 700;
    letter-spacing: 1px;
}
.btn-more:hover { background: #E4E6EA; color: #333; }

/* ⋯ 更多操作浮层 */
.pm-more-menu {
    position: fixed;
    z-index: 9999;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0,0,0,.14), 0 0 0 1px rgba(0,0,0,.05);
    padding: 6px;
    min-width: 148px;
    display: none;
}
.pm-menu-item {
    padding: 8px 12px;
    font-size: 13px;
    color: #333;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
}
.pm-menu-item:hover { background: #F5F6F8; }
.pm-menu-item.tone-danger { color: #FF2442; }
.pm-menu-item.tone-danger:hover { background: #FFF2F4; }
.pm-menu-item.tone-warn { color: #D97706; }
.pm-menu-item.tone-warn:hover { background: #FFF7E8; }

.pm-bulk-bar {
    align-items: center;
    gap: 10px;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 10px;
    font-size: 13px;
}

/* 日历 */
.pm-calendar-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    font-weight: 600;
}

.pm-calendar {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.pm-cal-weekday {
    text-align: center;
    font-size: 12px;
    color: #999;
    padding: 4px 0;
}

.pm-cal-cell {
    min-height: 84px;
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
    padding: 4px 6px;
    font-size: 12px;
}

.pm-cal-blank {
    background: transparent;
    border: none;
}

.pm-cal-has {
    background: #f6fbff;
    border-color: #bae0ff;
}

.pm-cal-date {
    font-weight: 600;
    color: #555;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pm-cal-over {
    color: #cf1322;
}

.pm-cal-cap {
    font-size: 11px;
    font-weight: normal;
    color: #999;
}

.pm-cal-over .pm-cal-cap {
    color: #cf1322;
    font-weight: 600;
}

.pm-cal-team {
    background: #e8f4ff;
    border-radius: 4px;
    padding: 3px 6px;
    margin-top: 4px;
    color: #0958d9;
    line-height: 1.4;
}

.pm-cal-team-click {
    cursor: pointer;
    transition: background 0.15s;
}

.pm-cal-team-click:hover {
    background: #cfe6ff;
    box-shadow: 0 0 0 1px #91caff inset;
}

.pm-cal-team-broken {
    background: #f5f5f5;
    color: #999;
    text-decoration: line-through;
}

.pm-cal-slot {
    font-size: 11px;
    color: #69a8e0;
}

/* PM 弹窗：限高 + 内容区可滚 + 底部按钮固定可见（不影响达人库原有弹窗） */
#pm-project-modal .modal-box,
#pm-candidate-modal .modal-box,
#pm-team-modal .modal-box,
#pm-action-modal .modal-box,
#pm-import-modal .modal-box,
#pm-signup-link-modal .modal-box,
#pm-signup-info-modal .modal-box {
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    min-width: 0;            /* flex 子项可缩到视口内，防止内容撑破 */
}

#pm-project-modal .modal-header,
#pm-candidate-modal .modal-header,
#pm-team-modal .modal-header,
#pm-action-modal .modal-header,
#pm-import-modal .modal-header,
#pm-signup-link-modal .modal-header,
#pm-signup-info-modal .modal-header {
    flex-shrink: 0;
}

#pm-project-modal .modal-body,
#pm-candidate-modal .modal-body,
#pm-team-modal .modal-body,
#pm-action-modal .modal-body,
#pm-import-modal .modal-body,
#pm-signup-link-modal .modal-body,
#pm-signup-info-modal .modal-body {
    overflow-y: auto;
    overflow-x: hidden;      /* 裁掉横向溢出，杜绝撑宽整个弹窗 */
    flex: 1;
    min-height: 0;
    min-width: 0;
}

.pm-modal-footer {
    position: sticky;
    bottom: -20px;                /* 抵消 .modal-body 的 20px 下内边距 */
    margin: 16px -20px -20px;     /* 横向撑满，视觉上是固定底栏 */
    padding: 12px 20px 20px;
    background: #fff;
    border-top: 1px solid var(--border);
    border-radius: 0 0 var(--radius) var(--radius);
}

/* 弹窗内表单 */
.pm-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 12px;
}

.pm-tier-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
    align-items: center;
    background: #fafafa;         /* 档位成组：输入行 + 群二维码行视觉归属同一档位 */
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    padding: 10px;
}

.pm-tier-row select,
.pm-tier-row input {
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    flex: 1;           /* 第一行表单项等分收缩到一行，wrap 只让 QR 槽下第二行 */
    min-width: 0;
}

.pm-tier-row > .btn {
    flex: none;        /* ✕ 删除按钮不参与收缩 */
}

/* 多达人包（2026-09-05）：达人包行新控件（包名/平台/合作类型/辅任务勾选） */
.pm-tier-row .pm-tier-name {
    flex: 2;           /* 包名给更宽的空间 */
}

.pm-tier-syncs {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    font-size: 12px;
    color: #666;
    padding-top: 2px;
}

.pm-tier-sync-label {
    font-weight: 600;
    color: #888;
    white-space: nowrap;
}

.pm-tier-syncs .pm-check-row {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin: 0;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}

.pm-tier-syncs input[type="checkbox"] {
    width: auto;
    padding: 0;
    margin: 0;
    flex: none;
}

.pm-tier-sync-hint {
    color: #bbb;
    font-size: 11px;
}

/* 项目详情「达人包」表：列多时容器内横向滚动，不挤压页面 */
.pm-proj-table-wrap {
    overflow-x: auto;
}

.pm-proj-table {
    min-width: 560px;
}

.pm-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.pm-tab {
    flex: 1;
    padding: 8px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    color: #666;
}

.pm-tab.active {
    border-color: #ff2442;
    color: #ff2442;
    font-weight: 600;
}

.pm-inf-results {
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
}

.pm-inf-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
}

.pm-inf-item:hover {
    background: #fafafa;
}

.pm-inf-item.selected {
    background: #fff1f0;
    outline: 1px solid #ff2442;
}

.pm-inf-meta {
    color: #999;
    font-size: 12px;
}

/* 项目管理移动端适配 */
@media (max-width: 768px) {
    .pm-form-grid {
        grid-template-columns: 1fr;
    }

    .pm-form-grid .form-group {
        min-width: 0;
    }

    .pm-tier-row select,
    .pm-tier-row input {
        min-width: 0;
        flex: 1;
        padding: 8px 6px;
    }

    .pm-tier-row .btn {
        flex-shrink: 0;
        padding-left: 8px;
        padding-right: 8px;
    }

    .pm-projects-list {
        grid-template-columns: 1fr;
    }

    /* 手机端进展看板：档位收成 tab，一次显示一档 */
    .pm-fg-tabs {
        display: flex;
        gap: 6px;
        margin-bottom: 8px;
    }

    .pm-fg-tab {
        border: 1px solid #e5e6eb;
        background: #fff;
        border-radius: 16px;
        padding: 5px 14px;
        font-size: 13px;
        color: #666;
        cursor: pointer;
    }
    .pm-fg-tab.active { background: #3B6FD4; border-color: #3B6FD4; color: #fff; }

    .pm-fg-row { grid-template-columns: 76px repeat(7, 1fr); gap: 4px; }
    .pm-fg-row[data-tid] { display: none; }
    .pm-fg-row[data-tid].mshow { display: grid; }
    .pm-fg-cell { padding: 8px 2px; }
    .pm-fg-hd { font-size: 11px; padding: 2px; }
    .pm-fg-num { font-size: 15px; }
    .pm-fg-tier-name { font-size: 12px; }
    .pm-fg-tier .pm-funnel-plan,
    .pm-fg-tier .pm-signup-link-btn { display: none; }

    .pm-kanban-col {
        min-width: 200px;
        width: 200px;
    }

    .pm-badge { white-space: nowrap; }
    .pm-card-check { white-space: nowrap; }

    /* 窄列下操作区允许换行：checkbox+⋯ 一行，主按钮独占下一行 */
    .pm-card-actions { flex-wrap: wrap; }
    .pm-card-actions .btn:not(.btn-more) { flex: 1 1 110px; }

    .pm-calendar {
        gap: 2px;
    }

    .pm-cal-cell {
        min-height: 60px;
        padding: 2px 3px;
        font-size: 11px;
    }

    .pm-cal-team {
        padding: 2px 3px;
    }
}


/* ========== 二期：商家/达人手机页（免登录 token） ========== */

#app-pm-merchant,
#app-pm-influencer {
    min-height: 100vh;
    background: #f5f5f5;
}

.pm-m-brand {
    text-align: center;
    color: #ccc;
    font-size: 12px;
    padding: 24px 0 32px;
}

/* 失效提示 */
.pm-mobile-invalid {
    text-align: center;
    padding: 100px 32px;
    color: #666;
}

.pm-mobile-invalid-icon {
    font-size: 40px;
    margin-bottom: 12px;
}

.pm-mobile-invalid-sub {
    color: #999;
    font-size: 13px;
}

/* toast */
.pm-toast {
    position: fixed;
    top: 48px;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    background: rgba(0, 0, 0, 0.75);
    color: #fff;
    font-size: 14px;
    padding: 10px 20px;
    border-radius: 20px;
    z-index: 4000;
    opacity: 0;
    transition: opacity 0.25s, transform 0.25s;
    pointer-events: none;
}

.pm-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.pm-toast-error {
    background: #cf1322;
}

/* 商家页头部 */
.pm-m-header {
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    color: #fff;
    padding: 20px 16px 16px;
}

.pm-m-project-name {
    font-size: 18px;
    font-weight: 700;
}

.pm-m-merchant {
    font-size: 14px;
    opacity: 0.9;
    margin: 4px 0 10px;
}

.pm-m-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.pm-m-tags .pm-badge {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.pm-m-header .pm-progress-bar {
    background: rgba(255, 255, 255, 0.3);
}

.pm-m-header .pm-progress-fill {
    background: #fff;
}

.pm-m-header .pm-progress-text {
    color: rgba(255, 255, 255, 0.9);
}

/* tab 栏 */
.pm-m-tabs {
    display: flex;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid #f0f0f0;
}

.pm-m-tab {
    flex: 1;
    padding: 12px 0;
    background: none;
    border: none;
    font-size: 14px;
    color: #666;
    cursor: pointer;
    position: relative;
}

.pm-m-tab.active {
    color: #ff2442;
    font-weight: 600;
}

.pm-m-tab.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 3px;
    border-radius: 2px;
    background: #ff2442;
}

.pm-m-tab i {
    font-style: normal;
    background: #ff2442;
    color: #fff;
    font-size: 10px;
    border-radius: 8px;
    padding: 1px 5px;
    margin-left: 2px;
    vertical-align: top;
}

.pm-m-tab-content {
    padding: 12px;
}

/* 进展 */
.pm-m-stage-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 16px;
}

.pm-m-stage {
    background: #fff;
    border-radius: 10px;
    padding: 12px 8px;
    text-align: center;
}

.pm-m-stage-num {
    font-size: 20px;
    font-weight: 700;
    color: #ff2442;
}

.pm-m-stage-label {
    font-size: 12px;
    color: #888;
    margin-top: 2px;
}

.pm-m-section-title {
    font-size: 15px;
    font-weight: 600;
    margin: 8px 4px 10px;
    color: #333;
}

.pm-m-timeline {
    background: #fff;
    border-radius: 10px;
    padding: 8px 12px;
}

.pm-m-tl-item {
    display: flex;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #f5f5f5;
}

.pm-m-tl-item:last-child {
    border-bottom: none;
}

.pm-m-tl-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff2442;
    margin-top: 6px;
    flex-shrink: 0;
}

.pm-m-tl-text {
    font-size: 13px;
    color: #333;
}

.pm-m-tl-time {
    font-size: 11px;
    color: #aaa;
    margin-top: 2px;
}

/* 卡片（候选人/草稿） */
.pm-m-selected-bar {
    background: #fff;
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
}

.pm-m-selected-bar b {
    color: #ff2442;
    font-size: 18px;
}

/* 反选 tab 分区 */
.pm-m-section-head {
    font-size: 13px;
    font-weight: 600;
    color: #666;
    margin: 16px 2px 8px;
}

.pm-m-section-toggle {
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 4px;
}

.pm-m-sub-toggle {
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 4px;
    color: #595959;
}

/* 看板/表格档位筛选 */
.pm-tier-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

/* 看板库外达人主页链接补录 */
.pm-link-add { color: #999; font-size: 12px; cursor: pointer; text-decoration: underline dashed; }
.pm-link-edit { color: #bbb; font-size: 12px; cursor: pointer; margin-left: 6px; text-decoration: none; }
.pm-link-edit:hover { color: #ff2442; }
.pm-homepage-input { width: 240px; }

.pm-m-section-arrow {
    font-size: 11px;
    color: #999;
}

.pm-m-empty {
    color: #999;
    text-align: center;
    padding: 20px 12px;
    font-size: 13px;
}

.pm-m-selected-badge {
    margin-left: auto;
    flex-shrink: 0;
    background: #e6ffed;
    color: #389e0d;
    font-size: 12px;
    font-weight: 600;
    border-radius: 6px;
    padding: 3px 8px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
}

.pm-m-selected-stage {
    font-size: 10px;
    font-weight: 400;
    color: #73b46a;
}

.pm-m-rejected-list .pm-m-card-dim {
    opacity: 0.55;
}

.pm-m-card {
    background: #fff;
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 10px;
}

.pm-m-card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.pm-m-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.pm-m-avatar-ph {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #ffe4e8;
    color: #ff2442;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 600;
    flex-shrink: 0;
}

.pm-m-name {
    font-size: 15px;
    font-weight: 600;
    color: #333;
}

.pm-m-meta {
    font-size: 12px;
    color: #999;
}

.pm-m-stats {
    display: flex;
    background: #fafafa;
    border-radius: 8px;
    padding: 10px 0;
    margin-bottom: 10px;
}

.pm-m-stats > div {
    flex: 1;
    text-align: center;
}

.pm-m-stats b {
    display: block;
    font-size: 15px;
    color: #333;
}

.pm-m-stats span {
    font-size: 11px;
    color: #999;
}

.pm-m-link {
    display: inline-block;
    font-size: 13px;
    color: #1677ff;
    margin-bottom: 10px;
}

/* 商家端达人详情覆盖层（白名单视图） */
.pm-m-inf-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1200;
    justify-content: center;
    align-items: flex-end;
}

.pm-m-inf-sheet {
    background: #f6f7f9;
    width: 100%;
    max-width: 520px;
    max-height: 88vh;
    overflow-y: auto;
    border-radius: 16px 16px 0 0;
    padding: 16px 16px 28px;
    -webkit-overflow-scrolling: touch;
}

.pm-m-inf-head {
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    padding: 4px 0 14px;
}

.pm-m-inf-close {
    position: absolute;
    right: 0;
    top: 0;
    border: none;
    background: #e8e8e8;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 13px;
    color: #666;
    cursor: pointer;
}

.pm-m-inf-name {
    font-size: 17px;
    font-weight: 700;
}

.pm-m-inf-plat {
    font-size: 12px;
    color: #999;
    margin-top: 2px;
}

.pm-m-inf-sec {
    background: #fff;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 12px;
}

.pm-m-inf-sec-title {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
}

.pm-m-inf-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid #f2f2f2;
    font-size: 13px;
}

.pm-m-inf-row:last-child {
    border-bottom: none;
}

.pm-m-inf-row > span {
    color: #888;
    flex-shrink: 0;
}

.pm-m-inf-row > b {
    font-weight: 500;
    text-align: right;
    word-break: break-all;
}

.pm-m-inf-pct {
    font-style: normal;
    font-size: 11px;
    color: #ff2442;
    background: #fff2f4;
    border-radius: 4px;
    padding: 1px 5px;
}

.pm-m-inf-note {
    padding: 8px 0;
    border-bottom: 1px solid #f2f2f2;
}

.pm-m-inf-note:last-child {
    border-bottom: none;
}

.pm-m-inf-note-title {
    font-size: 13px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.pm-m-inf-note-meta {
    font-size: 12px;
    color: #999;
    margin-top: 3px;
}

.pm-m-actions {
    display: flex;
    gap: 10px;
}

.pm-m-btn {
    flex: 1;
    padding: 12px;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.pm-m-btn-ok {
    background: #ff2442;
    color: #fff;
}

.pm-m-btn-ok:disabled {
    background: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
}

.pm-m-tier-full-tip {
    font-size: 13px;
    color: #d4380d;
    background: #fff2e8;
    border-radius: 8px;
    padding: 8px 12px;
    margin: 0 0 10px;
}

.pm-m-btn-no {
    background: #f5f5f5;
    color: #666;
}

.pm-m-btn-sm {
    flex: none;
    padding: 8px 16px;
    font-size: 13px;
}

/* 到店 */
.pm-m-day {
    background: #fff;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.pm-m-day-title {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}

.pm-m-checkin-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid #f5f5f5;
}

.pm-m-checkin-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.pm-m-checked {
    color: #389e0d;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

/* 进展时间线分类标签 */
.pm-m-chip {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    border-radius: 4px;
    padding: 1px 6px;
    margin-right: 6px;
    vertical-align: 1px;
    white-space: nowrap;
}

.pm-m-chip-blue { background: #e6f4ff; color: #1677ff; }
.pm-m-chip-purple { background: #f9f0ff; color: #722ed1; }
.pm-m-chip-teal { background: #e6fffb; color: #13a8a8; }
.pm-m-chip-orange { background: #fff7e6; color: #d46b08; }
.pm-m-chip-green { background: #f6ffed; color: #389e0d; }
.pm-m-chip-red { background: #fff1f0; color: #cf1322; }
.pm-m-chip-gray { background: #f5f5f5; color: #8c8c8c; }

/* 组队排期卡 */
.pm-m-team-card {
    background: #fafafa;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 10px 12px;
    margin-top: 8px;
}

.pm-m-team-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 8px;
    margin-bottom: 4px;
    border-bottom: 1px dashed #e8e8e8;
}

.pm-m-team-names {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: 600;
    color: #333;
}

.pm-m-team-member {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0 2px;
}

/* 达人任务卡 */
.pm-i-back {
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    padding: 10px 14px 0;
}

.pm-i-back a {
    color: rgba(255, 255, 255, 0.95);
    font-size: 13px;
    text-decoration: none;
    display: inline-block;
    padding: 4px 0;
}

.pm-i-back a:active {
    opacity: 0.75;
}

.pm-i-header {
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    color: #fff;
    padding: 24px 16px;
    text-align: center;
}

.pm-i-title {
    font-size: 13px;
    opacity: 0.9;
}

.pm-i-merchant {
    font-size: 20px;
    font-weight: 700;
    margin-top: 4px;
}

.pm-i-card {
    background: #fff;
    border-radius: 10px;
    padding: 14px;
    margin: 10px 12px;
}

/* 服务员接待端 */
.pm-rc-addr {
    font-size: 13px;
    opacity: 0.9;
    margin-top: 6px;
}

.pm-rc-body {
    padding: 4px 0 16px;
}

.pm-rc-date {
    font-size: 15px;
    font-weight: 700;
    color: #333;
    margin: 14px 14px 6px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.pm-rc-date.pm-rc-today {
    color: #ff2442;
}

.pm-rc-datesub {
    font-size: 12px;
    font-weight: 400;
    color: #999;
}

.pm-rc-visit {
    background: #fff;
    border-radius: 10px;
    padding: 12px 14px;
    margin: 8px 12px;
}

.pm-rc-time {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}

.pm-rc-members {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pm-rc-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f7f7f7;
    border-radius: 999px;
    padding: 4px 12px 4px 4px;
}

.pm-rc-name {
    font-size: 14px;
    color: #333;
    font-weight: 500;
}

.pm-rc-arrived {
    font-size: 11px;
    color: #07c160;
    font-weight: 600;
}

.pm-rc-chip-pending {
    cursor: pointer;
    background: #fff7f0;
    border: 1px dashed #ff9c5b;
}

.pm-rc-chip-pending:active {
    background: #ffe8d6;
}

.pm-rc-pending-tag {
    font-size: 11px;
    color: #ff6b1a;
    font-weight: 600;
}

.pm-rc-chip-arrived {
    cursor: pointer;
}

.pm-rc-chip-arrived:active {
    background: #eef9f1;
}

.pm-rc-together {
    font-size: 12px;
    color: #999;
    margin-top: 8px;
}

.pm-rc-empty {
    color: #999;
    text-align: center;
    padding: 60px 20px;
    font-size: 14px;
}

.pm-i-card-title {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
}

.pm-i-row {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    font-size: 14px;
    color: #333;
    border-bottom: 1px solid #f5f5f5;
}

.pm-i-row:last-child {
    border-bottom: none;
}

.pm-i-label {
    color: #999;
    flex-shrink: 0;
    min-width: 78px;
}

.pm-i-brief {
    font-size: 14px;
    color: #333;
    line-height: 1.7;
    white-space: pre-wrap;
}

/* Brief 结构化排版（2026-09-11，MD 派生 HTML 分块：标题/列表/段落，层级段距统一收口；
   三处出口同源：Brief 工作区预览 .bws-md-preview / 项目详情 .pm-detail-brief / 达人端 .pm-i-brief） */
.brief-h {
    margin: 18px 0 8px;
    padding-left: 9px;
    border-left: 3px solid #FF2442;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.45;
}

.brief-h:first-child {
    margin-top: 2px;
}

.brief-li {
    margin: 5px 0;
    padding-left: 14px;
    text-indent: -14px;
    line-height: 1.8;
}

.brief-p {
    margin: 8px 0;
    line-height: 1.8;
}

/* 2026-10-11 补 max-width/height auto：达人端任务卡内嵌 Brief 大图（OSS 原图）曾把整页撑宽、
   手机端卡片右侧被裁；运营端详情 (.pm-detail-brief) 与工作区预览 (.bws-md-preview) 有更具体规则不受影响 */
.brief-p img,
.brief-li img {
    margin: 6px 0;
    max-width: 100%;
    height: auto;
}

/* 进度步骤条 */
.pm-i-steps {
    display: flex;
    align-items: flex-start;
    background: #fff;
    border-radius: 10px;
    padding: 16px 8px;
    margin: 10px 12px;
    overflow-x: auto;
}

.pm-i-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 44px;
    flex-shrink: 0;
}

.pm-i-step-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #f0f0f0;
    color: #999;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.pm-i-step.past .pm-i-step-dot {
    background: #e6ffed;
    color: #389e0d;
}

.pm-i-step.current .pm-i-step-dot {
    background: #ff2442;
    color: #fff;
}

.pm-i-step-label {
    font-size: 10px;
    color: #999;
    margin-top: 4px;
    white-space: nowrap;
}

.pm-i-step.current .pm-i-step-label {
    color: #ff2442;
    font-weight: 600;
}

.pm-i-step-line {
    flex: 1;
    height: 2px;
    background: #f0f0f0;
    margin-top: 11px;
    min-width: 8px;
}

.pm-i-step.past + .pm-i-step-line {
    background: #b7eb8f;
}

/* 动作区 */
.pm-i-input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font-size: 14px;
    margin-bottom: 10px;
}

.pm-i-submit {
    width: 100%;
}

.pm-i-wait {
    text-align: center;
    color: #666;
    font-size: 14px;
    line-height: 1.8;
}

/* 已发布完成卡（2026-10-11 改版）：✓ 徽标 + 标题分层 + 主按钮「查看我的笔记」+ 次级「修改链接」 */
.pm-i-done2 {
    background: linear-gradient(135deg, #f6ffed 0%, #ffffff 70%);
    border: 1px solid #b7eb8f;
    text-align: center;
    padding: 22px 16px 14px;
}

.pm-i-done2-badge {
    width: 46px;
    height: 46px;
    margin: 0 auto 10px;
    border-radius: 50%;
    background: #52c41a;
    color: #fff;
    font-size: 24px;
    line-height: 46px;
    box-shadow: 0 4px 10px rgba(82, 196, 26, .3);
}

.pm-i-done2-title {
    font-size: 17px;
    font-weight: 700;
    color: #389e0d;
}

.pm-i-done2-sub {
    font-size: 13px;
    color: #8c8c8c;
    margin-top: 4px;
}

.pm-i-done2-view {
    display: block;
    margin: 14px 0 4px;
    background: #52c41a;
    color: #fff;
    text-decoration: none;
    border-radius: 10px;
    padding: 11px 0;
    font-size: 15px;
    font-weight: 600;
}

.pm-i-done2-minor {
    margin-top: 8px;
}

.pm-i-done2-minor > button {
    background: none;
    border: none;
    color: #bfbfbf;
    font-size: 12px;
    cursor: pointer;
    padding: 4px 8px;
}

.pm-i-done2-minor .pm-i-edit-link {
    text-align: left;
}

.pm-i-reject {
    background: #fff1f0;
    border: 1px solid #ffccc7;
    color: #cf1322;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.6;
    margin: 10px 12px 0;
}

/* 草稿反馈提醒体系（2026-09-18 PRD-达人端草稿反馈提醒体系）：任务卡顶部状态横幅 */
.pm-i-alert {
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.6;
    margin: 10px 12px 0;
}

.pm-i-alert-title {
    font-weight: 600;
    font-size: 14px;
}

.pm-i-alert-body {
    margin-top: 4px;
}

.pm-i-alert .pm-i-submit {
    margin-top: 10px;
}

.pm-i-alert-reject {
    background: #fff1f0;
    border: 1px solid #ffccc7;
    color: #cf1322;
}

.pm-i-alert-final {
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    color: #389e0d;
}

.pm-i-alert-comment {
    background: #fff7e6;
    border: 1px solid #ffe7ba;
    color: #d46b08;
}

/* 按钮状态语义：橙=要我改（需修改），绿=已定稿/去发布 */
.pm-m-btn-warn {
    background: #fa8c16;
    color: #fff;
}

.pm-m-btn-final {
    background: #52c41a;
    color: #fff;
}

/* 草稿入口按钮角标：红点/新评论计数 */
.pm-i-draftbtn {
    position: relative;
}

.pm-i-dot {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    box-sizing: border-box;
    padding: 0 5px;
    background: #ff2442;
    color: #fff;
    border-radius: 9px;
    font-size: 11px;
    font-style: normal;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    box-shadow: 0 0 0 2px #fff;
}

.pm-i-dot:empty {
    min-width: 10px;
    width: 10px;
    height: 10px;
    padding: 0;
    top: -4px;
    right: -4px;
}

.pm-i-dot-gold {
    background: #faad14;
}

/* 定稿后发布行动区：主视觉强化 */
.pm-i-publish-hero {
    border: 2px solid #52c41a;
}

/* 链接弹窗、驳回弹窗同样受限高+滚动+固定底栏约束 */
#pm-link-modal .modal-box,
#pm-m-feedback-modal .modal-box {
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    min-width: 0;
}

#pm-link-modal .modal-body,
#pm-m-feedback-modal .modal-body {
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    min-height: 0;
    min-width: 0;
}

#pm-link-modal .modal-header,
#pm-m-feedback-modal .modal-header {
    flex-shrink: 0;
}

/* ===== 项目详情：批量导入报名 ===== */
.pm-import-summary {
  margin-bottom: 10px;
  font-size: 13px;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px 10px;
}
.pm-import-section { margin-bottom: 12px; }
.pm-import-sec-title { font-size: 12px; font-weight: 600; color: #334155; margin-bottom: 6px; }
.pm-import-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin-bottom: 6px;
  background: #fff;
}
.pm-import-info { flex: 1; min-width: 0; }
.pm-import-name { font-weight: 600; font-size: 13px; display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.pm-import-name small { color: #94a3b8; font-weight: 400; }
.pm-import-meta { font-size: 11px; color: #64748b; margin-top: 2px; }
.pm-import-state { font-size: 11px; margin-top: 2px; }
.pm-import-ok { color: #15803d; }
.pm-import-fail { color: #dc2626; }
.pm-import-running { color: #2563eb; }
.pm-import-dup { color: #64748b; }
.pm-import-row-raw { border: none; background: transparent; box-shadow: none; color: #94a3b8; font-size: 12px; }
.pm-form-hint { font-size: 12px; color: #94a3b8; margin: 4px 0 0; }
/* 关联销售多选列表 */
.pm-bd-search { margin-bottom: 8px; }
.pm-bd-list {
  max-height: 132px;
  overflow-y: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 4px 8px;
  background: #fff;
}
/* 双类名提升优先级，压过 .form-group label（display:block/14px/600/margin-bottom），恢复勾选框+名字同行布局 */
.pm-bd-list .pm-bd-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 2px;
  font-size: 13px;
  font-weight: 400;
  margin-bottom: 0;
  color: #334155;
  cursor: pointer;
  border-radius: 4px;
}
.pm-bd-list .pm-bd-item:hover { background: #f1f5f9; }
/* 压过 .form-group input 的 width:100%/padding，勾选框回归固有尺寸 */
.pm-bd-list .pm-bd-item input[type="checkbox"] {
  width: auto;
  padding: 0;
  margin: 0;
  flex: none;
  cursor: pointer;
}
.pm-bd-empty { font-size: 12px; color: #94a3b8; padding: 6px 2px; }
/* 看板报名列：初筛辅助 */
.pm-card-screen {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 6px 8px;
  margin: 6px 0;
  font-size: 11px;
  color: #475569;
  line-height: 1.7;
}
.pm-card-bad { color: #dc2626; font-weight: 600; }
/* 看板价格内联编辑 */
.pm-card-price { cursor: pointer; }
/* 履约明细档位列在线改档（2026-11-06） */
.pm-tier-edit { cursor: pointer; }
.pm-price-input {
  width: 72px;
  padding: 1px 4px;
  font-size: 11px;
  border: 1px solid #6366f1;
  border-radius: 4px;
  outline: none;
}
/* 看板/导入弹窗：达人名可点击跳详情 */
.pm-card-link { cursor: pointer; }
.pm-card-link:hover .pm-card-name,
.pm-card-link:hover .pm-table-name,
.pm-import-name.pm-card-link:hover { color: #e11d48; text-decoration: underline; }
/* 交付看板下钻/营销监控名单：span 达人名可点击跳详情（结构不同于卡片整行，需独立 hover 规则） */
.pm-name-link { cursor: pointer; }
.pm-name-link:hover { color: #e11d48; text-decoration: underline; }
/* 商家端进展：时间线标签筛选器（七色与 pm-m-chip 同色系；吸顶于 tabs 之下；超出可横滑，不撑破页面） */
.pm-m-tl-filters {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 8px 0;
  margin-bottom: 4px;
  position: sticky;
  top: 46px;
  background: #f5f5f5;
  z-index: 40;
  scrollbar-width: none;
}
.pm-m-tl-filters::-webkit-scrollbar { display: none; }
.pm-m-tl-filter {
  flex: 0 0 auto;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  background: #fff;
  border: 1px solid;
  cursor: pointer;
  white-space: nowrap;
}
.pm-m-f-gray   { border-color: #d9d9d9; color: #8c8c8c; }
.pm-m-f-blue   { border-color: #91caff; color: #1677ff; }
.pm-m-f-purple { border-color: #d3adf7; color: #722ed1; }
.pm-m-f-teal   { border-color: #87e8de; color: #13a8a8; }
.pm-m-f-orange { border-color: #ffd591; color: #d46b08; }
.pm-m-f-green  { border-color: #b7eb8f; color: #389e0d; }
.pm-m-f-red    { border-color: #ffa39e; color: #cf1322; }
.pm-m-tl-filter.active { color: #fff; }
.pm-m-f-gray.active   { background: #8c8c8c; border-color: #8c8c8c; }
.pm-m-f-blue.active   { background: #1677ff; border-color: #1677ff; }
.pm-m-f-purple.active { background: #722ed1; border-color: #722ed1; }
.pm-m-f-teal.active   { background: #13a8a8; border-color: #13a8a8; }
.pm-m-f-orange.active { background: #d46b08; border-color: #d46b08; }
.pm-m-f-green.active  { background: #389e0d; border-color: #389e0d; }
.pm-m-f-red.active    { background: #cf1322; border-color: #cf1322; }
/* 商家端反选：按档位分组容器 */
.pm-m-tier-block {
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 12px;
}
.pm-m-tier-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 15px;
  font-weight: 600;
  color: #262626;
  padding-bottom: 8px;
  border-bottom: 1px solid #f0f0f0;
  margin-bottom: 4px;
}
.pm-m-tier-count { font-size: 14px; font-weight: 700; color: #262626; background: #f5f5f5; border-radius: 6px; padding: 2px 8px; }
.pm-m-tier-count.pm-m-tier-done { color: #389e0d; font-weight: 700; background: #f6ffed; }
.pm-m-sub-head {
  font-size: 12px;
  color: #8c8c8c;
  margin: 10px 0 6px;
}
.pm-m-empty-sm { padding: 10px 0 !important; font-size: 12px; }
/* 档位块内卡片去掉外层重复白底（块本身已是白卡） */
.pm-m-tier-block .pm-m-card { box-shadow: none; border: 1px solid #f0f0f0; }


/* ========== 六期：达人统一入口（/?daren=1 登录 + 任务聚合） ========== */

#app-pm-daren {
    min-height: 100vh;
    background: #f5f5f5;
}

.pm-d-header {
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    color: #fff;
    padding: 28px 16px 20px;
    text-align: center;
}

.pm-d-brand {
    font-size: 12px;
    opacity: 0.85;
    letter-spacing: 2px;
}

.pm-d-title {
    font-size: 20px;
    font-weight: 700;
    margin: 6px 0 4px;
}

.pm-d-sub {
    font-size: 13px;
    opacity: 0.9;
}

.pm-d-logout {
    color: #fff;
    text-decoration: underline;
    margin-left: 8px;
    font-size: 12px;
    opacity: 0.9;
}

.pm-d-card {
    background: #fff;
    border-radius: 12px;
    margin: 16px;
    padding: 20px 16px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

/* 达人登录：平台选择 tab（2026-09-17 账号ID 登录） */
.pm-d-pf-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.pm-d-pf-tab {
    flex: 1;
    padding: 9px 0;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    background: #fafafa;
    color: #666;
    font-size: 14px;
    cursor: pointer;
}

.pm-d-pf-tab.on {
    border-color: #FF2442;
    background: #FFF2F4;
    color: #FF2442;
    font-weight: 600;
}

/* 多账号切换（一人多号便利功能，2026-09-17） */
.pm-d-acct-title {
    font-size: 13px;
    color: #999;
    margin-bottom: 10px;
}

.pm-d-acct-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    margin-bottom: 8px;
    cursor: pointer;
}

.pm-d-acct-row:active {
    background: #fafafa;
}

.pm-d-acct-info {
    flex: 1;
    min-width: 0;
}

.pm-d-acct-name {
    font-size: 14px;
    font-weight: 600;
}

.pm-d-acct-label {
    font-size: 12px;
    color: #999;
}

.pm-d-acct-go {
    font-size: 12px;
    color: #FF2442;
    flex-shrink: 0;
}

.pm-d-acct-del {
    color: #ccc;
    font-size: 18px;
    padding: 0 4px;
    flex-shrink: 0;
}

.pm-d-acct-cur {
    font-size: 11px;
    color: #fff;
    background: #FF2442;
    border-radius: 4px;
    padding: 1px 6px;
    margin-left: 6px;
}

.pm-d-err {
    color: #cf1322;
    font-size: 13px;
    margin: 10px 0 0;
}

.pm-d-submit {
    width: 100%;
    margin-top: 14px;
    padding: 12px;
    font-size: 16px;
    border-radius: 8px;
}

.pm-d-submit:disabled {
    opacity: 0.6;
}

.pm-d-task {
    background: #fff;
    border-radius: 12px;
    margin: 12px 16px;
    padding: 14px 16px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.pm-d-task-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 6px;
}

/* 草稿待办角标（2026-09-18 PRD-达人端草稿反馈提醒体系 二期）：贴右侧状态徽标 */
.pm-d-todo {
    margin-left: auto;
    flex: none;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 9px;
    white-space: nowrap;
}

.pm-d-todo-warn {
    background: #fff1f0;
    color: #cf1322;
    border: 1px solid #ffccc7;
}

.pm-d-todo-final {
    background: #f6ffed;
    color: #389e0d;
    border: 1px solid #b7eb8f;
}

.pm-d-todo-comment {
    background: #fff7e6;
    color: #d46b08;
    border: 1px solid #ffe7ba;
}

.pm-d-task-project {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    flex: 1;
    min-width: 0;
    word-break: break-all;
}

.pm-d-task-meta {
    font-size: 13px;
    color: #666;
    margin-top: 4px;
    word-break: break-all;
}

.pm-d-enter {
    width: 100%;
    margin-top: 12px;
    padding: 10px;
    font-size: 14px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
}

.pm-d-empty {
    text-align: center;
    color: #999;
    padding: 60px 20px;
    font-size: 14px;
}

/* ========== 达人任务中心：多任务分组（2026-09-28） ========== */
/* 「我的」风格头部：品牌渐变区三合一（头像昵称+账号+计数），底部留白给状态行悬浮卡 */
.pm-d-hero {
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    padding: 16px 16px 42px;
}

.pm-d-hero-brand {
    text-align: center;
    color: rgba(255, 255, 255, 0.85);
    font-size: 11px;
    letter-spacing: 2px;
    margin-bottom: 14px;
}

.pm-d-hero-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pm-d-hero-row .pm-avatar {
    border: 2px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    box-sizing: border-box;
}

.pm-d-hero-info {
    flex: 1;
    min-width: 0;
}

.pm-d-hero-name {
    color: #fff;
    font-size: 19px;
    font-weight: 700;
}

.pm-d-hero-sub {
    color: rgba(255, 255, 255, 0.88);
    font-size: 12px;
    margin-top: 3px;
}

.pm-d-hero-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-end;
    flex-shrink: 0;
}

.pm-d-hero-btn {
    color: #fff;
    font-size: 11px;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.22);
    border-radius: 20px;
    padding: 4px 10px;
    white-space: nowrap;
}

/* 状态图标行（电商「我的」页五联心智）：悬浮白卡 + 红色角标 */
.pm-d-stats {
    background: #fff;
    border-radius: 14px;
    margin: -30px 12px 4px;
    padding: 14px 4px 10px;
    display: flex;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    position: relative;
    z-index: 1;
}

.pm-d-stat {
    flex: 1;
    text-align: center;
    cursor: pointer;
    min-width: 0;
}

.pm-d-stat-icon {
    font-size: 22px;
    line-height: 1.2;
    position: relative;
    display: inline-block;
}

.pm-d-stat-badge {
    position: absolute;
    top: -6px;
    left: calc(50% + 4px);
    background: #ff3b30;
    color: #fff;
    font-size: 10px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    border-radius: 8px;
    padding: 0 4px;
    font-weight: 600;
}

.pm-d-stat-label {
    font-size: 11px;
    color: #666;
    margin-top: 5px;
    white-space: nowrap;
}

/* 分组区块：组头点击折叠，组内卡片去横向外边距（组容器已带 16px） */
.pm-d-grp {
    margin: 14px 16px 0;
}

.pm-d-grp-head {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    padding: 4px 2px;
    cursor: pointer;
    user-select: none;
}

.pm-d-grp-arrow {
    font-size: 10px;
    color: #aaa;
    width: 14px;
}

.pm-d-grp-count {
    background: #f0f0f0;
    color: #777;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 500;
    padding: 1px 8px;
}

.pm-d-grp-latest {
    margin-left: auto;
    font-size: 12px;
    color: #999;
    font-weight: 400;
    max-width: 45%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-d-grp-body .pm-d-task {
    margin: 8px 0;
}

/* 今天探店高亮 */
.pm-d-task-today {
    border-left: 3px solid #FF2442;
}

.pm-d-today-chip {
    color: #FF2442;
    font-weight: 700;
    margin-right: 4px;
}

/* 行动提示行（需要我处理组） */
.pm-d-action {
    margin-top: 8px;
    font-size: 13px;
    color: #ad6800;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 8px;
    padding: 7px 10px;
}

/* 卡片按钮行：达人群二维码 + 组队/排期 半宽并排，进入任务仍整宽 */
.pm-d-btn-row {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.pm-d-btn-row .pm-d-enter {
    margin-top: 0;
    flex: 1;
    width: auto;
}

.pm-d-qr-btn {
    background: #f6f9ff;
    color: #2f54eb;
    border: 1px solid #d6e0f5;
}

/* ==================== 报名表单（七期） ==================== */

/* 项目编号（详情页标题 + 报名页头） */
.pm-project-no {
    color: #999;
    font-weight: 500;
    margin-right: 6px;
    font-size: 0.85em;
}

/* 进展看板卡报名链接按钮 */
.pm-signup-link-btn {
    margin-left: 8px;
    font-size: 12px;
    padding: 2px 8px;
}

/* 招募补充说明编辑器（项目弹窗内） */
.pm-editor-toolbar {
    display: flex;
    gap: 4px;
    margin-bottom: 4px;
}
.pm-editor-toolbar button {
    border: 1px solid #ddd;
    background: #fafafa;
    border-radius: 4px;
    padding: 3px 10px;
    font-size: 12px;
    cursor: pointer;
    color: #555;
}
.pm-editor-toolbar button:hover {
    background: #f0f0f0;
}
.pm-editor {
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 8px 10px;
    min-height: 72px;
    max-height: 200px;
    overflow-y: auto;
    font-size: 13px;
    line-height: 1.6;
    background: #fff;
}
.pm-editor:focus {
    outline: none;
    border-color: #4a90d9;
}
.pm-editor:empty::before {
    content: attr(data-placeholder);
    color: #bbb;
    pointer-events: none;
}
.pm-editor ul {
    margin: 4px 0;
    padding-left: 20px;
}
.pm-editor a {
    color: #4a90d9;
}
.pm-editor img {
    max-width: 100%;
    border-radius: 6px;
    margin: 4px 0;
}
.pm-su-notice img {
    display: block;
    max-width: 100%;
    border-radius: 6px;
    margin: 6px 0;
}

/* 项目详情页富文本图片缩略展示（2026-09-13：招募补充说明/Brief 内图片默认小图横排，
   点击放大走 crOpenLightbox 灯箱；只限详情页，报名页/达人端仍按原尺寸展示） */
#pm-detail-content .pm-su-notice img,
#pm-detail-content .pm-detail-brief img {
    display: inline-block;
    max-width: 200px;
    max-height: 140px;
    width: auto;
    height: auto;
    border-radius: 6px;
    margin: 4px 8px 4px 0;
    vertical-align: middle;
    border: 1px solid #eee;
    cursor: zoom-in;
}

/* 报名页（移动端公开页，复用 pm-d/pm-m 体系） */
.pm-su-loading {
    text-align: center;
    color: #999;
    padding: 60px 20px;
    font-size: 14px;
}
.pm-su-card {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    margin: 12px 16px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pm-su-project {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}
.pm-su-no {
    color: #999;
    font-weight: 500;
    margin-right: 4px;
}
/* 招募报名工作面（2026-10-27） */
/* 编辑列收窄（owner 拍板：约为工作面宽度一半，600px 上限；手机端天然占满不受影响） */
.pm-recruit-wrap {
    max-width: 600px;
}
.pm-recruit-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pm-recruit-link-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    background: #f7f9fc;
    border-radius: 8px;
    font-size: 13px;
}
.pm-recruit-link-name {
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.pm-recruit-cf-chip {
    display: inline-block;
    background: #f0f5ff;
    border: 1px solid #d6e4ff;
    color: #1d39c4;
    border-radius: 6px;
    padding: 2px 10px;
    font-size: 12px;
    margin: 0 6px 6px 0;
}
#pm-recruit-title {
    width: 100%;
    box-sizing: border-box;
}
#pm-recruit-notice {
    min-height: 90px;
    width: 100%;
    box-sizing: border-box;
}
.pm-su-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    font-size: 13px;
    color: #666;
    margin-bottom: 10px;
}
.pm-su-tier {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: #666;
    padding: 8px 10px;
    background: #f7f9fc;
    border-radius: 8px;
}
.pm-su-tier-name {
    font-weight: 600;
    color: #4a90d9;
}
.pm-su-fee {
    color: #e67e22;
    font-weight: 600;
}
.pm-su-notice {
    margin-top: 10px;
    font-size: 13px;
    color: #555;
    line-height: 1.7;
    border-top: 1px dashed #eee;
    padding-top: 10px;
    word-break: break-word;
}
.pm-su-notice ul {
    margin: 4px 0;
    padding-left: 20px;
}
.pm-su-notice a {
    color: #4a90d9;
}
.pm-su-field {
    margin-bottom: 12px;
}
.pm-su-field label {
    display: block;
    font-size: 13px;
    color: #666;
    margin-bottom: 4px;
}
.pm-su-field label i {
    color: #e74c3c;
    font-style: normal;
}
.pm-su-field textarea.pm-i-input {
    resize: vertical;
    min-height: 64px;
    font-family: inherit;
}

/* 冲突弹层（已报过名，二选一） */
.pm-su-conflict {
    text-align: center;
}
.pm-su-conflict-icon {
    font-size: 36px;
    margin-bottom: 8px;
}
.pm-su-conflict p {
    font-size: 15px;
    color: #333;
    margin: 6px 0;
}
.pm-su-conflict-sub {
    font-size: 13px !important;
    color: #888 !important;
}
.pm-su-conflict-btns {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 14px;
}
.pm-su-btn-plain {
    background: #f0f0f0 !important;
    color: #555 !important;
}

/* 成功页 */
.pm-su-success {
    text-align: center;
}
.pm-su-success-icon {
    font-size: 40px;
    margin-bottom: 8px;
}
.pm-su-success-title {
    font-size: 17px;
    font-weight: 600;
    color: #333;
    margin: 6px 0;
}
.pm-su-success-sub {
    font-size: 13px;
    color: #888;
    line-height: 1.7;
    margin-bottom: 14px;
}
.pm-su-success-tip {
    font-size: 12px;
    color: #aaa;
    margin-top: 10px;
}
.pm-su-success-contact {
    font-size: 14px;
    color: #333;
    background: #FFF7F3;
    border: 1px solid #FFD9C7;
    border-radius: 10px;
    padding: 10px 14px;
    margin: 0 0 14px;
    line-height: 1.7;
}
.pm-su-success-contact b { color: #FF2442; }
.pm-su-success-contact-sub {
    font-size: 12px;
    color: #999;
}
/* 报名链接复访进度卡 + 卡内文字链接（浅底卡片上可见，区别于 pm-d-logout 深色头部白字） */
.pm-su-link {
    color: #FF2442;
    text-decoration: none;
    font-size: 13px;
}
.pm-su-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
}
.pm-su-progress-contact {
    font-size: 13px;
    color: #888;
}

/* ==================== 报名表单迭代：平台大标签 + 达人要求表格 ==================== */

/* 平台小标签（跟在项目名后，浅底深字，与卡片融合） */
.pm-su-pf-tag {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 6px;
    margin-left: 6px;
    vertical-align: 2px;
    white-space: nowrap;
}
.pm-su-pf-xhs {
    background: #fff0f2;
    color: #ff2442;
}
.pm-su-pf-dianping {
    background: #fff4e5;
    color: #e8801a;
}
.pm-su-pf-douyin {
    background: #eceef2;
    color: #161823;
}
.pm-su-pf-default {
    background: #eef5fd;
    color: #4a90d9;
}

/* 达人要求表格（表头区域，5 行） */
.pm-su-req-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin-top: 4px;
}
.pm-su-req-table th,
.pm-su-req-table td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #f0f0f0;
}
.pm-su-req-table tr:last-child th,
.pm-su-req-table tr:last-child td {
    border-bottom: none;
}
.pm-su-req-table th {
    color: #999;
    font-weight: 400;
    width: 38%;
    white-space: nowrap;
}
.pm-su-req-table td {
    color: #333;
    font-weight: 500;
}
.pm-su-req-table .pm-su-req-fee {
    color: #e67e22;
    font-weight: 700;
}

/* 组合招募链接：档位选择器（2026-09-30） */
.pm-su-tier-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 4px;
}
.pm-su-tier-pill {
    flex: 1;
    min-width: 84px;
    padding: 9px 12px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background: #fff;
    color: #555;
    font-size: 14px;
    cursor: pointer;
    transition: all .15s;
}
.pm-su-tier-pill.active {
    border-color: #FF2442;
    color: #FF2442;
    background: #fff2f4;
    font-weight: 600;
}

/* ==================== 八期：自定义报名字段 ==================== */

/* 项目弹窗：自定义字段编辑行 */
.pm-cf-row {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 8px;
    margin-bottom: 8px;
    background: #fafafa;
}
.pm-cf-main {
    display: flex;
    align-items: center;
    gap: 6px;
}
.pm-cf-label {
    flex: 1;
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
}
.pm-cf-type {
    padding: 6px 4px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    background: #fff;
}
.pm-cf-req {
    font-size: 12px;
    color: #666;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 2px;
}
.pm-cf-order {
    display: flex;
    gap: 2px;
}
.pm-cf-order button {
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 4px;
    width: 24px;
    height: 24px;
    font-size: 12px;
    cursor: pointer;
    color: #666;
    padding: 0;
}
.pm-cf-order button:hover {
    background: #f0f0f0;
}
.pm-cf-options {
    width: 100%;
    margin-top: 6px;
    padding: 6px 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 12px;
    box-sizing: border-box;
}

/* 报名页：自定义字段下拉（手机端友好） */
select.pm-i-input.pm-su-cf {
    width: 100%;
    background: #fff;
}

/* 看板/表格：报名资料入口 */
.pm-su-info-link {
    color: #4a90d9;
    cursor: pointer;
    font-size: 12px;
}
.pm-su-info-link:hover {
    text-decoration: underline;
}

/* 报名资料弹层表格 */
.pm-su-info-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.pm-su-info-table th,
.pm-su-info-table td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: top;
    word-break: break-word;
}
.pm-su-info-table tr:last-child th,
.pm-su-info-table tr:last-child td {
    border-bottom: none;
}
.pm-su-info-table th {
    color: #999;
    font-weight: 400;
    width: 34%;
    white-space: nowrap;
}
.pm-su-info-table td {
    color: #333;
}
.pm-su-info-table a {
    color: #4a90d9;
}

/* ==================== 九期：组队大厅（达人自助组队） ==================== */

/* ---- 运营端：排期日历可探状态 ---- */
#pm-date-modal .modal-box {
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}
.pm-cal-clickable {
    cursor: pointer;
}
.pm-cal-clickable:hover {
    border-color: #69a8e0;
    box-shadow: 0 0 0 1px #bae0ff;
}
.pm-cal-closed {
    color: #aaa;
}
.pm-cal-closed-tag,
.pm-cal-full-tag {
    font-size: 10px;
    font-weight: 600;
    border-radius: 3px;
    padding: 0 4px;
    margin-left: 4px;
}
.pm-cal-closed-tag {
    background: #e5e5e5;
    color: #888;
}
.pm-cal-full-tag {
    background: #fff1f0;
    color: #cf1322;
    border: 1px solid #ffa39e;
}
.pm-cal-team-forming {
    background: #fffbe6;
    border: 1px dashed #f0c36d;
    color: #ad6800;
}
.pm-cal-team-forming .pm-cal-slot {
    color: #d48806;
}
.pm-self-badge {
    display: inline-block;
    font-size: 11px;
    color: #ad6800;
    background: #fff7e6;
    border: 1px solid #ffe7ba;
    border-radius: 4px;
    padding: 0 5px;
    margin-left: 4px;
}
.pm-date-hint {
    font-size: 12px;
    color: #999;
    line-height: 1.6;
    margin: 0 0 12px;
}
.pm-date-slot-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
}
.pm-date-slot-row:last-child {
    border-bottom: none;
}
.pm-date-slot-name {
    font-size: 14px;
    color: #333;
}
.pm-date-day {
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}

/* ---- 达人端：大厅页框架 ---- */
#app-pm-lobby {
    min-height: 100vh;
    background: #f5f5f5;
}
.pm-lb-body {
    padding-bottom: 24px;
}
.pm-lb-back {
    display: inline-block;
    margin: 12px 16px 0;
    font-size: 13px;
    color: #4a90d9;
    text-decoration: none;
}
.pm-lb-state {
    background: #fff;
    border-radius: 12px;
    margin: 10px 16px;
    padding: 12px 14px;
    font-size: 13px;
    color: #555;
    line-height: 1.6;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pm-lb-state-cap {
    border-left: 4px solid #f0c36d;
}
.pm-lb-state-locked {
    border-left: 4px solid #52c41a;
}
.pm-lb-sec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 16px 16px 8px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
}
.pm-lb-calnav {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 400;
    font-size: 13px;
}
.pm-lb-calnav a {
    color: #4a90d9;
    text-decoration: none;
    font-size: 15px;
    padding: 0 4px;
}

/* ---- 达人端：大厅月历 ---- */
.pm-lb-cal {
    margin: 0 12px;
    gap: 3px;
}
.pm-lb-cell {
    min-height: 46px;
    padding: 3px 4px;
    font-size: 11px;
}
.pm-lb-cell .pm-cal-date {
    font-size: 12px;
}
.pm-lb-off {
    background: #f7f7f7;
    color: #ccc;
    border-color: #f0f0f0;
}
.pm-lb-closed {
    background: #f2f2f2;
    color: #bbb;
}
.pm-lb-full {
    background: #f7f7f7;
    color: #bbb;
}
.pm-lb-open {
    background: #e8f7ee;
    border-color: #b7eb8f;
    color: #237804;
    cursor: pointer;
}
.pm-lb-open:hover {
    border-color: #52c41a;
}
.pm-lb-picked {
    outline: 2px solid #ff2442;
    outline-offset: -2px;
}
.pm-lb-mark {
    font-size: 10px;
    color: #bbb;
    margin-left: 3px;
}
.pm-lb-cars {
    font-size: 10px;
    color: #4a90d9;
    margin-left: 3px;
}
.pm-lb-legend {
    margin: 6px 16px 0;
    font-size: 11px;
    color: #999;
}
.pm-lb-slotpick {
    background: #fff;
    border-radius: 12px;
    margin: 10px 16px;
    padding: 12px 14px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pm-lb-slotpick-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
}
.pm-lb-slotbtn {
    margin: 0 8px 8px 0;
    padding: 8px 14px;
    border-radius: 8px;
    border: none;
    font-size: 13px;
    cursor: pointer;
}
.pm-lb-cancel {
    background: #f0f0f0;
    color: #666;
}

/* ---- 达人端：车辆卡 / 成员 chip ---- */
.pm-lb-car {
    background: #fff;
    border-radius: 12px;
    margin: 10px 16px;
    padding: 12px 14px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pm-lb-car-mine {
    border: 1px solid #ffd591;
    background: #fffdf5;
}
.pm-lb-car-head {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.pm-lb-seat {
    font-size: 12px;
    font-weight: 400;
    color: #ad6800;
    background: #fff7e6;
    border-radius: 4px;
    padding: 1px 8px;
}
.pm-lb-members {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}
.pm-lb-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #f7f7f7;
    border-radius: 16px;
    padding: 3px 8px 3px 3px;
    font-size: 12px;
    color: #333;
}
.pm-lb-name {
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pm-lb-tag {
    font-size: 10px;
    color: #fff;
    background: #bbb;
    border-radius: 3px;
    padding: 0 4px;
}
.pm-lb-tag-cap {
    background: #f0a53a;
}
.pm-lb-home {
    color: #4a90d9;
    font-size: 11px;
    text-decoration: none;
}
.pm-lb-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    align-items: center;
}
.pm-lb-pending {
    width: 100%;
    border-top: 1px dashed #f0f0f0;
    padding-top: 8px;
    margin-bottom: 4px;
}
.pm-lb-pending-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}
.pm-lb-pending-btns {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}
.pm-lb-pending-empty {
    width: 100%;
    font-size: 12px;
    color: #bbb;
}
.pm-lb-wait {
    font-size: 12px;
    color: #999;
}
.pm-lb-ungrouped {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 16px;
}
.pm-lb-empty {
    margin: 0 16px;
    font-size: 13px;
    color: #bbb;
    padding: 8px 0;
}
.pm-lb-tips {
    margin: 16px;
    font-size: 12px;
    color: #999;
    line-height: 1.7;
    background: #fff;
    border-radius: 12px;
    padding: 10px 14px;
}

/* ---- 邀请上车落地页 ---- */
.pm-lb-invite-card {
    background: #fff;
    border-radius: 12px;
    margin: 16px;
    padding: 20px 16px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.pm-lb-invite-msg {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 10px;
}
.pm-lb-invite-row {
    font-size: 14px;
    color: #555;
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.pm-lb-invite-sub {
    font-size: 12px;
    color: #999;
    margin-top: 12px;
    line-height: 1.6;
}
.pm-lb-invite-card .pm-i-input {
    margin-top: 14px;
}
.pm-d-lobby-btn {
    background: #fff7e6;
    color: #ad6800;
    border: 1px solid #ffe7ba;
}

/* ========== 十期：扫码进群（达人二维码卡 + 项目档位二维码槽） ========== */

/* 达人任务卡 / 详情页进群二维码卡 */
.pm-d-qr-card {
    margin: 10px 0;
    padding: 12px;
    background: #f6f9ff;
    border: 1px dashed #b7c8e8;
    border-radius: 10px;
    text-align: center;
}

.pm-i-card.pm-d-qr-card {
    /* 详情页复用 pm-i-card 的白色背景与外边距，仅覆盖边框样式 */
    border: 1px dashed #b7c8e8;
}

.pm-d-qr-title {
    font-size: 14px;
    font-weight: 600;
    color: #2f54eb;
    margin-bottom: 8px;
}

.pm-d-qr-img {
    width: 172px;
    height: 172px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #eee;
}

.pm-d-qr-hint {
    margin-top: 8px;
    font-size: 12px;
    color: #888;
    line-height: 1.6;
}

.pm-d-qr-fallback {
    font-size: 13px;
    color: #666;
    line-height: 1.7;
}

/* 项目表单档位行内的群二维码槽（占满第二行） */
.pm-tier-qr {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;       /* 空间不足时「长期有效」折行，绝不裁切 */
    align-items: center;
    gap: 6px 10px;
    padding-top: 2px;
    font-size: 12px;
}

.pm-tier-qr-info {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 200px;      /* 明确基准值，保证收缩/包裹行为确定 */
    flex-wrap: wrap;
    min-width: 0;
}

.pm-tier-qr-none {
    color: #bbb;
}

.pm-tier-qr-date {
    color: #999;
}

.pm-tier-qr-expired {
    color: #ff2442;
    font-weight: 600;
}

.pm-tier-qr-view {
    color: #576b95;
    text-decoration: none;
}

.pm-tier-qr-del {
    color: #ff2442;
    text-decoration: none;
}

/* 双类名提升优先级，压过 .form-group label（display:block/14px/600/margin-bottom） */
.pm-tier-qr .pm-tier-qr-long {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 400;
    margin-bottom: 0;
    color: #888;
    white-space: nowrap;
    flex-shrink: 0;      /* 不换行元素永不挤压 */
    cursor: pointer;
}

/* 压过 .form-group input 的 width:100%/padding，勾选框回归固有尺寸 */
.pm-tier-qr .pm-tier-qr-long input[type="checkbox"] {
    width: auto;
    padding: 0;
    margin: 0;
    flex: none;
}

/* ========== 十期：预约库存模型（时间单元配置/选择） ========== */

/* ---- 运营端：单元配置列表（统一配置弹层 + 单日面板共用） ---- */
.pm-slot-list {
    max-height: 52vh;
    overflow-y: auto;
    margin: 0 -4px;
    padding: 0 4px;
}
.pm-slot-group-title {
    font-size: 12px;
    font-weight: 700;
    color: #999;
    margin: 12px 0 4px;
}
.pm-slot-group-title:first-child {
    margin-top: 2px;
}
.pm-slot-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid #f5f5f5;
}
.pm-slot-row:last-child {
    border-bottom: none;
}
.pm-slot-row-closed .pm-slot-name {
    color: #bbb;
    text-decoration: line-through;
}
.pm-slot-name {
    flex: 1;
    font-size: 14px;
    color: #333;
    min-width: 0;
}
.pm-slot-used {
    font-style: normal;
    font-size: 11px;
    color: #ad6800;
    background: #fff7e6;
    border-radius: 8px;
    padding: 1px 6px;
    margin-left: 6px;
    text-decoration: none;
    display: inline-block;
}
.pm-date-ov-tag {
    font-style: normal;
    font-size: 11px;
    color: #0958d9;
    background: #e6f4ff;
    border-radius: 8px;
    padding: 1px 6px;
    margin-left: 6px;
    text-decoration: none;
    display: inline-block;
}
.pm-slot-toggle {
    flex-shrink: 0;
    border: 1px solid #d9d9d9;
    background: #f5f5f5;
    color: #999;
    border-radius: 14px;
    font-size: 12px;
    padding: 3px 12px;
    cursor: pointer;
}
.pm-slot-toggle.on {
    background: #f6ffed;
    border-color: #b7eb8f;
    color: #389e0d;
}
.pm-slot-cap {
    flex-shrink: 0;
    width: 64px;
    padding: 5px 8px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    font-size: 13px;
    text-align: center;
}
.pm-slot-cap:disabled {
    background: #fafafa;
    color: #ccc;
}

/* ---- 达人大厅：发车单元选择 ---- */
.pm-lb-unitgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 0 16px 10px;
}
.pm-lb-unitbtn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 4px;
    border: 1px solid #ffe7ba;
    background: #fff7e6;
    color: #ad6800;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.pm-lb-unitbtn small {
    font-size: 11px;
    font-weight: 400;
    color: #d48806;
}
.pm-lb-unitbtn:active {
    transform: scale(0.97);
}
.pm-lb-unitbtn-off {
    background: #f5f5f5;
    border-color: #eee;
    color: #bbb;
    cursor: not-allowed;
}
.pm-lb-unitbtn-off small {
    color: #ccc;
}


/* ========== 草稿协作模块 ========== */
/* 全屏覆盖层（达人编辑器 / 运营抽屉 / 商家详情共用），手机端优先 */
.pm-dc-overlay {
    position: fixed;
    inset: 0;
    background: #f7f8fa;
    z-index: 1500;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    overscroll-behavior: contain; /* iOS：阻断橡皮筋滚动穿透到覆盖层后面的页面 */
}

.pm-dc-overlay-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: #fff;
    border-bottom: 1px solid #f0f0f0;
    flex-shrink: 0;
}

.pm-dc-back {
    border: none;
    background: #f5f5f5;
    color: #333;
    border-radius: 8px;
    padding: 7px 12px;
    font-size: 14px;
    cursor: pointer;
    flex-shrink: 0;
}

.pm-dc-overlay-title {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-dc-overlay-body {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain; /* iOS：滚到头/尾不再拖拽底层页面，稳住手感 */
}

/* 状态徽章 */
.pm-dc-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

.pm-dc-badge-editing { background: #f5f5f5; color: #666; }
.pm-dc-badge-pending { background: #fff7e6; color: #d48806; border: 1px solid #ffe7ba; }
.pm-dc-badge-revising { background: #fff1f0; color: #cf1322; border: 1px solid #ffccc7; }
.pm-dc-badge-finalized { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
/* 待写稿（2026-09-29 审稿协作总量闭环）：无草稿记录的履约单只读行，不可点开工作台 */
.pm-dc-badge-nodraft { background: #f0f5ff; color: #2f54eb; border: 1px solid #d6e4ff; }
.pm-dc-row-nodraft { cursor: default; }
.pm-dc-row-nodraft:active { background: transparent; }

/* 状态横幅 */
.pm-dc-finalized {
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    color: #389e0d;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
    margin-bottom: 10px;
}

.pm-dc-finalized small { font-weight: 400; color: #52c41a; }

.pm-dc-pending {
    background: #fff7e6;
    border: 1px solid #ffe7ba;
    color: #ad6800;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 14px;
    margin-bottom: 10px;
    text-align: center;
}

.pm-dc-revising {
    background: #fff1f0;
    border: 1px solid #ffccc7;
    color: #cf1322;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 14px;
    margin-bottom: 10px;
}

.pm-dc-actions {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.pm-dc-actions-wrap { flex-wrap: wrap; }
.pm-dc-actions-wrap .pm-m-btn { flex: 1 1 40%; }

/* 吸底操作栏（2026-08-31 详情页重构）：判决/动作按钮固定在滚动区底部，不挡内容随时可点 */
.pm-dc-actions-sticky {
    position: sticky;
    bottom: -12px; /* 抵消 overlay-body 的 padding，贴住底边 */
    background: #fff;
    border-top: 1px solid #f0f0f0;
    padding: 10px 0 12px;
    margin-bottom: -12px;
    z-index: 5;
}

.pm-dc-actions-sp { flex: 1 1 auto; }

.pm-dc-actions-sticky .pm-dc-actions-sp + .pm-m-btn { flex: 0 0 auto; }

.pm-dc-btn-muted {
    color: #bbb !important;
    border-color: #f0f0f0 !important;
}

/* AI 初审卡折叠开关 */
.pm-ai-toggle {
    border: none;
    background: none;
    color: #64748b;
    font-size: 12px;
    cursor: pointer;
    padding: 2px 4px;
}

.pm-ai-toggle:hover { color: #334155; }

.pm-dc-hint { font-size: 12px; color: #999; font-weight: 400; }

/* ===== 达人草稿编辑器 · 小红书发布页对标（2026-09-16 方案A） ===== */
/* 一体白面：横滑图片条 → 无边框标题/正文 → 蓝色标签 → 快捷插入条；提交主按钮在顶栏 */

.pm-xhs-page { background: #fff; padding-top: 0; }

.pm-xhs-saved { font-size: 11px; color: #bbb; flex-shrink: 0; white-space: nowrap; }

.pm-xhs-publish {
    border: none;
    background: #ff2442;
    color: #fff;
    border-radius: 999px;
    padding: 7px 16px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.pm-xhs-publish:disabled { opacity: .6; }

/* 图片横滑条 */
.pm-xhs-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 12px 12px 4px;
    -webkit-overflow-scrolling: touch;
}

.pm-xhs-thumb {
    position: relative;
    flex: 0 0 auto;
    width: 72px;
    aspect-ratio: 3 / 4;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f5f5;
    border: 2px solid transparent;
    box-sizing: border-box;
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

.pm-xhs-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

.pm-xhs-thumb.selected { border-color: #ff2442; }

.pm-xhs-dragging { z-index: 10; box-shadow: 0 6px 18px rgba(0, 0, 0, .28); opacity: .96; }

.pm-xhs-cover {
    position: absolute;
    left: 0;
    top: 0;
    background: #ff2442;
    color: #fff;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 0 0 6px 0;
}

/* 草稿图片稳定编号角标 P{n}（2026-09-29，PRD: docs/PRD-草稿图片稳定编号.md）：与「封面」角标
   错角摆放；编号是身份语义（终身不变），「封面」是位置语义（当前第一张），两者并存不打架。 */
.pm-xhs-no {
    position: absolute;
    right: 0;
    top: 0;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 0 0 0 6px;
}

.pm-xhs-thumb-cap { position: absolute; right: 3px; bottom: 3px; font-size: 11px; }

/* 实况照片角标（达人编辑器图格，2026-10-14）：上传时 best-effort 识别 Live Photo 打标，
   与 P 编号错角摆放（左下）；紫色与「封面」红/编号黑区分 */
.pm-xhs-live {
    position: absolute;
    left: 0;
    bottom: 0;
    background: rgba(124, 58, 237, .85);
    color: #fff;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 0 6px 0 0;
}

.pm-xhs-add {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #ddd;
    color: #bbb;
    background: #fafafa;
}

.pm-xhs-add-plus { font-size: 28px; font-weight: 300; }
.pm-xhs-add-prog { font-size: 12px; color: #999; }

/* 草稿图「上传中 / 上传失败」态（P0 选图先本地预览上墙，逐张转正式，2026-09-17） */
.pm-xhs-thumb-up {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .42);
    color: #fff;
    font-size: 11px;
    letter-spacing: 1px;
}

.pm-xhs-thumb-failed { border-color: #ff2442; }

.pm-xhs-thumb-fail {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .74);
    font-size: 22px;
}

.pm-xhs-strip-hint { font-size: 11px; color: #ccc; padding: 3px 14px 0; }

/* 选中图片工具条（图片说明为审稿需要的额外能力，小红书没有，收在这里） */
.pm-xhs-tools {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px 0;
}

.pm-xhs-tools-idx { font-size: 12px; color: #999; flex-shrink: 0; }

.pm-xhs-tools-cap {
    flex: 1;
    min-width: 0;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 7px 10px;
    font-size: 13px;
    color: #333;
    outline: none;
}

.pm-xhs-tools-cap:focus { border-color: #ffd0d8; }

.pm-xhs-tools-btn {
    border: 1px solid #eee;
    background: #f7f8fa;
    border-radius: 8px;
    width: 32px;
    height: 32px;
    font-size: 14px;
    cursor: pointer;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.pm-xhs-tools-del { color: #cf1322; }

/* 标题 / 正文：无边框，细分割线，字数计数 */
.pm-xhs-title-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 12px 0;
    padding-bottom: 6px;
    border-bottom: 1px solid #f5f5f5;
}

.pm-xhs-title {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    font-size: 17px;
    font-weight: 600;
    color: #333;
    padding: 6px 0;
    font-family: inherit;
}

.pm-xhs-title::placeholder { color: #c7c7c7; font-weight: 400; }

.pm-xhs-count { font-size: 12px; color: #ccc; flex-shrink: 0; }
.pm-xhs-over { color: #cf1322; font-weight: 600; }

.pm-xhs-body-wrap { position: relative; margin: 0 12px; padding-bottom: 20px; }

.pm-xhs-body {
    width: 100%;
    border: none;
    outline: none;
    resize: none;
    font-size: 15px;
    line-height: 1.75;
    color: #333;
    padding: 10px 0 0;
    box-sizing: border-box;
    overflow: hidden;
    font-family: inherit;
}

.pm-xhs-body::placeholder { color: #c7c7c7; }
.pm-xhs-body-wrap .pm-xhs-count { position: absolute; right: 0; bottom: 2px; }

/* 已选话题/提及标签（话题蓝/提及红，与笔记预览同色） */
.pm-xhs-tags { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px; }
.pm-xhs-tags:empty { display: none; }

.pm-xhs-tag {
    background: #f0f6ff;
    color: #1890ff;
    border-radius: 14px;
    padding: 4px 10px;
    font-size: 13px;
    line-height: 1.4;
}

.pm-xhs-tag-m { background: #fff0f3; color: #ff2442; }
.pm-xhs-tag b { margin-left: 5px; cursor: pointer; font-weight: 400; opacity: .6; }
.pm-xhs-tag-hint { cursor: pointer; border: 1px dashed currentColor; background: #fff; }
.pm-xhs-none { font-size: 13px; color: #bbb; }

/* 快捷插入条 */
.pm-xhs-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px;
    margin-top: 6px;
    border-top: 1px solid #f7f7f7;
}

.pm-xhs-tool {
    border: none;
    background: #f5f5f5;
    color: #333;
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 13px;
    cursor: pointer;
    white-space: nowrap;
}

.pm-xhs-tool:active { background: #ececec; }
.pm-xhs-tool:disabled { opacity: .6; }
.pm-xhs-toolbar-sp { flex: 1; }

.pm-xhs-foot-hint { font-size: 11px; color: #ccc; text-align: center; padding: 2px 12px 12px; }

/* ===== 软键盘弹起紧凑编辑态（2026-09-30，iPhone 达人端写稿体验优化）=====
   JS（pmDcKbApply）检测到软键盘弹起后给覆盖层加 .pm-kb-open；安卓 adjustResize 与桌面不触发。
   编辑面改纵向 flex：图片条/工具条/标题压缩并固定，正文占满键盘上方全部剩余空间、
   内部滚动（原生光标跟随，打字不被键盘遮挡）；提示行隐藏。仅作用于编辑器（.pm-xhs-page），
   状态视图/版本对比/商家端/运营端布局不受影响。 */
.pm-dc-overlay.pm-kb-open .pm-dc-overlay-head { padding: 8px 14px; }

.pm-dc-overlay.pm-kb-open .pm-dc-overlay-body.pm-xhs-page {
    display: flex;
    flex-direction: column;
    padding-bottom: 4px;
}

.pm-dc-overlay.pm-kb-open .pm-xhs-strip { flex-shrink: 0; padding: 8px 12px 2px; }

.pm-dc-overlay.pm-kb-open .pm-xhs-thumb { width: 48px; border-radius: 6px; }

.pm-dc-overlay.pm-kb-open .pm-xhs-strip-hint,
.pm-dc-overlay.pm-kb-open .pm-xhs-foot-hint { display: none; }

.pm-dc-overlay.pm-kb-open .pm-xhs-tools { flex-shrink: 0; padding-top: 4px; }

.pm-dc-overlay.pm-kb-open .pm-xhs-title-wrap { flex-shrink: 0; margin-top: 6px; }

.pm-dc-overlay.pm-kb-open .pm-xhs-body-wrap {
    flex: 1 1 auto;
    min-height: 110px;
    display: flex;
    flex-direction: column;
    padding-bottom: 16px;
}

.pm-dc-overlay.pm-kb-open .pm-xhs-body {
    flex: 1 1 auto;
    height: auto !important; /* 覆盖 pmXhsAutoGrow 的内联高度，紧凑态由 flex 分配 */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.pm-dc-overlay.pm-kb-open .pm-xhs-tags { flex-shrink: 0; padding-top: 6px; }

.pm-dc-overlay.pm-kb-open .pm-xhs-toolbar { flex-shrink: 0; padding: 8px 12px; margin-top: 0; }

/* 底部弹层（话题 / 提及） */
.pm-xhs-sheet-ov {
    position: fixed;
    inset: 0;
    z-index: 1700;
    background: rgba(0, 0, 0, .45);
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.pm-xhs-sheet {
    background: #fff;
    width: 100%;
    max-width: 640px;
    border-radius: 16px 16px 0 0;
    max-height: 72vh;
    display: flex;
    flex-direction: column;
    animation: pmXhsSheetUp .18s ease-out;
}

@keyframes pmXhsSheetUp {
    from { transform: translateY(24px); opacity: .6; }
    to { transform: none; opacity: 1; }
}

.pm-xhs-sheet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid #f5f5f5;
}

.pm-xhs-sheet-title { font-size: 15px; font-weight: 600; color: #333; }

.pm-xhs-sheet-done {
    border: none;
    background: none;
    color: #ff2442;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.pm-xhs-sheet-body { padding: 12px 16px 28px; overflow-y: auto; }
.pm-xhs-sheet-sec { margin-bottom: 14px; }
.pm-xhs-sheet-label { font-size: 12px; color: #999; margin-bottom: 8px; }
.pm-xhs-sheet-body .pm-xhs-tags { padding: 0; }

.pm-xhs-sheet-input-row { display: flex; gap: 8px; margin-bottom: 14px; }

.pm-xhs-sheet-input {
    flex: 1;
    min-width: 0;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 14px;
    outline: none;
}

.pm-xhs-sheet-input:focus { border-color: #ffd0d8; }

.pm-xhs-sheet-add {
    border: none;
    background: #ff2442;
    color: #fff;
    border-radius: 8px;
    padding: 0 16px;
    font-size: 14px;
    cursor: pointer;
}

.pm-dc-edit-actions { position: sticky; bottom: 0; background: #f7f8fa; padding: 8px 0; }

/* 小红书式笔记预览（滑动轮播：track 横排 + 手势拖动 + 圆点指示器） */
.pm-dc-note { background: #fff; }

.pm-dc-cover-wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #000;
    aspect-ratio: 3 / 4;
    max-height: 420px;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}

.pm-dc-track {
    display: flex;
    height: 100%;
    transition: transform .28s ease;
    will-change: transform;
}

.pm-dc-slide {
    flex: 0 0 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.pm-dc-cover {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    -webkit-user-drag: none;
}

.pm-dc-cover-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.pm-dc-cover-prev { left: 8px; }
.pm-dc-cover-next { right: 8px; }

/* 触屏设备无箭头（小红书纯手势）；桌面端保留 */
@media (hover: none), (pointer: coarse) {
    .pm-dc-cover-btn { display: none; }
}

/* 手机端不限高，首图比例全幅展示（同小红书）；桌面端保留 420px 上限 */
@media (max-width: 768px) {
    .pm-dc-cover-wrap { max-height: none; }
}

.pm-dc-cover-count {
    position: absolute;
    right: 8px;
    top: 8px;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
}

.pm-dc-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    display: flex;
    justify-content: center;
    gap: 5px;
    pointer-events: none;
}

.pm-dc-dots i {
    width: 5px;
    height: 5px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.55);
    transition: all 0.2s;
}

.pm-dc-dots i.on { width: 12px; background: #fff; }

.pm-dc-caption {
    font-size: 12px;
    color: #999;
    padding: 6px 2px 0;
    min-height: 18px;
}

.pm-dc-note-text {
    font-size: 15px;
    color: #333;
    line-height: 1.8;
    padding: 10px 2px;
    word-break: break-word;
}

.pm-dc-note-tags { padding: 0 2px 8px; }

.pm-dc-topic { color: #1890ff; font-size: 14px; margin-right: 6px; }
.pm-dc-mention { color: #ff2442; font-size: 14px; margin-right: 6px; }

.pm-dc-note-meta { font-size: 12px; color: #bbb; padding: 0 2px 4px; }

/* 笔记标题（选填，≤20 字，utf-16 口径） */
.pm-dc-title {
    font-size: 17px;
    font-weight: 700;
    color: #333;
    line-height: 1.5;
    padding: 10px 2px 0;
    word-break: break-word;
}

.pm-dc-title-row {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-dc-title-cmp { font-size: 15px; font-weight: 700; }

.pm-dc-title-changed { background: #fff7e6; border-radius: 8px; }

/* 版本 tabs */
.pm-dc-vtabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.pm-dc-vtab {
    border: 1px solid #eee;
    background: #f7f8fa;
    border-radius: 16px;
    padding: 5px 14px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
}

.pm-dc-vtab.active {
    background: #ff2442;
    border-color: #ff2442;
    color: #fff;
}

.pm-dc-vtab-cmp { margin-left: auto; }

/* 评论区 */
.pm-dc-comment {
    border-bottom: 1px solid #f5f5f5;
    padding: 10px 0;
}

.pm-dc-comment.resolved { opacity: 0.65; }

.pm-dc-c-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.pm-dc-c-author {
    font-size: 13px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 10px;
}

.pm-dc-c-author small { font-weight: 400; color: #999; }
.pm-dc-c-author-merchant { background: #fff0f3; color: #ff2442; }
.pm-dc-c-author-operator { background: #e6f4ff; color: #0958d9; }
.pm-dc-c-author-influencer { background: #f6ffed; color: #389e0d; }

.pm-dc-c-target {
    font-size: 11px;
    color: #ad6800;
    background: #fff7e6;
    border-radius: 8px;
    padding: 2px 6px;
}

.pm-dc-c-target small { font-size: 10px; color: #d48806; }

.pm-dc-c-time { font-size: 11px; color: #bbb; margin-left: auto; }

.pm-dc-c-content { font-size: 14px; color: #333; line-height: 1.7; }

.pm-dc-c-foot { margin-top: 6px; }

.pm-dc-c-resolve-btn {
    border: 1px solid #b7eb8f;
    background: #f6ffed;
    color: #389e0d;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 12px;
    cursor: pointer;
}

.pm-dc-c-resolved { font-size: 12px; color: #389e0d; }
.pm-dc-c-empty { color: #999; font-size: 13px; text-align: center; padding: 16px 0; }

/* 评论卡标题行 + 筛选 chip（2026-09-29 达人端评论跨版本聚合）：视觉语言复用版本 tab */
.pm-dc-ctitle { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pm-dc-cfilter { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pm-dc-cfilter-btn {
    border: 1px solid #eee;
    background: #f7f8fa;
    border-radius: 14px;
    padding: 3px 12px;
    font-size: 12px;
    line-height: 18px;
    color: #666;
    cursor: pointer;
}
.pm-dc-cfilter-btn.active { background: #ff2442; border-color: #ff2442; color: #fff; }
.pm-dc-cfilter-unres { color: #cf1322; font-weight: 600; }

/* 评论表单 */
.pm-dc-cform { border-top: 1px solid #f0f0f0; padding-top: 10px; margin-top: 10px; }

.pm-dc-cform-text {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    resize: vertical;
    margin-bottom: 8px;
}

/* 对比视图 */
.pm-dc-cmp-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.pm-dc-cmp-bar select {
    flex: 1;
    min-width: 0;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
}

.pm-dc-cmp-head {
    display: flex;
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.pm-dc-cmp-head span { flex: 1; text-align: center; }

.pm-dc-cmp-legend {
    display: flex;
    gap: 12px;
    font-size: 11px;
    color: #999;
    justify-content: center;
    margin: 6px 0;
}

.pm-dc-cmp-add-tag { color: #389e0d; }
.pm-dc-cmp-del-tag { color: #999; }

.pm-dc-cmp-row { display: flex; gap: 6px; margin-bottom: 6px; }
.pm-dc-cmp-cell { flex: 1; min-width: 0; }

.pm-dc-cmp-img {
    width: 100%;
    border-radius: 8px;
    display: block;
    border: 3px solid transparent;
    box-sizing: border-box;
}

.pm-dc-cmp-img.pm-dc-cmp-add { border-color: #b7eb8f; }
.pm-dc-cmp-img.pm-dc-cmp-del { border-color: #d9d9d9; filter: grayscale(1); opacity: 0.6; }

.pm-dc-topic.pm-dc-cmp-add { background: #f6ffed; border-radius: 8px; padding: 2px 6px; }
.pm-dc-topic.pm-dc-cmp-del { color: #bbb; text-decoration: line-through; }

.pm-dc-cmp-cap { font-size: 11px; color: #999; text-align: center; }

.pm-dc-cmp-none {
    background: #fafafa;
    border-radius: 8px;
    color: #ccc;
    text-align: center;
    padding: 30px 0;
}

.pm-dc-cmp-textrow { align-items: stretch; }

.pm-dc-cmp-text {
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 10px;
    font-size: 13px;
    line-height: 1.7;
    word-break: break-word;
}

/* 对比视图增强（2026-08-31）：变更摘要 / 首图提示 / 图片替换与顺序角标 / caption / 行级 diff / mentions */
.pm-dc-cmp-sum {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    color: #d46b08;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 8px;
    padding: 6px 10px;
    margin-bottom: 8px;
}

.pm-dc-cmp-first {
    border: 1px solid #ffd591;
    background: #fff7e6;
    border-radius: 8px;
    padding: 8px;
    margin-bottom: 8px;
}

.pm-dc-cmp-first-title {
    font-size: 13px;
    font-weight: 700;
    color: #d46b08;
    margin-bottom: 6px;
}

.pm-dc-cmp-first-row { display: flex; gap: 6px; }

.pm-dc-cmp-first-cell { flex: 1; min-width: 0; }

.pm-dc-cmp-imgwrap { position: relative; }

.pm-dc-cmp-img.pm-dc-cmp-repl { border-color: #faad14; }

.pm-dc-cmp-repl-tag {
    position: absolute;
    top: 6px;
    left: 6px;
    background: #faad14;
    color: #fff;
    font-size: 11px;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 4px;
    z-index: 2;
}

.pm-dc-cmp-pos {
    position: absolute;
    top: 6px;
    right: 6px;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    font-size: 11px;
    line-height: 1;
    padding: 3px 7px;
    border-radius: 10px;
    z-index: 2;
}

.pm-dc-cmp-num {
    position: absolute;
    bottom: 6px;
    right: 6px;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    font-size: 11px;
    line-height: 1;
    padding: 2px 6px;
    border-radius: 8px;
    z-index: 2;
}

.pm-dc-cmp-repl-tag-lg { color: #faad14; }

.pm-dc-cmp-cap-changed {
    background: #fff7e6;
    color: #d46b08;
    border-radius: 4px;
    padding: 2px 4px;
}

/* 正文行级 diff：删除=灰底删除线 / 新增=绿底 / 修改对差异子串=橙 */
.pm-dc-cmp-tdel {
    background: #fafafa;
    color: #999;
    text-decoration: line-through;
}

.pm-dc-cmp-tadd {
    background: #f6ffed;
    color: #333;
}

.pm-dc-cmp-tgap {
    background: transparent;
    border-color: transparent;
}

.pm-dc-cmp-wchg {
    background: #fff1b8;
    border-radius: 3px;
    padding: 0 2px;
}

.pm-dc-mention.pm-dc-cmp-add {
    background: #f6ffed;
    border-radius: 8px;
    padding: 2px 6px;
    color: #389e0d;
}

.pm-dc-mention.pm-dc-cmp-del {
    color: #bbb;
    text-decoration: line-through;
}

/* 顺序对比横条（2026-08-31）：两版各按自身顺序铺编号缩略图，顺序差异一眼可见 */
.pm-dc-cmp-ord {
    border: 1px solid #91d5ff;
    background: #e6f7ff;
    border-radius: 8px;
    padding: 8px;
    margin-bottom: 8px;
}

.pm-dc-cmp-ord-title {
    font-size: 13px;
    font-weight: 700;
    color: #0958d9;
    margin-bottom: 6px;
}

.pm-dc-cmp-ord-row {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
    overflow-x: auto;
}

.pm-dc-cmp-ord-row:last-child { margin-bottom: 0; }

.pm-dc-cmp-ord-label {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    color: #666;
    margin-right: 2px;
}

.pm-dc-cmp-ord-item {
    position: relative;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
}

.pm-dc-cmp-ord-item img {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.pm-dc-cmp-ord-item i {
    position: absolute;
    top: -4px;
    left: -4px;
    background: #0958d9;
    color: #fff;
    font-size: 10px;
    font-style: normal;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 4px;
}

/* 运营草稿列表 */
.pm-dc-filters {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.pm-dc-filter {
    border: 1px solid #eee;
    background: #fff;
    border-radius: 16px;
    padding: 5px 14px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
}

.pm-dc-filter.active {
    background: #ff2442;
    border-color: #ff2442;
    color: #fff;
}

.pm-dc-row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 8px;
    cursor: pointer;
}

.pm-dc-row:active { background: #fafafa; }
.pm-dc-row-main { flex: 1; min-width: 0; }
.pm-dc-row-name { font-size: 15px; font-weight: 600; color: #333; }
/* 达人名跳达人库详情（2026-09-21）：保持原色不喧宾夺主，悬停下划线提示可点 */
.pm-dc-name-link { cursor: pointer; color: inherit; }
.pm-dc-name-link:hover { color: #FF2442; text-decoration: underline; }
.pm-dc-row-tier { font-size: 12px; color: #999; font-weight: 400; }
.pm-dc-row-meta { font-size: 12px; color: #999; margin-top: 2px; }

/* 版本徽章「第N版」（2026-09-23）：第一版低调灰，≥2 版主题红加重（多版本才需区分） */
.pm-dc-ver-badge {
    display: inline-block;
    font-size: 12px;
    line-height: 1.2;
    padding: 1px 7px;
    margin-left: 6px;
    border-radius: 9px;
    border: 1px solid #ccc;
    color: #666;
    background: #f7f7f7;
    vertical-align: 1px;
}
.pm-dc-ver-badge.multi {
    border-color: #ff2442;
    color: #ff2442;
    background: #fff1f2;
    font-weight: 600;
}

/* 运营详情双栏（PC），手机端自动堆叠 */
.pm-dc-detail-grid { display: block; }

@media (min-width: 900px) {
    .pm-dc-detail-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        align-items: start;
    }
    /* PC 端草稿界面收窄为居中面板：笔记是手机形态内容，全宽太散。
       三端共用（运营/达人/商家/分享页），面板宽 920px，两侧暗化 */
    .pm-dc-overlay {
        background: rgba(15, 15, 20, 0.45);
        align-items: center;
    }
    .pm-dc-overlay-head,
    .pm-dc-overlay-body {
        width: 1000px;
        max-width: calc(100vw - 48px);
    }
    .pm-dc-overlay-head {
        border-radius: 14px 14px 0 0;
        margin-top: 3vh;
    }
    .pm-dc-overlay-body {
        background: #f7f8fa;
        border-radius: 0 0 14px 14px;
        margin-bottom: 3vh;
        padding: 16px 24px;
    }
}

/* 头部左聚（2026-09-20 owner 拍板）：达人名称/状态徽章/「达人端 ↗」贴成一簇，不再被标题 flex:1 挤到最右；仅运营审稿工作台 */
.pm-dc-overlay-ops .pm-dc-overlay-title { flex: 0 1 auto; min-width: 0; }

/* ===== 运营审稿工作台（2026-09-18 方案A2v2，仅 .pm-dc-overlay-ops，不影响商家/达人/分享端共用面板）=====
   头/底固定；宽屏三列（图 | 文 | AI+评论）各自独立滚动：图片限高随视口放大，正文整列高可见；
   中屏左列图上文下（文区独立滚）；底栏紧凑单行省纵向空间 */
@media (min-width: 900px) {
    .pm-dc-overlay-ops .pm-dc-overlay-head,
    .pm-dc-overlay-ops .pm-dc-overlay-body {
        width: 1160px;
        max-width: calc(100vw - 24px);
    }
    /* 收窄外框 chrome，把高度让给图片（v3） */
    .pm-dc-overlay-ops .pm-dc-overlay-head { margin-top: 12px; padding: 8px 14px; }
    .pm-dc-overlay-ops .pm-dc-overlay-body {
        display: flex;
        flex-direction: column;
        overflow: hidden;
        margin-bottom: 12px;
        padding: 12px 20px;
    }
    /* 空图注行收起（有图注时自动恢复） */
    .pm-dc-overlay-ops .pm-dc-caption:empty { display: none; }
    /* 对比模式 / 无版本空态：回到整页滚动 */
    .pm-dc-overlay-ops .pm-dc-overlay-body.pm-dc-body-scroll {
        display: block;
        overflow-y: auto;
    }
    .pm-dc-overlay-ops .pm-dc-finalized { flex-shrink: 0; }
    /* 900–1239px 中屏：左列=图（固定）+文（独立滚动），右列=AI+评论 */
    .pm-dc-overlay-ops .pm-dc-detail-grid {
        flex: 1;
        min-height: 0;
        grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
        grid-template-rows: minmax(0, auto) minmax(0, 1fr);
        align-items: stretch;
    }
    .pm-dc-overlay-ops .pm-dc-col-note-img {
        grid-column: 1; grid-row: 1;
        margin: 0;
        min-height: 0;
        overflow-y: auto;
    }
    .pm-dc-overlay-ops .pm-dc-col-note-text {
        grid-column: 1; grid-row: 2;
        margin: 0;
        min-height: 0;
        overflow-y: auto;
    }
    .pm-dc-overlay-ops .pm-dc-col-side {
        grid-column: 2; grid-row: 1 / 3;
        display: flex;
        flex-direction: column;
        gap: 12px;
        min-width: 0;
        min-height: 0;
    }
    /* 右栏=AI 初审卡独占（2026-09-19 v3 owner 拍板：评论区移至正文列底部随正文滚动）：撑满整列、列内自滚 */
    .pm-dc-overlay-ops .pm-dc-col-side .pm-ai-card {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        margin: 0;
    }
    /* 写评论卡固定右栏底部（2026-09-19 v4 owner 拍板：已有评论随正文滚，新增评论跟 AI 初审一列）：不收缩，AI 卡占剩余空间 */
    .pm-dc-overlay-ops .pm-dc-col-side .pm-dc-col-cform { flex-shrink: 0; margin: 0; }
    /* 评论表单紧凑化（仅运营审稿工作台）：按钮一行，输入框独占一行，省出高度给评论列表 */
    .pm-dc-overlay-ops .pm-dc-cform { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
    .pm-dc-overlay-ops .pm-dc-cform-btn { order: 2; flex: 0 0 auto; }
    .pm-dc-overlay-ops .pm-dc-cform-text { order: 3; flex: 1 1 100%; margin-bottom: 0; }
    .pm-dc-overlay-ops .pm-dc-cover-wrap { max-height: max(300px, calc(100vh - 360px)); }
    /* 底栏紧凑单行：判决按钮保持主视觉，其余自动宽度，省出纵向空间给图片 */
    .pm-dc-overlay-ops .pm-dc-actions-sticky {
        position: static;
        bottom: auto;
        flex-shrink: 0;
        margin-top: 8px;
        margin-bottom: 0;
        padding: 8px 0 8px;
    }
    .pm-dc-overlay-ops .pm-dc-actions-wrap { gap: 8px; }
    .pm-dc-overlay-ops .pm-dc-actions-wrap .pm-m-btn {
        flex: 0 0 auto;
        padding: 10px 18px;
        font-size: 14px;
    }
    .pm-dc-overlay-ops .pm-dc-actions-wrap .pm-m-btn-ok { min-width: 180px; }
    /* 对比模式整体收窄：内容列居中限宽 780px，图片随单元格自然填满、两图紧挨对照（v4，取代 imgwrap 限宽） */
    .pm-dc-overlay-ops .pm-dc-cmp-bar,
    .pm-dc-overlay-ops #odfc-cmp-body { max-width: 780px; margin-left: auto; margin-right: auto; }
}

/* 宽屏（≥1240px）升三列：图 | 文+评论 | AI，图片列加宽 + 限高放到视口极限、正文整列可见 */
@media (min-width: 1240px) {
    .pm-dc-overlay-ops .pm-dc-overlay-head,
    .pm-dc-overlay-ops .pm-dc-overlay-body { width: 1340px; }
    .pm-dc-overlay-ops .pm-dc-detail-grid {
        grid-template-columns: minmax(0, 34fr) minmax(0, 28fr) minmax(0, 38fr);
        grid-template-rows: minmax(0, 1fr);
    }
    .pm-dc-overlay-ops .pm-dc-col-note-img { grid-column: 1; grid-row: 1; }
    .pm-dc-overlay-ops .pm-dc-col-note-text { grid-column: 2; grid-row: 1; }
    .pm-dc-overlay-ops .pm-dc-col-side { grid-column: 3; grid-row: 1; }
    .pm-dc-overlay-ops .pm-dc-cover-wrap { max-height: max(420px, calc(100vh - 220px)); }
}

/* 评论区内联在笔记正文列底部（2026-09-19 v3，owner 拍板）：随正文一起滚动，相当于图文下方的评论区，不再是右栏固定小窗；全宽度生效（含手机端堆叠） */
.pm-dc-overlay-ops .pm-dc-col-comments {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
}

/* 通用弹窗（草稿模块动态弹窗，层级高于覆盖层） */
.pm-dc-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}

.pm-dc-modal-box {
    background: #fff;
    border-radius: 14px;
    width: 100%;
    max-width: 520px;
    max-height: 86vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pm-dc-modal-body {
    padding: 16px;
    overflow-y: auto;
    font-size: 14px;
}

/* 手机框弹层（2026-09-20）：CRM 内嵌 iframe 固定 462px 宽手机视角，不依赖浏览器弹窗特征；
   所有手机端分享页（商家端/接待端/报名/达人任务卡/达人统一入口/结案报告）内部预览统一用 #pm-phone-modal */
#pm-phone-modal .pm-dc-modal-box {
    max-width: 462px;
    width: 462px;
    height: min(900px, 92vh);
    max-height: 92vh;
}

#pm-phone-modal .pm-dc-modal-body {
    padding: 0;
    overflow: hidden;
    flex: 1;
    display: flex;
    min-height: 0;
}

#pm-phone-modal .pm-dc-modal-body iframe {
    flex: 1;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.pm-dc-share-row { display: flex; gap: 8px; }

.pm-dc-share-row input {
    flex: 1;
    min-width: 0;
    padding: 9px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 12px;
    background: #f5f5f5;
}

/* 存储清理表格 */
.pm-dc-storage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.pm-dc-storage-table th, .pm-dc-storage-table td {
    padding: 8px 6px;
    border-bottom: 1px solid #f0f0f0;
    text-align: left;
    white-space: nowrap;
}

.pm-dc-storage-table th { color: #999; font-weight: 400; font-size: 12px; }
.pm-dc-storage-due { color: #cf1322; }

/* ---------- 草稿图雷同检测（2026-09-20，PRD: docs/PRD-草稿图片雷同检测.md） ---------- */
/* 红线：本区块样式只服务运营端（审稿工作台角标 + 项目详情雷同面板），商家/达人/分享页无接触 */
.pm-dc-dup-badge {
    position: absolute;
    left: 8px;
    top: 8px;
    z-index: 3;
    border: 0;
    border-radius: 12px;
    padding: 3px 9px;
    font-size: 12px;
    line-height: 1.6;
    color: #fff;
    background: rgba(207, 19, 34, .92);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
    cursor: pointer;
}

.pm-dc-slide { position: relative; }

/* 草稿图编号角标 P{n}（2026-09-29，PRD: docs/PRD-草稿图片稳定编号.md）：运营审稿 / 商家预览 /
   达人端 / 分享页 / 全屏查看共用；与雷同角标（左上）错角摆放，放左下不与「1/N」计数打架。 */
.pm-dc-img-no {
    position: absolute;
    left: 8px;
    bottom: 8px;
    z-index: 2;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 11px;
    line-height: 1;
    padding: 3px 8px;
    border-radius: 10px;
}

.pm-dc-img-no-zoom { left: 14px; bottom: 14px; font-size: 14px; padding: 5px 11px; }

/* 实况照片角标（审稿看图界面共用：运营工作台/商家抽屉/分享页/达人预览，2026-10-14）：
   达人上传 Live Photo 时落库 live:true，此处提示审稿人「看到的是静态帧」；右下与 P 编号错角 */
.pm-dc-live {
    position: absolute;
    right: 8px;
    bottom: 8px;
    z-index: 2;
    background: rgba(124, 58, 237, .85);
    color: #fff;
    font-size: 11px;
    line-height: 1;
    padding: 3px 8px;
    border-radius: 10px;
}

.pm-dc-live-zoom { right: 14px; bottom: 14px; font-size: 14px; padding: 5px 11px; }

.pm-dc-dup-notice {
    margin-bottom: 8px;
    padding: 6px 10px;
    font-size: 12px;
    color: #cf1322;
    background: #fff1f0;
    border: 1px solid #ffccc7;
    border-radius: 6px;
}

.pm-dc-dup-list { display: flex; flex-direction: column; gap: 14px; }

.pm-dc-dup-cmp {
    display: grid;
    grid-template-columns: 1fr 54px 1fr;
    gap: 8px;
    align-items: center;
    padding-bottom: 12px;
    border-bottom: 1px solid #f0f0f0;
}

.pm-dc-dup-cmp-side { text-align: center; min-width: 0; }

.pm-dc-dup-cmp-side img {
    width: 100%;
    max-height: 220px;
    object-fit: contain;
    background: #f5f5f5;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
}

.pm-dc-dup-cmp-name {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-dc-dup-cmp-mid { text-align: center; color: #999; font-size: 12px; }
.pm-dc-dup-cmp-mid b { display: block; font-size: 18px; color: #cf1322; }
.pm-dc-dup-cmp-act {
    grid-column: 1 / -1;
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

.pm-dup-loading { color: #999; padding: 8px 0; }

/* 审稿协作面内嵌折叠区块（2026-09-20 并入审稿协作面，原独立工作面撤销；仍仅运营三角色渲染） */
.pm-dup-inline {
    margin-bottom: 10px;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    background: #fafafa;
}

.pm-dup-inline.has-open { border-color: #ffd591; background: #fffbe6; }

.pm-dup-inline-barrow {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px;
}

.pm-dup-inline-bar {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: none;
    padding: 4px 0;
    font-size: 13px;
    color: #333;
    cursor: pointer;
    text-align: left;
}

.pm-dup-inline-arrow { color: #999; }

.pm-dup-inline-status { color: #888; font-size: 12px; }
.pm-dup-inline.has-open .pm-dup-inline-status { color: #d46b08; font-weight: 600; }

.pm-dup-inline-acts { flex-shrink: 0; display: flex; gap: 6px; }

.pm-dup-inline-body {
    padding: 0 10px 10px;
    border-top: 1px solid #f0f0f0;
}

.pm-dup-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.pm-dup-meta { font-size: 13px; color: #666; }
.pm-dup-meta b { color: #333; }

.pm-dup-cfg {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 8px 0;
    padding: 10px 12px;
    background: #fafafa;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    font-size: 13px;
}

.pm-dup-cfg label { display: flex; align-items: center; gap: 5px; color: #333; }
.pm-dup-hint { color: #999; font-size: 12px; }

.pm-dup-summary { margin: 10px 0 6px; font-size: 13px; color: #666; }

.pm-dup-group {
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid #f0f0f0;
    border-left: 3px solid #faad14;
    border-radius: 8px;
    background: #fff;
}

.pm-dup-group-confirmed { border-left-color: #cf1322; }
.pm-dup-group-dismissed { border-left-color: #d9d9d9; opacity: .72; }

.pm-dup-group-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pm-dup-group-meta { font-size: 12px; color: #999; }

.pm-dup-chip {
    font-size: 12px;
    padding: 1px 8px;
    border-radius: 10px;
    background: #fff7e6;
    color: #d48806;
    border: 1px solid #ffe7ba;
}

.pm-dup-chip-confirmed { background: #fff1f0; color: #cf1322; border-color: #ffccc7; }
.pm-dup-chip-dismissed { background: #f5f5f5; color: #888; border-color: #e8e8e8; }

.pm-dup-thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }

.pm-dup-thumb { width: 104px; text-align: center; }

.pm-dup-thumb img {
    width: 104px;
    height: 104px;
    object-fit: cover;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #f5f5f5;
}

.pm-dup-thumb-name {
    display: block;
    margin: 4px 0;
    font-size: 12px;
    color: #666;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-dup-pairs { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }

.pm-dup-pair {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 13px;
    color: #333;
}

.pm-dup-pair-dist { color: #cf1322; font-size: 12px; }
.pm-dup-pair-dismissed .pm-dup-pair-dist { color: #999; }
.pm-dup-pair-done { color: #999; font-size: 12px; }

/* 达人端入口卡片 / 旧方式折叠 */
.pm-dc-entry p { margin: 6px 0 10px; }

.pm-dc-old { margin: 10px 12px 0; }

.pm-dc-old summary {
    color: #bbb;
    font-size: 13px;
    cursor: pointer;
    text-align: center;
    padding: 6px;
}

.pm-dc-old .pm-i-card { margin: 8px 0 0; }

/* 分享页头部 */
.pm-dc-share-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 14px 4px;
}

/* 商家端草稿列表标题 */
.pm-dc-list-title {
    font-size: 13px;
    color: #999;
    margin: 14px 0 8px;
    font-weight: 600;
}

.pm-dc-card { cursor: pointer; }

/* 图片全屏查看（横滑切换 + 下滑/单击关闭） */
.pm-dc-zoom {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 3000;
    display: flex;
    align-items: stretch;
    justify-content: center;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

.pm-dc-zoom-wrap {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.pm-dc-zoom-track { height: 100%; }

.pm-dc-zoom-slide img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    -webkit-user-drag: none;
}

.pm-dc-zoom .pm-dc-cover-btn { position: absolute; }

.pm-dc-zoom-dots { bottom: 30px; }

.pm-dc-zoom-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 22px;
    cursor: pointer;
}


/* 项目删除入口（红色描边，低调但可找到） */
.btn-danger-outline {
    background: #fff;
    color: #cf1322;
    border: 1px solid #ffccc7;
}

.btn-danger-outline:hover {
    background: #fff1f0;
    border-color: #ffa39e;
}

.btn-danger-outline:disabled {
    color: #ffa39e;
    background: #fafafa;
    cursor: not-allowed;
}

.pm-delproj-warn {
    background: #fff1f0;
    border: 1px solid #ffccc7;
    color: #cf1322;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 600;
    margin-top: 12px;
}

.pm-delproj-name {
    background: #f7f8fa;
    border: 1px dashed #d9d9d9;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    text-align: center;
    user-select: all;
}

/* 看板/表格折叠（筛选结果 >50 自动折叠） */
.pm-kanban-more {
    margin: 6px 4px 2px;
    padding: 8px 10px;
    text-align: center;
    font-size: 12px;
    color: #576b95;
    background: #f5f7fa;
    border: 1px dashed #d5dce6;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
}
.pm-kanban-more:hover { background: #eef1f6; color: #3b5678; }
.pm-table-more {
    text-align: center;
    padding: 10px;
    font-size: 12px;
    color: #576b95;
    background: #f5f7fa;
    cursor: pointer;
    user-select: none;
}
.pm-table-more:hover { background: #eef1f6; color: #3b5678; }

/* 商家端已发布列表 */
.pm-m-pub-card { padding: 12px; }
.pm-m-pub-head { display: flex; align-items: center; gap: 10px; }
.pm-m-pub-info { flex: 1; min-width: 0; }
.pm-m-pub-info .pm-m-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pm-m-pub-metrics { display: flex; gap: 12px; margin-top: 8px; font-size: 12px; color: #666; flex-wrap: wrap; }
/* 主笔记 + 同步分发 chips 同行（flex 换行兜底窄屏） */
.pm-m-pub-links { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin-top: 10px; }
.pm-m-pub-link {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 4px 12px;
    font-size: 13px; font-weight: 500; line-height: 20px;
    color: #ff2442; background: #fff0f2; border-radius: 999px;
    text-decoration: none;
}
/* 主任务笔记胶囊：按主平台品牌色实心（pm-badge-xhs/dianping/douyin 供色） */
a.pm-m-pub-main {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 4px 12px;
    font-size: 13px; font-weight: 500; line-height: 20px;
    border-radius: 999px;
    text-decoration: none;
}
a.pm-m-pub-main:hover { opacity: 0.85; }
/* 同步分发内联组：与主笔记胶囊同行 */
.pm-m-sync-inline { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.pm-m-sync-inline .pm-m-meta { font-size: 12px; }
.pm-m-sync-inline .pm-sync-chip { margin-left: 0; }
.pm-m-published-list .pm-m-card + .pm-m-card { margin-top: 10px; }
.pm-m-pub-new {
    display: inline-block; padding: 1px 6px; font-size: 11px; line-height: 16px;
    color: #fff; background: #fa5151; border-radius: 8px; font-weight: 500;
}

/* ---------- 结案报告（公开页 / 商家 tab 共用，pm-rp-*） ---------- */
.pm-rp { max-width: 640px; margin: 0 auto; padding: 12px 12px 28px; }
.pm-rp-hero {
    background: linear-gradient(135deg, #FF2442 0%, #ff6b81 100%);
    color: #fff; border-radius: 16px; padding: 24px 18px 18px; text-align: center;
}
.pm-rp-brand { font-size: 12px; opacity: 0.85; letter-spacing: 1px; }
.pm-rp-title { font-size: 21px; font-weight: 700; margin-top: 8px; line-height: 1.35; }
.pm-rp-sub { font-size: 14px; opacity: 0.92; margin-top: 4px; }
.pm-rp-tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 12px; }
.pm-rp-tag {
    font-size: 12px; padding: 3px 10px; border-radius: 12px;
    background: rgba(255, 255, 255, 0.18); color: #fff;
}
.pm-rp-asof { font-size: 11px; opacity: 0.8; margin-top: 12px; }

.pm-rp-stats {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px;
}
.pm-rp-stat {
    background: #fff; border-radius: 12px; padding: 14px 6px; text-align: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.pm-rp-stat-val { font-size: 20px; font-weight: 700; color: #222; }
.pm-rp-stat-label { font-size: 11px; color: #999; margin-top: 4px; }
.pm-rp-top-note {
    margin-top: 10px; background: #fff7e6; border: 1px solid #ffd591; color: #ad4e00;
    border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.5;
}

.pm-rp-sec {
    background: #fff; border-radius: 12px; padding: 14px; margin-top: 12px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.pm-rp-sec-title { font-size: 15px; font-weight: 700; color: #222; margin-bottom: 12px; }

.pm-rp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pm-rp-table th, .pm-rp-table td { padding: 8px 6px; text-align: center; border-bottom: 1px solid #f2f2f2; }
.pm-rp-table th { color: #999; font-weight: 500; font-size: 12px; }
.pm-rp-table tr:last-child td { border-bottom: none; }

.pm-rp-kol-wall { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 8px; }
.pm-rp-kol { text-align: center; min-width: 0; }
.pm-rp-avatar {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%; overflow: hidden;
    background: #ffe4e8; color: #FF2442; font-size: 18px; font-weight: 600;
    vertical-align: middle; flex: none;
}
.pm-rp-avatar i { font-style: normal; line-height: 1; }
.pm-rp-avatar img {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.pm-rp-kol-name {
    font-size: 12px; color: #333; margin-top: 6px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pm-rp-kol-tier { font-size: 11px; color: #999; margin-top: 2px; }

/* 结案报告长列表折叠：展开/收起按钮（2026-09-19） */
.cr-more-box { margin-top: 12px; }
.pm-rp-notes.cr-more-box { margin-top: 0; }
.cr-more-btn {
    display: block; margin: 10px auto 0; padding: 6px 18px;
    border: 1px solid #f0d3d8; border-radius: 999px; background: #fff;
    color: #FF2442; font-size: 13px; cursor: pointer;
}
.cr-more-btn:active { background: #fff5f6; }

.pm-rp-tier-head {
    font-size: 13px; font-weight: 700; color: #FF2442; margin: 10px 0 8px;
}
.pm-rp-tier-head:first-of-type { margin-top: 0; }
.pm-rp-notes { display: flex; flex-direction: column; gap: 10px; margin-bottom: 6px; }
.pm-rp-note {
    display: flex; gap: 10px; border: 1px solid #f0f0f0; border-radius: 10px;
    padding: 10px; text-decoration: none; color: inherit; background: #fff;
}
.pm-rp-note:active { background: #fafafa; }
.pm-rp-note-cover {
    width: 72px; height: 96px; border-radius: 8px; overflow: hidden; flex: none; background: #f5f5f5;
}
.pm-rp-note-cover img { width: 100%; height: 100%; object-fit: cover; }
.pm-rp-note-body { flex: 1; min-width: 0; }
.pm-rp-note-title {
    font-size: 14px; font-weight: 600; color: #222; line-height: 1.4;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pm-rp-note-meta {
    display: flex; align-items: center; gap: 6px; margin-top: 6px;
    font-size: 12px; color: #666;
}
.pm-rp-note-meta .pm-rp-avatar { width: 20px; height: 20px; font-size: 11px; }
.pm-rp-note-date { color: #999; }
.pm-rp-note-data { display: flex; gap: 12px; margin-top: 8px; font-size: 12px; color: #666; flex-wrap: wrap; }

.pm-rp-sched { padding: 10px 0; border-bottom: 1px solid #f5f5f5; }
.pm-rp-sched:last-child { border-bottom: none; }
.pm-rp-sched-date { font-size: 13px; font-weight: 600; color: #333; margin-bottom: 8px; }
.pm-rp-sched-members { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-rp-sched-m {
    display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #666;
    background: #f7f7f7; border-radius: 16px; padding: 4px 10px 4px 4px;
}
.pm-rp-sched-m.arrived { color: #389e0d; background: #f0f9eb; }
.pm-rp-sched-m .pm-rp-avatar { width: 24px; height: 24px; font-size: 12px; }

.pm-rp-summary { font-size: 14px; color: #333; line-height: 1.8; white-space: normal; }

.pm-rp-locked { text-align: center; padding: 50px 20px; color: #666; }
.pm-rp-locked-icon { font-size: 42px; margin-bottom: 12px; }
.pm-rp-locked-sub { color: #999; font-size: 13px; margin-top: 6px; }

/* 运营端报告弹窗状态行 */
#pm-report-modal .pm-dc-modal-box { max-width: 480px; }

/* 通知设置弹窗（宽屏表格） */
#pm-notify-modal .pm-dc-modal-box { max-width: 920px; }
#pm-notify-modal .pm-dc-modal-body { padding: 20px; }
.pm-notify-section { margin-bottom: 20px; }
.pm-notify-section h4 {
    font-size: 15px;
    font-weight: 700;
    color: #222;
    margin: 0 0 4px;
}
.pm-notify-section .pm-notify-desc { color: #888; font-size: 12px; margin: 0 0 10px; }
.pm-notify-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    overflow: hidden;
}
.pm-notify-table th {
    background: #fafafa;
    text-align: left;
    padding: 8px 10px;
    font-weight: 600;
    color: #555;
    border-bottom: 1px solid #eee;
}
.pm-notify-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #f5f5f5;
    vertical-align: middle;
}
.pm-notify-table tr:last-child td { border-bottom: none; }
.pm-notify-table input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 8px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
}
.pm-notify-test-btn {
    background: none;
    border: none;
    color: #1890ff;
    cursor: pointer;
    font-size: 12px;
    white-space: nowrap;
    padding: 0;
}
.pm-notify-test-btn:hover { text-decoration: underline; }

/* ========== 结案报告独立板块（销售版） ========== */

/* 状态徽章 */
.cr-badge {
    display: inline-block;
    font-size: 12px;
    padding: 2px 10px;
    border-radius: 10px;
    line-height: 18px;
    white-space: nowrap;
}
.cr-badge-draft { background: #f0f0f0; color: #888; }
.cr-badge-published { background: #e6f7e9; color: #2c9e4b; }
.cr-badge-case { background: #fff7e6; color: #d48806; }

/* 列表卡片操作区 */
.cr-card-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}

/* 点星来源提示条 */
.cr-source-banner {
    background: #fffbe6;
    border: 1px solid #ffe58f;
    color: #ad6800;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    margin-bottom: 16px;
}

/* biz 模式实时预览（商单项目绑定报告：与商家看到的页面一致，只读） */
.cr-biz-live-preview {
    border: 1px dashed #d9d9d9;
    border-radius: 10px;
    background: #fafafa;
    padding: 10px;
    max-height: 560px;
    overflow: auto;
    pointer-events: none;
}
.cr-biz-live-preview .pm-rp { margin: 0; }

/* 编辑页表单（收窄对齐案例编辑页 max-width:900px） */
#cr-edit-body { max-width: 900px; margin: 0 auto; }

/* 达人详情页 PC 端收窄（对齐案例编辑页 max-width:900px） */
#app-detail { max-width: 900px; margin: 0 auto; }
.cr-form { padding-bottom: 90px; }
.cr-sec {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 16px;
}
.cr-sec-title {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 14px;
}

/* 编辑页 AI 辅助区（对齐案例编辑页交互，沿用 cr-sec 视觉语言） */
.cr-wb-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    margin-bottom: 16px;
}
.cr-wb-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.cr-wb-on { background: #e6f7e9; color: #2c9e4b; border: 1px solid #b7eb8f; }
.cr-wb-on .cr-wb-dot { background: #52c41a; }
.cr-wb-off { background: #f5f5f5; color: #888; border: 1px solid #eee; }
.cr-wb-off .cr-wb-dot { background: #bbb; }
.cr-ai-box {
    background: #fafafa;
    border: 1px dashed #ddd;
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 6px;
}
.cr-ai-title { font-size: 14px; font-weight: 600; color: #1a1a1a; }
.cr-ai-hint { font-size: 12px; color: #999; margin: 4px 0 10px; line-height: 1.6; }
.cr-ai-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cr-ai-row .cr-input { flex: 1; min-width: 220px; }
.cr-ai-status { font-size: 12px; color: #666; margin-top: 8px; line-height: 1.6; }
.btn-ai { background: #6c5ce7; border: none; color: #fff; }
.btn-ai:hover { background: #5a4bd1; color: #fff; }
.btn-ai:disabled { background: #c9c4e8; color: #fff; cursor: not-allowed; }
.cr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}
.cr-field label {
    display: block;
    font-size: 13px;
    color: #666;
    margin-bottom: 5px;
}
.cr-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    box-sizing: border-box;
    background: #fff;
    color: #333;
}
.cr-input:focus { outline: none; border-color: #FF2442; }
textarea.cr-input { resize: vertical; font-family: inherit; line-height: 1.6; }

/* 数组行（平台策略/达人/笔记） */
.cr-array-row {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}
.cr-note-row {
    background: #fafafa;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 10px;
}
.cr-cover-thumb {
    width: 96px;
    height: 64px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #eee;
}

/* 举证图片墙 */
.cr-evidence-wall {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.cr-evidence-item {
    position: relative;
    width: 110px;
    height: 110px;
}
.cr-evidence-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #eee;
}
.cr-evidence-item button {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: none;
    background: rgba(0,0,0,0.55);
    color: #fff;
    font-size: 11px;
    cursor: pointer;
    line-height: 20px;
    padding: 0;
}

/* 达人库选择弹窗结果行 */
.cr-kol-result {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    cursor: pointer;
}
.cr-kol-result:hover { background: #fff2f4; }

/* 底部固定操作栏 */
.cr-bottom-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    border-top: 1px solid #eee;
    padding: 12px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 50;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.04);
}

/* 商家查看页 / 预览共用 */
.cr-share-cover {
    margin: -20px -16px 0;
    height: 260px;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
}
.cr-share-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.cr-info-row {
    display: flex;
    gap: 10px;
    font-size: 14px;
    padding: 5px 0;
}
.cr-info-k { color: #999; white-space: nowrap; }
.cr-info-v { color: #333; flex: 1; min-width: 0; word-break: break-all; }
.cr-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}
.cr-chip {
    background: #FFF2F4;
    color: #FF2442;
    font-size: 12px;
    padding: 3px 12px;
    border-radius: 12px;
}
.cr-para {
    font-size: 14px;
    color: #333;
    line-height: 1.8;
    margin: 0 0 8px;
}
.cr-preview-wrap {
    max-height: 70vh;
    overflow: auto;
    background: #f7f7f7;
    border-radius: 8px;
    padding: 10px;
}

@media (max-width: 768px) {
    .cr-grid { grid-template-columns: 1fr; }
    .cr-array-row { flex-wrap: wrap; }
    .cr-array-row .cr-input { flex: 1 1 100%; max-width: none !important; }
    .cr-bottom-bar { padding: 10px 12px; }
    .cr-share-cover { height: 180px; }
    .cr-card-actions .btn { flex: 1 1 auto; }
}

/* ===== 结案报告分享页增强：点星数据 / 笔记瀑布流 / 图片灯箱 ===== */
.cr-dx-group-t { font-size: 13px; font-weight: 700; color: #666; margin: 14px 0 8px; }
.cr-dx-group-t:first-child { margin-top: 0; }
.cr-dx-metrics { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.cr-dx-metric { background: #fafafa; border: 1px solid #f0f0f0; border-radius: 10px; padding: 10px 12px; }
.cr-dx-metric-v { font-size: 17px; font-weight: 700; color: #FF2442; word-break: break-all; }
.cr-dx-metric-l { font-size: 11px; color: #999; margin-top: 3px; }
.cr-dx-metric-sub { font-size: 11px; color: #aaa; margin-top: 2px; }
.cr-dx-chart-box { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 10px; margin-top: 8px; min-width: 0; overflow: hidden; }
.cr-dx-chart-t { font-size: 13px; font-weight: 600; color: #333; margin-bottom: 4px; }
.cr-dx-chart { width: 100%; height: 200px; }
/* 编辑页趋势图开关：关闭态降透明提示该图不进报告页 */
.cr-dx-chart-edit.off .cr-dx-chart { opacity: 0.3; filter: grayscale(0.8); }
.cr-dx-chart-edit.off .cr-dx-chart-t { color: #bbb; }
.cr-switch { position: relative; display: inline-block; width: 38px; height: 22px; flex: none; cursor: pointer; }
.cr-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.cr-switch-ui { position: absolute; inset: 0; background: #e0e0e0; border-radius: 22px; transition: background 0.2s; pointer-events: none; }
.cr-switch-ui::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; background: #fff; border-radius: 50%; transition: left 0.2s; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.cr-switch input:checked + .cr-switch-ui { background: #FF2442; }
.cr-switch input:checked + .cr-switch-ui::after { left: 19px; }
.cr-dx-aud { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.cr-dx-aud-block { background: #fafafa; border: 1px solid #f0f0f0; border-radius: 10px; padding: 10px 12px; }
.cr-dx-aud-t { font-size: 12px; font-weight: 600; color: #666; margin-bottom: 6px; }
.cr-dx-aud-row { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; font-size: 12px; }
.cr-dx-aud-row:last-child { margin-bottom: 0; }
.cr-dx-aud-name { width: 64px; color: #666; flex: none; }
.cr-dx-aud-bar { flex: 1; background: #f0f0f0; border-radius: 3px; height: 12px; overflow: hidden; }
.cr-dx-aud-bar i { display: block; height: 100%; background: #FF2442; opacity: 0.85; border-radius: 3px; }
.cr-dx-aud-val { width: 44px; text-align: right; color: #333; flex: none; }

/* 笔记瀑布流（有首图的笔记用案例同款大卡） */
.cr-note-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 10px; }
.cr-note-card { border: 1px solid #f0f0f0; border-radius: 10px; overflow: hidden; background: #fff; cursor: pointer; text-decoration: none; color: inherit; display: block; }
.cr-note-card:active { background: #fafafa; }
.cr-note-card-cover { position: relative; background: #f5f5f5; }
.cr-note-card-cover img { width: 100%; height: auto; display: block; }
.cr-note-card-badge { position: absolute; top: 8px; right: 8px; padding: 2px 8px; background: rgba(0,0,0,0.55); border-radius: 10px; font-size: 10px; font-weight: 700; color: #fff; }
.cr-note-card-body { padding: 10px; }
.cr-note-card-title { font-size: 13px; font-weight: 600; color: #222; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cr-note-card-author { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 12px; color: #666; }
.cr-note-card-author .pm-rp-avatar { width: 20px; height: 20px; font-size: 11px; }
.cr-note-card-data { display: flex; gap: 10px; margin-top: 8px; font-size: 11px; color: #999; flex-wrap: wrap; }

/* 图片展示：点击放大灯箱 */
.pm-rp .cr-evidence-item img { cursor: zoom-in; }
.cr-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.9); display: flex; align-items: center; justify-content: center; cursor: zoom-out; }
.cr-lightbox img { max-width: 92vw; max-height: 92vh; object-fit: contain; border-radius: 4px; }

/* 结案总结富文本展示（链接/列表/图片样式） */
.pm-rp-summary a { color: #FF2442; }
.pm-rp-summary ul, .pm-rp-summary ol { margin: 6px 0; padding-left: 20px; }
.pm-rp-summary img { max-width: 100%; border-radius: 8px; margin: 6px 0; }
.pm-rp-summary p { margin: 0 0 10px; }
.pm-rp-summary p:last-child { margin-bottom: 0; }

/* 点星笔记库瀑布流（CSS 多列真瀑布流，卡片复用 cr-note-card 样式） */
#app-dianxing { max-width: 1080px; margin: 0 auto; }
.dx-note-waterfall { columns: 4 200px; column-gap: 14px; }
.dx-note-waterfall .cr-note-card { break-inside: avoid; margin-bottom: 14px; border-color: #eee; box-shadow: 0 1px 4px rgba(0,0,0,0.04); }
.dx-note-waterfall .cr-note-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.10); }
.dx-note-waterfall .cr-note-card-data { color: #222; }
/* 封面统一 3:4 占位裁切（2026-10-08，修末行缺口）：实测封面宽高比均为 0.75；
   懒加载图片原本 0 高参与多列平衡，加载后列高错位撑出缺口——固定 aspect-ratio 后
   布局期就占位，各列单卡高度一致，末行自然对齐。仅作用于笔记库，结案报告等
   复用 cr-note-card 的视图不受影响（仍按原图自然高度渲染）。 */
.dx-note-waterfall .cr-note-card-cover img { aspect-ratio: 3 / 4; object-fit: cover; }
@media (max-width: 768px) { .dx-note-waterfall { columns: 2 160px; } }

@media (max-width: 768px) {
    .cr-note-grid { grid-template-columns: repeat(2, 1fr); }
    .cr-dx-metrics { grid-template-columns: repeat(2, 1fr); }
}

/* 浏览量手绘小眼镜图标（小红书同款） */
.pm-views-ico { display: inline-block; vertical-align: -1px; margin-right: 3px; opacity: 0.75; }

/* AI 审稿规则库弹窗 */
.pm-ai-rules-list { max-height: 46vh; overflow-y: auto; margin-bottom: 14px; }
.pm-ai-group { margin-bottom: 14px; }
.pm-ai-group-title { font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 6px; }
.pm-ai-rule { border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; background: #fff; }
.pm-ai-rule.off { opacity: 0.55; background: #f8fafc; }
.pm-ai-rule-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.pm-ai-rule-head .pm-ai-cat { flex: 1; min-width: 0; padding: 4px 8px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; }
.pm-ai-toggle { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #64748b; white-space: nowrap; }
.pm-ai-content { width: 100%; padding: 6px 8px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; resize: vertical; box-sizing: border-box; font-family: inherit; }
.pm-ai-add { border-top: 1px dashed #e2e8f0; padding-top: 12px; }
.pm-ai-add-title { font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 8px; }
.pm-ai-add-row { display: flex; gap: 8px; margin-bottom: 8px; }
.pm-ai-add-row select { width: 150px; padding: 8px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; }
.pm-ai-add-row input { flex: 1; padding: 8px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; }
.pm-ai-add textarea { width: 100%; padding: 8px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; resize: vertical; box-sizing: border-box; font-family: inherit; margin-bottom: 8px; }

/* AI 初审（运营抽屉报告卡 + 列表徽标） */
.pm-ai-badge { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 8px; margin-left: 6px; vertical-align: 1px; font-weight: 500; }
.pm-ai-badge-pass { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
.pm-ai-badge-warn { background: #fffbe6; color: #d48806; border: 1px solid #ffe58f; }
.pm-ai-badge-reject { background: #fff1f0; color: #cf1322; border: 1px solid #ffa39e; }
.pm-ai-badge-failed { background: #f4f4f5; color: #71717a; border: 1px solid #d4d4d8; }
.pm-dc-row-airisk { background: #fff7f6; border-left: 3px solid #ff4d4f; }
.pm-ai-card { border: 1px solid #e2e8f0; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; background: #fafbfc; }
.pm-ai-card-head { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: #334155; flex-wrap: wrap; }
.pm-ai-card-head .btn { margin-left: auto; }
.pm-ai-meta { font-size: 12px; color: #94a3b8; font-weight: normal; }
.pm-ai-verdict { border-radius: 8px; padding: 8px 12px; font-size: 13px; margin: 8px 0; }
.pm-ai-verdict.pass { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
.pm-ai-verdict.warn { background: #fffbe6; color: #d48806; border: 1px solid #ffe58f; }
.pm-ai-verdict.reject { background: #fff1f0; color: #cf1322; border: 1px solid #ffa39e; }
.pm-ai-verdict.failed { background: #f4f4f5; color: #71717a; border: 1px solid #d4d4d8; }
.pm-ai-summary { font-size: 13px; color: #475569; margin: 6px 0; }
.pm-ai-item { font-size: 13px; color: #334155; padding: 4px 0; line-height: 1.5; }
.pm-ai-pass-line { font-size: 12px; color: #94a3b8; margin-top: 6px; }
.pm-ai-empty { font-size: 13px; color: #94a3b8; margin: 8px 0 0; }
.pm-ai-foot { font-size: 11px; color: #b0b7c3; margin-top: 8px; }

/* AI 内容质量评级（二期） */
.pm-ai-rate-excellent { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
.pm-ai-rate-good { background: #e6f4ff; color: #0958d9; border: 1px solid #91caff; }
.pm-ai-rate-needs_work { background: #fff7e6; color: #d46b08; border: 1px solid #ffd591; }
.pm-ai-quality { border-top: 1px dashed #e2e8f0; margin-top: 10px; padding-top: 10px; }
.pm-ai-quality-head { font-size: 13px; font-weight: 600; color: #334155; }
.pm-ai-quality-score { font-size: 12px; color: #64748b; font-weight: normal; }
.pm-ai-sugg { font-size: 12px; color: #64748b; margin: 2px 0 2px 20px; line-height: 1.5; }

/* 批量把关（二期） */
.pm-dc-batch-toggle { margin-left: auto; }
.pm-dc-batchbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; background: #f0f5ff; border: 1px solid #d6e4ff; border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; }
.pm-dc-batch-info { font-size: 13px; color: #334155; }
.pm-dc-batch-btn { font-size: 12px; padding: 4px 10px; border: 1px solid #d9d9d9; background: #fff; border-radius: 6px; cursor: pointer; color: #475569; }
.pm-dc-batch-btn:hover { border-color: #91caff; color: #0958d9; }
.pm-dc-batch-go { background: #1677ff; border-color: #1677ff; color: #fff; margin-left: auto; }
.pm-dc-batch-go:hover { background: #4096ff; border-color: #4096ff; color: #fff; }
.pm-dc-batch-go:disabled { opacity: .45; cursor: not-allowed; }
.pm-dc-row-check { font-size: 16px; color: #1677ff; margin-right: 8px; align-self: center; }
.pm-dc-row-check.off { color: #cbd5e1; }
.pm-dc-row-checked { background: #f0f5ff; }

/* 达人档案联系方式内联编辑（仅内部登录可见） */
.inf-contact-edit-btn { background: none; border: none; color: #FF2442; font-size: 12px; cursor: pointer; padding: 2px 4px; border-radius: 4px; }
.inf-contact-edit-btn:hover { background: #fff1f0; }

/* ===== 营销策划系统（marketing.js） ===== */
/* 「Brief 制作」tab 版心 2026-09-13 放开为与热点中心一致的全宽（看板/表格均全宽；原 920px 收窄已删除） */
/* 需求队列操作列收窄自适应 + 按钮文字不折行（沿用 notes-table 的 width:1% 收缩列惯例） */
.pm-mkt-briefs .pm-proj-table th:last-child,
.pm-mkt-briefs .pm-proj-table td:last-child { width: 1%; white-space: nowrap; }
.pm-mkt-briefs .pm-proj-table .btn { white-space: nowrap; }
/* 需求队列表格观感与全站列表拉平（2026-09-15：pm-proj-table 原为项目详情档位表设计=半粗+灰底，复用到队列后与其他板块列表观感不一致） */
.pm-mkt-briefs .pm-proj-table { background: #fff; }
.pm-mkt-briefs .pm-proj-table tbody td { font-weight: 400; }
.pm-mkt-tabs { display: flex; gap: 4px; border-bottom: 2px solid #f0f0f0; margin-bottom: 16px; flex-wrap: wrap; }
.pm-mkt-tab { background: none; border: none; padding: 10px 16px; font-size: 14px; color: #666; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.pm-mkt-tab:hover { color: var(--primary); }
.pm-mkt-tab.active { color: var(--primary); font-weight: 600; border-bottom-color: var(--primary); }
.pm-mkt-subtabs { display: flex; gap: 4px; margin-bottom: 12px; flex-wrap: wrap; }
.pm-mkt-subtab { background: #f5f5f5; border: none; padding: 6px 14px; font-size: 13px; color: #666; cursor: pointer; border-radius: 16px; }
.pm-mkt-subtab:hover { color: var(--primary); }
.pm-mkt-subtab.active { background: var(--primary-light); color: var(--primary); font-weight: 600; }

/* Brief 看板（2026-09-13，方案 A 生产阶段分列；视觉参照 .pm-kanban 但类名独立） */
.pm-mkt-board {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
    align-items: flex-start; /* 列高按内容自适应 */
}

.pm-mkt-board-col {
    flex: 1 1 0;
    min-width: 260px;
    background: #f7f8fa;
    border-radius: 10px;
    padding: 10px;
}

.pm-mkt-board-col-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin-bottom: 8px;
}

.pm-mkt-board-count {
    background: #e0e0e0;
    border-radius: 8px;
    padding: 0 6px;
    font-size: 11px;
    color: #666;
}

.pm-mkt-board-card {
    background: #fff;
    border: 1px solid #eef0f2;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
    cursor: pointer;
}

.pm-mkt-board-card:hover { border-color: var(--primary); }

.pm-mkt-board-card-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-bottom: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-mkt-board-card-sub {
    font-size: 12px;
    color: #888;
    margin-bottom: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-mkt-board-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #999;
}

.pm-mkt-board-empty { color: #ccc; text-align: center; padding: 12px 0; font-size: 12px; }
.pm-mkt-board-more { font-size: 12px; color: #999; text-align: center; padding: 6px 0 2px; cursor: pointer; }
.pm-mkt-board-more:hover { color: var(--primary); }

/* Brief 仪表盘（2026-09-13 v1.4，对标交付看板 .pmd-*；指标卡 + ECharts 图表盒，类名独立） */
.pm-mkt-dash-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }
.pm-mkt-dash-card { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 16px; text-align: center; }
.pm-mkt-dash-card-num { font-size: 28px; font-weight: 700; color: var(--primary); }
.pm-mkt-dash-card-label { font-size: 13px; color: #666; margin-top: 4px; }
.pm-mkt-dash-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; margin-bottom: 12px; }
.pm-mkt-dash-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pm-mkt-dash-box { background: #fff; border: 1px solid #eef0f2; border-radius: 10px; padding: 12px 14px; min-width: 0; }
.pm-mkt-dash-box-title { font-size: 13px; font-weight: 600; color: #555; margin-bottom: 6px; }
.pm-mkt-dash-chart { height: 260px; cursor: pointer; }

.pm-mkt-filterbar { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.pm-mkt-filterbar select { padding: 7px 10px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 13px; }
.pm-mkt-check { display: flex; align-items: center; gap: 5px; font-size: 13px; color: #666; font-weight: normal; cursor: pointer; }
.pm-mkt-check input { width: auto; margin: 0; }

.pm-mkt-badge { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 10px; white-space: nowrap; }
.pm-mkt-chip { display: inline-block; font-size: 12px; color: #666; background: #f5f5f5; border-radius: 4px; padding: 2px 8px; }

.pm-mkt-plan-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.pm-mkt-plan-card { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 14px; cursor: pointer; transition: box-shadow .15s; }
.pm-mkt-plan-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.pm-mkt-plan-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.pm-mkt-plan-merchant { font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-mkt-plan-hook { color: var(--primary); font-size: 13px; margin-bottom: 8px; line-height: 1.5; }
.pm-mkt-plan-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.pm-mkt-plan-foot { display: flex; justify-content: space-between; font-size: 12px; color: #999; }

.pm-mkt-detail-row { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px dashed #f0f0f0; font-size: 14px; }
.pm-mkt-detail-k { flex-shrink: 0; width: 96px; color: #999; font-size: 13px; }
.pm-mkt-detail-v { flex: 1; color: #333; line-height: 1.6; word-break: break-all; }

/* Brief 制作单工作台（v1.2）：评价截图网格 */
.mkt-bs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 6px 0; }
.mkt-bs-img { position: relative; aspect-ratio: 4/3; border: 1px solid #f0f0f0; border-radius: 8px; overflow: hidden; background: #fafafa; }
.mkt-bs-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mkt-bs-img-del { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; line-height: 20px; text-align: center; background: rgba(0,0,0,.55); color: #fff; border-radius: 50%; cursor: pointer; font-size: 14px; }
.mkt-bs-img-del:hover { background: rgba(0,0,0,.8); }
.mkt-bs-img-add { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #999; font-size: 22px; cursor: pointer; border: 1px dashed #d9d9d9; }
.mkt-bs-img-add:hover { color: var(--primary); border-color: var(--primary); }

.pm-mkt-form .form-group { margin-bottom: 12px; }
.pm-mkt-form label { font-size: 13px; color: #666; display: block; margin-bottom: 5px; }
.pm-mkt-form input[type="text"], .pm-mkt-form input[type="date"], .pm-mkt-form input[type="number"],
.pm-mkt-form select, .pm-mkt-form textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 13px; }
.pm-mkt-form input + input { margin-top: 6px; }

.pm-mkt-quick { background: #fafafa; border: 1px dashed #e0e0e0; border-radius: 10px; padding: 12px 14px; }
.pm-mkt-quick-title { font-size: 13px; font-weight: 600; color: #666; margin-bottom: 8px; }
.pm-mkt-quick-row { display: flex; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.pm-mkt-quick-row:last-child { margin-bottom: 0; }
.pm-mkt-quick-row input, .pm-mkt-quick-row select { padding: 7px 10px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 13px; box-sizing: border-box; }

.pm-mkt-trend-list { display: flex; flex-direction: column; gap: 8px; }
.pm-mkt-trend-row { display: flex; gap: 10px; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 12px 14px; align-items: flex-start; }
.pm-mkt-trend-row input[type="checkbox"] { margin-top: 4px; }
.pm-mkt-trend-main { flex: 1; min-width: 0; }
.pm-mkt-trend-title { font-weight: 600; font-size: 14px; margin-bottom: 5px; }
.pm-mkt-trend-title a { color: #333; text-decoration: none; }
.pm-mkt-trend-title a:hover { color: var(--primary); }
.pm-mkt-trend-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.pm-mkt-trend-point { font-size: 13px; color: #d48806; margin-top: 6px; }

.pm-mkt-watcher-list { display: flex; flex-direction: column; gap: 8px; }
.pm-mkt-watcher-row { display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 10px 14px; }
.pm-mkt-watcher-info { flex: 1; min-width: 0; }
.pm-mkt-watcher-off { opacity: .5; }

.pm-mkt-camp-list { display: flex; flex-direction: column; gap: 10px; }
.pm-mkt-camp-card { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 14px; cursor: pointer; transition: box-shadow .15s; }
.pm-mkt-camp-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.pm-mkt-camp-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.pm-mkt-camp-name { font-weight: 600; font-size: 15px; }
.pm-mkt-camp-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.pm-mkt-camp-detail { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 16px; }
.pm-mkt-plandoc { background: #fafafa; border-radius: 8px; padding: 12px; font-size: 13px; color: #555; line-height: 1.7; margin-top: 8px; }

.pm-mkt-funnel { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.pm-mkt-funnel-item { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 12px; text-align: center; }
.pm-mkt-funnel-num { font-size: 24px; font-weight: 700; }
.pm-mkt-funnel-label { font-size: 12px; color: #666; margin-top: 2px; }

.pm-mkt-item-list { display: flex; flex-direction: column; gap: 8px; }
.pm-mkt-item-row { display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 10px 14px; flex-wrap: wrap; }
.pm-mkt-item-main { flex: 1; min-width: 200px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pm-mkt-item-actions { display: flex; gap: 6px; flex-wrap: wrap; }

.pm-mkt-node-list { display: flex; flex-direction: column; gap: 8px; }
.pm-mkt-node-row { display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 12px 14px; flex-wrap: wrap; }
.pm-mkt-node-main { flex: 1; min-width: 200px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pm-mkt-node-side { display: flex; gap: 8px; align-items: center; font-size: 13px; }

@media (max-width: 640px) {
    .pm-mkt-funnel { grid-template-columns: repeat(2, 1fr); }
    .pm-mkt-detail-k { width: 72px; }
    /* Brief 看板窄屏：三列固定 260px 横向滚动，筛选行折行不溢出 */
    .pm-mkt-board-col { flex: 0 0 260px; }
    .pm-mkt-filterbar { gap: 8px; }
    .pm-mkt-filterbar select { flex: 1 1 130px; max-width: 100%; }
    /* Brief 仪表盘窄屏：图表单列堆叠 */
    .pm-mkt-dash-grid, .pm-mkt-dash-grid3 { grid-template-columns: 1fr; }
    .pm-mkt-dash-chart { height: 220px; }
}

/* ---------- 项目小记（右侧栏，2026-09-03） ---------- */
/* 项目详情页容器放宽（仅详情页激活且小记栏未折叠时）；小记折叠后回落原 1200 宽度 */
/* 项目详情工作台：拉宽容器（2026-09-18 二期，owner 拍板——工作界面宽度拉开，右栏展开/收起同宽） */
.container:has(#app-pm-detail.active) { max-width: 1500px; }
.pm-detail-layout { display: flex; gap: 16px; align-items: flex-start; }
.pm-detail-main { flex: 1; min-width: 0; }
.pm-memos-aside { width: 300px; flex-shrink: 0; position: sticky; top: 12px; }
.pm-memos-box { background: #fff; border: 1px solid #eee; border-radius: 8px; display: flex; flex-direction: column; max-height: calc(100vh - 24px); }
.pm-memos-title { padding: 12px 14px 10px; font-weight: 600; font-size: 15px; border-bottom: 1px solid #f0f0f0; display: flex; justify-content: space-between; align-items: center; }
.pm-memos-fold { background: none; border: none; color: #bbb; cursor: pointer; font-size: 15px; line-height: 1; padding: 2px 4px; flex-shrink: 0; }
.pm-memos-fold:hover { color: #333; }
/* 折叠态：侧栏收成细条，主区域 flex:1 自动变宽 */
.pm-memos-expand { display: none; }
.pm-memos-aside.collapsed { width: 44px; }
.pm-memos-aside.collapsed .pm-memos-box { display: none; }
.pm-memos-aside.collapsed .pm-memos-expand {
    display: block; width: 44px; min-height: 148px; padding: 14px 0;
    background: #fff; border: 1px solid #eee; border-radius: 8px; cursor: pointer;
    writing-mode: vertical-rl; letter-spacing: 3px; font-size: 13px; color: #666;
}
.pm-memos-aside.collapsed .pm-memos-expand:hover { color: #FF2442; border-color: #FF2442; }
.pm-memos-editor { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; }
.pm-memos-editor textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 60px; max-height: 160px; border: 1px solid #ddd; border-radius: 6px; padding: 8px; font-size: 13px; font-family: inherit; line-height: 1.5; }
.pm-memos-editor textarea:focus { outline: none; border-color: #FF2442; }
.pm-memos-editor-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.pm-memos-list { overflow-y: auto; padding: 2px 12px 8px; }
.pm-memos-empty { color: #999; font-size: 13px; padding: 18px 0; text-align: center; }
.pm-memo-item { padding: 10px 0; border-bottom: 1px dashed #f0f0f0; }
.pm-memo-item:last-child { border-bottom: none; }
.pm-memo-meta { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #999; margin-bottom: 4px; }
.pm-memo-del { background: none; border: none; color: #ccc; cursor: pointer; font-size: 12px; padding: 0 2px; line-height: 1; }
.pm-memo-del:hover { color: #ff4d4f; }
.pm-memo-content { font-size: 13px; line-height: 1.6; color: #333; white-space: pre-wrap; word-break: break-word; }
.pm-memo-ops { display: inline-flex; gap: 4px; align-items: center; }
.pm-memo-edit-btn { background: none; border: none; color: #ccc; cursor: pointer; font-size: 12px; padding: 0 2px; line-height: 1; }
.pm-memo-edit-btn:hover { color: #FF2442; }
.pm-memo-edited { color: #bbb; font-size: 11px; }
.pm-memo-edit textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 60px; max-height: 160px; border: 1px solid #ddd; border-radius: 6px; padding: 8px; font-size: 13px; font-family: inherit; line-height: 1.5; }
.pm-memo-edit textarea:focus { outline: none; border-color: #FF2442; }
.pm-memos-editor-bar .btn + .btn { margin-left: 6px; }

/* 小记速录面板（2026-09-16，项目列表页免进详情速录 + 日报底稿复制） */
#pm-quick-memo-modal .pm-dc-modal-box { max-width: 640px; width: 92vw; }
.pm-qm-editor { border: 1px solid #f0f0f0; border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; background: #fafafa; }
.pm-qm-editor-row { display: flex; gap: 8px; margin-bottom: 8px; }
.pm-qm-editor-row input { flex: 0 0 180px; border: 1px solid #ddd; border-radius: 6px; padding: 7px 10px; font-size: 13px; }
.pm-qm-editor-row select { flex: 1; min-width: 0; border: 1px solid #ddd; border-radius: 6px; padding: 7px 10px; font-size: 13px; background: #fff; }
.pm-qm-editor-row input:focus, .pm-qm-editor-row select:focus { outline: none; border-color: #FF2442; }
.pm-qm-editor textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 60px; max-height: 160px; border: 1px solid #ddd; border-radius: 6px; padding: 8px; font-size: 13px; font-family: inherit; line-height: 1.5; background: #fff; }
.pm-qm-editor textarea:focus { outline: none; border-color: #FF2442; }
.pm-qm-feed-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.pm-qm-feed-head select { border: 1px solid #ddd; border-radius: 6px; padding: 5px 8px; font-size: 13px; background: #fff; }
.pm-qm-feed { max-height: 46vh; overflow-y: auto; }
.pm-qm-group { margin-bottom: 4px; }
.pm-qm-group-title { font-size: 13px; font-weight: 600; color: #333; padding: 8px 0 2px; position: sticky; top: 0; background: #fff; }
@media (max-width: 640px) {
    .pm-qm-editor-row { flex-direction: column; }
    .pm-qm-editor-row input { flex: none; width: 100%; box-sizing: border-box; }
}

/* 右栏 tab（小记/动态，2026-09-03） */
.pm-aside-tabs { display: inline-flex; gap: 2px; }
.pm-aside-tab { background: none; border: none; padding: 4px 8px; font-size: 14px; font-weight: 600; color: #999; cursor: pointer; border-radius: 6px; line-height: 1.4; }
.pm-aside-tab:hover { color: #333; }
.pm-aside-tab.active { color: #FF2442; background: #FFF2F4; }
.pm-aside-pane { display: flex; flex-direction: column; min-height: 0; }
/* 动态列表（复用商家端 pm-m-chip 七色口径） */
.pm-events-list { overflow-y: auto; padding: 2px 12px 8px; }
.pm-event-item { padding: 9px 0; border-bottom: 1px dashed #f0f0f0; }
.pm-event-item:last-child { border-bottom: none; }
.pm-event-text { font-size: 13px; line-height: 1.6; color: #333; word-break: break-word; }
.pm-event-text .pm-m-chip { margin-right: 6px; }
.pm-event-text .pm-avatar { vertical-align: -4px; margin-right: 2px; }
.pm-event-time { font-size: 12px; color: #999; margin-top: 3px; padding-left: 2px; }
.pm-event-internal .pm-event-text { color: #999; }
.pm-event-internal-tag { display: inline-block; font-size: 11px; color: #bbb; border: 1px solid #e8e8e8; border-radius: 4px; padding: 0 4px; margin-left: 4px; vertical-align: 1px; }

/* 窄屏/手机：侧栏回落到主内容顶部（order:-1），一份 DOM 双形态 */
@media (max-width: 1024px) {
    .pm-detail-layout { flex-direction: column; }
    .pm-detail-main { width: 100%; }  /* 覆盖 flex-start 交叉轴收缩，窄屏主列必须撑满 */
    .pm-memos-aside { width: 100%; position: static; order: -1; }
    .pm-memos-box { max-height: none; }
    .pm-memos-list { max-height: 320px; }
    .pm-events-list { max-height: 320px; }
    /* 折叠态在窄屏是一条横 bar */
    .pm-memos-aside.collapsed { width: 100%; }
    .pm-memos-aside.collapsed .pm-memos-expand {
        width: 100%; min-height: 0; padding: 10px;
        writing-mode: horizontal-tb; letter-spacing: 1px; text-align: center;
    }
}


/* ========== 项目交付看板（dashboard.js，2026-09-07） ========== */
.pmd-hint {
    font-size: 12px;
    color: #999;
    font-weight: normal;
    align-self: center;
}

.pmd-cards {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
    margin-bottom: 14px;
}

.pmd-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 14px 10px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s, transform 0.15s;
}

.pmd-card:hover {
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

.pmd-card-value {
    font-size: 24px;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

.pmd-card-ok .pmd-card-value { color: #67C23A; }
.pmd-card-warn .pmd-card-value { color: #FF2442; }

.pmd-card-label {
    font-size: 13px;
    color: #666;
    margin-top: 4px;
}

.pmd-card-sub {
    font-size: 12px;
    color: #999;
    margin-top: 2px;
}

/* 本期新增横条（v1.3）：随时间范围的流量口径，与第一行快照卡视觉分层 */
/* v1.13：单行双组——项目/达人两组并排，格子等宽铺满整行；窄屏两组堆叠 */
/* v1.14（2026-10-27）：项目侧 3→4 格（新增「前置沟通」），项目/达人占比 3:6 调为 4:6 */
.pmd-flow {
    background: #f7f9fc;
    border: 1px dashed #dde3ec;
    border-radius: 10px;
    padding: 10px 16px 12px;
    margin-bottom: 14px;
}

.pmd-flow-cols {
    display: flex;
    align-items: stretch;
    gap: 18px;
}

.pmd-flow-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.pmd-flow-col-4 { flex: 4; }
.pmd-flow-col-6 { flex: 6; }

.pmd-flow-glabel {
    font-size: 12px;
    font-weight: 600;
    color: #55607a;
    white-space: nowrap;
}

.pmd-flow-items {
    display: grid;
    gap: 6px 8px;
    flex: 1;            /* 两组格子等高：组内容器拉伸填满，两行视觉齐平 */
}

.pmd-flow-items-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pmd-flow-items-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

/* 窄屏：两组上下堆叠，格子按最小宽度自适应折行 */
@media (max-width: 900px) {
    .pmd-flow-cols { flex-direction: column; gap: 10px; }
    .pmd-flow-items-4,
    .pmd-flow-items-6 { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
}

.pmd-flow-value.pmd-flow-link {
    color: #409EFF;
    cursor: pointer;
}

/* 达人评价下钻卡片（v1.11）：评价文字两行截断，防长评撑爆卡片 */
.pmd-eval-comment {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #666;
}

.pmd-flow-value.pmd-flow-link:hover {
    text-decoration: underline;
}

/* 初筛通过下钻：卡片网格（复用履约看板 .pm-card 样式） */
.pmd-drill-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 10px;
}

.pmd-drill-cards .pmd-drill-card {
    cursor: pointer;
    transition: box-shadow 0.15s;
}

.pmd-drill-cards .pmd-drill-card:hover {
    box-shadow: 0 2px 10px rgba(64, 158, 255, 0.25);
}

.pmd-flow-item {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: #fff;
    border: 1px solid #e8edf4;
    border-radius: 8px;
    padding: 5px 10px 6px;
    min-width: 0;
}

.pmd-flow-item-top {
    display: flex;
    align-items: baseline;
    gap: 2px 6px;
    flex-wrap: wrap;
}

/* 环比文案在窄格内整体换行，不许从中间断开 */
.pmd-flow-item .pmd-delta {
    white-space: nowrap;
}

.pmd-flow-value {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

.pmd-flow-label {
    font-size: 12px;
    color: #666;
}

.pmd-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

.pmd-panel {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 14px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.pmd-grid .pmd-panel { margin-bottom: 0; }

.pmd-panel-title {
    font-size: 15px;
    color: #333;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.pmd-chart {
    height: 300px;
}

.pmd-chart-tall {
    height: 340px;
}

.pmd-gran {
    display: inline-flex;
    gap: 4px;
}

.pmd-gran-btn {
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 6px;
    padding: 3px 12px;
    font-size: 12px;
    cursor: pointer;
    color: #666;
}

.pmd-gran-btn.active {
    background: #FF2442;
    border-color: #FF2442;
    color: #fff;
}

.pmd-projects {
    max-height: 300px;
    overflow: auto;
}

.pmd-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.pmd-table th {
    text-align: left;
    color: #999;
    font-weight: normal;
    font-size: 12px;
    padding: 6px 8px;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    white-space: nowrap;
}

.pmd-table td {
    padding: 8px;
    border-bottom: 1px solid #f6f6f6;
    vertical-align: middle;
}

.pmd-table td:not(:first-child) {
    white-space: nowrap;
}

.pmd-table tbody tr {
    cursor: pointer;
}

.pmd-table tbody tr:hover {
    background: #FFF7F8;
}

.pmd-proj-name {
    font-weight: 600;
    color: #333;
}

.pmd-proj-merchant {
    font-size: 12px;
    color: #999;
}

.pmd-status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 5px;
    vertical-align: middle;
}

.pmd-gap {
    color: #FF2442;
    font-weight: 600;
}

.pmd-progress {
    position: relative;
    height: 16px;
    background: #f2f2f2;
    border-radius: 8px;
    overflow: hidden;
}

.pmd-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #FF2442, #ff6b81);
    border-radius: 8px;
}

.pmd-progress-text {
    position: absolute;
    inset: 0;
    text-align: center;
    font-size: 11px;
    line-height: 16px;
    color: #333;
}

.pmd-empty {
    color: #999;
    text-align: center;
    padding: 40px 0;
    font-size: 13px;
}

/* v1.1：自定义日期区间 + 小记汇总 */
#pmd-custom-range input[type="date"] {
    padding: 6px 8px;
    border: 1px solid #dcdfe6;
    border-radius: 6px;
    font-size: 13px;
    color: #333;
}
#pmd-custom-range .pmd-hint { margin: 0 4px; }

/* v1.2：图表排序下拉 / 表头排序 / 环比 / 缺口行高亮 */
.pmd-sort {
    font-size: 12px;
    padding: 3px 6px;
    border: 1px solid #dcdfe6;
    border-radius: 6px;
    color: #666;
    background: #fff;
}
.pmd-th-sort {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
.pmd-th-sort:hover { color: #409EFF; }
.pmd-delta { font-size: 11px; color: #999; }
.pmd-delta-up { color: #67C23A; }
.pmd-delta-down { color: #FF2442; }
.pmd-table tbody tr.pmd-row-gap { background: #fff7f7; }
.pmd-table tbody tr.pmd-row-gap:hover { background: #fdeeee; }

.pmd-memos {
    max-height: 320px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pmd-memo {
    border: 1px solid #ebeef5;
    border-radius: 8px;
    padding: 8px 12px;
    cursor: pointer;
    transition: background 0.15s;
}
.pmd-memo:hover { background: #f5f7fa; }
.pmd-memo-meta {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: 12px;
    color: #999;
    margin-bottom: 4px;
    flex-wrap: wrap;
}
.pmd-memo-author { color: #409EFF; }
.pmd-memo-proj { color: #666; font-weight: 500; }
.pmd-memo-content {
    font-size: 13px;
    color: #333;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 中屏：指标卡 3 列 */
@media (max-width: 1100px) {
    .pmd-cards { grid-template-columns: repeat(3, 1fr); }
}

/* 手机端：指标卡 2 列、图表单列 */
@media (max-width: 768px) {
    .pmd-cards { grid-template-columns: 1fr 1fr; }
    .pmd-grid { grid-template-columns: 1fr; }
    .pmd-chart { height: 260px; }
    .pmd-chart-tall { height: 300px; }
    .pmd-projects { overflow-x: auto; }
    .pmd-table { min-width: 640px; }
}

/* ========== Brief 工作区（brief-studio.js，2026-09-10） ========== */
.bws-topbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 16px; background: #fff; border-bottom: 1px solid #f0f0f0; box-shadow: 0 1px 4px rgba(0,0,0,.04); }
.bws-title { font-size: 20px; font-weight: 600; }
.bws-topbar-group { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #666; }
.bws-form-btn { padding: 4px 10px; border: 1px solid #d9d9d9; border-radius: 6px; background: #fff; font-size: 13px; cursor: pointer; }
.bws-form-btn.active { border-color: var(--primary); color: var(--primary); background: rgba(255,36,66,.06); }
.bws-form-btn:disabled { opacity: .55; cursor: not-allowed; }
.bws-body { display: flex; gap: 16px; max-width: 920px; margin: 0 auto; padding: 16px; align-items: flex-start; }
.bws-nav { position: sticky; top: 64px; flex: 0 0 128px; display: flex; flex-direction: column; gap: 2px; padding: 10px; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; }
.bws-nav a { padding: 7px 10px; border-radius: 6px; font-size: 13px; color: #555; text-decoration: none; }
.bws-nav a:hover { background: #f5f5f5; color: var(--primary); }
.bws-main { flex: 1; min-width: 0; }
.bws-sec { background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 16px 18px; margin-bottom: 14px; scroll-margin-top: 64px; }
.bws-sec-title { font-size: 16px; font-weight: 600; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bws-viewtabs { margin-left: auto; display: inline-flex; border: 1px solid #d9d9d9; border-radius: 6px; overflow: hidden; }
.bws-viewtabs button { padding: 4px 12px; border: none; background: #fff; font-size: 12px; cursor: pointer; }
.bws-viewtabs button.active { background: var(--primary); color: #fff; }
.bws-md-editor { width: 100%; min-height: 340px; padding: 12px; border: 1px solid #d9d9d9; border-radius: 8px; font-family: "SF Mono", Menlo, Consolas, monospace; font-size: 13px; line-height: 1.7; resize: vertical; box-sizing: border-box; }
.bws-md-editor:focus { outline: none; border-color: var(--primary); }
.bws-md-preview { border: 1px solid #f0f0f0; border-radius: 8px; padding: 14px 16px; background: #fafafa; min-height: 200px; line-height: 1.8; font-size: 14px; }
.bws-md-preview img { max-width: 100%; border-radius: 8px; }
.bws-shopimg { position: relative; width: 200px; border: 1px solid #f0f0f0; border-radius: 8px; overflow: hidden; background: #fafafa; }
.bws-shopimg img { width: 100%; display: block; }
.bws-shopimg-add { min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #999; font-size: 22px; cursor: pointer; border: 1px dashed #d9d9d9; }
.bws-shopimg-add:hover { color: var(--primary); border-color: var(--primary); }
@media (max-width: 860px) {
    .bws-body { flex-direction: column; }
    .bws-nav { position: static; flex: none; flex-direction: row; flex-wrap: wrap; width: 100%; }
}

/* 达人任务卡：内容形式 tag（mobile-pages.js） */
.pm-i-form-tag { margin-left: 8px; font-size: 11px; font-weight: 400; color: var(--primary); background: rgba(255,36,66,.08); border: 1px solid rgba(255,36,66,.25); border-radius: 8px; padding: 1px 7px; vertical-align: 2px; }

/* ========== 初筛条件包 + 报名卡历史徽标（履约评估二期，project-ops.js） ========== */
/* 徽标：小字灰底胶囊；⚠ 负向段红色 */
.pm-hist-badge {
    display: inline-block;
    margin: 2px 0 4px;
    font-size: 11px;
    line-height: 1.7;
    color: #666;
    background: #f5f6f8;
    border: 1px solid #e8eaee;
    border-radius: 8px;
    padding: 0 7px;
}
.pm-hist-badge-warn { color: #d92b2b; font-weight: 600; }

/* 条件包筛选条（报名环节，看板/表格共用） */
.pm-cond-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 6px 8px;
    margin-bottom: 8px;
    background: #fbfbfd;
    border: 1px dashed #d9d9d9;
    border-radius: 8px;
    font-size: 13px;
}
.pm-cond-label { font-weight: 600; color: #444; }
.pm-cond-select { padding: 3px 6px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 12px; background: #fff; max-width: 210px; }
.pm-cond-tagwrap { display: inline-flex; align-items: center; gap: 4px; color: #666; font-size: 12px; }
.pm-cond-count { color: #d48806; font-weight: 600; }

/* 命中高亮：看板卡片描边、表格行浅底 + 左侧色条 */
.pm-card.pm-cond-hit { outline: 2px solid #FAAD14; outline-offset: -2px; }
.pm-table tr.pm-cond-hit td { background: #fff8e1; }
.pm-table tr.pm-cond-hit td:first-child { box-shadow: inset 3px 0 0 #FAAD14; }

/* 条件包预设弹窗 */
.pm-cond-form { font-size: 13px; color: var(--text); }
.pm-cond-form-tip { font-size: 12px; color: #888; margin-bottom: 10px; line-height: 1.6; }
.pm-cond-chk { display: block; margin-bottom: 8px; cursor: pointer; }
.pm-cond-num { width: 56px; padding: 2px 4px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 12px; }
.pm-cond-form-sub { font-size: 12px; color: #888; margin: 12px 0 6px; }
.pm-cond-taggrid { display: flex; flex-wrap: wrap; gap: 6px 14px; max-height: 180px; overflow: auto; }
.pm-cond-taggrid .pm-cond-chk { margin-bottom: 0; }
.pm-cond-saverow { display: flex; gap: 8px; }
.pm-cond-name { flex: 1; padding: 5px 8px; border: 1px solid #d9d9d9; border-radius: 6px; font-size: 13px; }
.pm-cond-presets { display: flex; flex-direction: column; gap: 6px; }
.pm-cond-preset-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #fafafa; border-radius: 6px; }
.pm-cond-preset-name { flex: none; font-weight: 600; color: var(--primary); cursor: pointer; }
.pm-cond-preset-desc { flex: 1; font-size: 12px; color: #888; }
.pm-cond-preset-empty { font-size: 12px; color: #aaa; }

/* 看板「报名」列标题的初筛条件包入口按钮（点击展开/收起条件条） */
.pm-cond-col-btn {
    margin-left: 6px;
    padding: 0 5px;
    font-size: 12px;
    line-height: 1.6;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    opacity: .75;
    vertical-align: 1px;
}
.pm-cond-col-btn:hover { opacity: 1; border-color: #FAAD14; }
.pm-cond-col-btn.open { opacity: 1; background: #fff8e1; border-color: #FAAD14; }

/* ---------- 交付时效监控 v1.2（2026-09-16，PRD: docs/PRD-交付时效监控.md §10） ----------
   仅内部视角：项目详情「⏱ 交付时效」板块（日历甘特 .pm-sla-g* / 明细 .pm-sla-*）
   + 交付看板时效 chip（.pmd-sla-chip，逻辑不动）。 */
.pm-sla-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    flex-wrap: wrap;
}

.pm-sla-title {
    flex: 1 1 100%;
    font-size: 12px;
    font-weight: 600;
    color: #606266;
    display: flex;
    align-items: center;
    gap: 10px;
}

.pm-sla-cfg-btn {
    margin-left: 8px;
    font-size: 12px;
    padding: 2px 10px;
    /* 2026-09-30 owner 拍板：加深配色（原 btn-outline 白字透明底，浅色页上看不清） */
    background: #4a6785;
    border-color: #4a6785;
    color: #fff;
}
.pm-sla-cfg-btn:hover { background: #3a5470; border-color: #3a5470; color: #fff; }

.pm-sla-chip {
    display: inline-block;
    padding: 1px 7px;
    border: 1px solid #e4e7ed;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

/* ---- 日历甘特（纯 CSS/JS 零依赖）：刻度行 + 三泳道；窄屏横向滚动 ---- */
.pm-sla-gantt { flex: 1 1 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pm-sla-gantt-inner { --pm-sla-ghead: 150px; min-width: 560px; }
.pm-sla-grow { display: flex; align-items: center; }
.pm-sla-ghead {
    flex: 0 0 var(--pm-sla-ghead);
    width: var(--pm-sla-ghead);
    padding-right: 10px;
    display: flex;
    flex-direction: column;      /* 周期名一行 / chip 一行：chip 长文案（超 30 天 / 阈值 13 天）不再溢出压轨道条 */
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    font-size: 12px;
    color: #303133;
    overflow: hidden;
}
.pm-sla-ghead b { font-weight: 600; white-space: nowrap; }
.pm-sla-ghead .pm-sla-chip {
    max-width: calc(var(--pm-sla-ghead) - 12px);
    overflow: hidden;
    text-overflow: ellipsis;
}
.pm-sla-gaxis .pm-sla-ghead { height: 16px; }
.pm-sla-gtrack { position: relative; flex: 1 1 auto; height: 24px; }
.pm-sla-gaxis .pm-sla-gtrack { height: 16px; }
.pm-sla-gbody { position: relative; }
.pm-sla-glab {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    font-size: 10px;
    color: #a8abb2;
    white-space: nowrap;
}
.pm-sla-gtick {
    position: absolute;
    top: 12px;
    bottom: -2px;
    width: 1px;
    background: #f0f2f5;
}
.pm-sla-gbar {
    position: absolute;
    top: 5px;
    height: 14px;
    border-radius: 7px;
    min-width: 3px;
}
.pm-sla-gbar.plan { opacity: .3; }
.pm-sla-gth {
    position: absolute;
    top: -1px;
    transform: translateX(-50%);
    font-size: 9px;
    line-height: 1;
    opacity: .85;
}
.pm-sla-gms {
    position: absolute;
    top: 4px;
    transform: translateX(-50%);
    font-size: 11px;
    line-height: 1.2;
    color: #722ed1;
    background: #fff;
    padding: 0 1px;
}
.pm-sla-gdays {
    position: absolute;
    top: 5px;
    transform: translateX(6px);
    font-size: 10px;
    color: #909399;
    white-space: nowrap;
}
.pm-sla-gtoday {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: #f5222d;
    opacity: .55;
    pointer-events: none;
}

/* v1.4 项目暂停（PRD §4.7.4）：甘特灰色斜纹覆盖区（跨三泳道同层，与「今天」竖线同层）
   + 详情头部「已暂停」chip + 时效面暂停 banner / 暂停恢复按钮 + 头部摘要条暂停 chip */
.pm-sla-gpauses {
    position: absolute;
    left: var(--pm-sla-ghead);
    right: 0;
    top: 0;
    bottom: 0;
    pointer-events: none;
    overflow: hidden;
}
.pm-sla-gpause {
    position: absolute;
    top: 0;
    bottom: 0;
    border-left: 1px dashed #b1b3b8;
    border-right: 1px dashed #b1b3b8;
    background: repeating-linear-gradient(45deg,
        rgba(144, 147, 153, .22) 0 4px, rgba(144, 147, 153, .07) 4px 8px);
}

.pm-sla-paused {
    margin-bottom: 6px;
    padding: 6px 10px;
    border: 1px solid #c8d3e0;
    border-radius: 6px;
    background: #f2f6fb;
    color: #4a6785;
    font-size: 12px;
    line-height: 1.6;
}
/* 2026-09-30 owner 拍板：加深配色（原 btn-outline 白字透明底，浅色页上看不清）；恢复按钮绿色变体 */
.pm-sla-pause-btn {
    margin-left: 6px;
    font-size: 12px;
    padding: 2px 10px;
    background: #d48806;
    border-color: #d48806;
    color: #fff;
}
.pm-sla-pause-btn:hover { background: #b57304; border-color: #b57304; color: #fff; }
.pm-sla-resume-btn { background: #389e0d; border-color: #389e0d; }
.pm-sla-resume-btn:hover { background: #2d8409; border-color: #2d8409; }
.pm-badge-paused {
    background: #eef3f9;
    color: #4a6785;
    border: 1px solid #c8d3e0;
}
/* 暂停记录列表（v1.11，2026-10-02）：时效明细内逐段追溯，与 pm-sla-paused 横幅同色系 */
.pm-sla-pauses {
    margin-top: 8px;
    padding: 6px 10px;
    border: 1px solid #e3eaf3;
    border-radius: 6px;
    background: #f8fafd;
    font-size: 12px;
    line-height: 1.7;
}
.pm-sla-pauses-title { color: #4a6785; font-weight: 600; }
.pm-sla-pause-rec { color: #606266; }
.pm-sla-strip-chip.paused {
    background: #eef3f9;
    color: #4a6785;
    border-color: #c8d3e0;
}

/* v1.3 动态比例尺：断轴记号（刻度行 + 被截断泳道条末）与右缘「今天」钉位标签 */
.pm-sla-gbreak {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1;
    color: #c0c4cc;
    background: #fff;
    padding: 0 1px;
}
.pm-sla-glab-today { color: #f5222d; font-weight: 600; }

/* ---- ⚙ 时效配置弹窗 ---- */
.pm-sla-cfg-sec {
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #ebeef5;
}
.pm-sla-cfg-sec:last-child { border-bottom: none; margin-bottom: 0; }
.pm-sla-cfg-sec > b { font-size: 13px; color: #303133; }
.pm-sla-cfg-sec > small { margin-left: 8px; font-size: 11px; color: #909399; }
.pm-sla-cfg-sub {
    margin: 10px 0 4px;
    font-size: 12px;
    font-weight: 600;
    color: #606266;
}
.pm-sla-cfg-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: 12px;
    color: #606266;
}
.pm-sla-cfg-row > span { flex: 0 0 140px; }
.pm-sla-cfg-row > input {
    flex: 0 0 90px;
    padding: 3px 6px;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    font-size: 12px;
}
.pm-sla-cfg-row > small { font-size: 11px; color: #a8abb2; }

/* 法定节假日表（v1.9 节假日自动停表，PRD §4.8.1）：⚙ 时效配置弹窗内的放假段维护 */
.pm-sla-hol-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 12px;
    color: #606266;
}
.pm-sla-hol-name { flex: 0 0 100px; font-weight: 600; color: #303133; }
.pm-sla-hol-range { flex: 1; color: #909399; }
.pm-sla-hol-add {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
}
.pm-sla-hol-add input {
    padding: 3px 6px;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    font-size: 12px;
}
.pm-sla-hol-add input[type="text"] { flex: 1; min-width: 0; }

.pm-sla-ms { margin-top: 6px; font-size: 12px; color: #722ed1; }
.pm-sla-ms b { color: #531dab; }
.pm-sla-sel { margin-top: 6px; font-size: 12px; color: #606266; line-height: 1.9; }
.pm-sla-sel b { color: #303133; }
.pm-sla-sel-it { padding-left: 10px; color: #909399; }
.pm-sla-hint { margin-left: 6px; font-size: 11px; color: #a8abb2; }

.pm-sla-warn {
    margin-top: 8px;
    font-size: 12px;
    color: #f5222d;
}

.pm-sla-frozen {
    margin-bottom: 8px;
    font-size: 12px;
    color: #909399;
}

.pm-sla-warn-text {
    margin-left: 6px;
    color: #faad14;
    font-size: 12px;
}

.pm-sla-foot {
    margin-top: 10px;
    font-size: 12px;
    color: #606266;
}

.pm-sla-foot b { color: #303133; }
.pm-sla-sep { color: #dcdfe6; margin: 0 8px; }

.pmd-sla-chip {
    display: inline-block;
    padding: 1px 6px;
    border: 1px solid #e4e7ed;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

/* 明细表时效筛选 chip 行（v1.9，2026-09-20）：全部/超时/临期/正常 带计数可点击 */
.pmd-sla-filter {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.pmd-sla-filter-label { font-size: 12px; color: #909399; }

.pmd-sla-filter-chip {
    padding: 3px 12px;
    border: 1px solid #dcdfe6;
    border-radius: 14px;
    background: #fff;
    color: #606266;
    font-size: 12px;
    cursor: pointer;
    transition: all .15s;
}

.pmd-sla-filter-chip:hover { border-color: #409EFF; color: #409EFF; }

.pmd-sla-filter-chip.active {
    background: #409EFF;
    border-color: #409EFF;
    color: #fff;
    font-weight: 600;
}

/* 待办条时效计数可点击（②）：直达交付看板时效筛选 */
.pm-pending-sla-link { cursor: pointer; border-bottom: 1px dashed #c0c4cc; }
.pm-pending-sla-link:hover { color: #f5222d; border-bottom-color: #f5222d; }

/* v1.1（2026-09-15 晚，owner 圈定方案 B）：时效升详情页头部——进度条直展 + 总耗时结果位 + 归因明细折叠 */
.pm-sla-head { flex: 1 1 100%; margin-top: 12px; padding-top: 12px; border-top: 1px dashed #ebeef5; }

.pm-sla-total {
    flex: 0 0 auto;
    align-self: center;
    margin-left: auto;
    padding: 6px 16px;
    border-radius: 8px;
    border: 1.5px solid #e4e7ed;
    background: #fafafa;
    text-align: center;
}
.pm-sla-total-lb { font-size: 11px; color: #909399; }
.pm-sla-total-num { font-size: 15px; font-weight: 700; color: #303133; margin-top: 1px; white-space: nowrap; }
.pm-sla-total-num small { font-size: 11px; font-weight: 400; color: #909399; }

.pm-sla-toggle { margin-top: 8px; font-size: 12px; color: #409eff; cursor: pointer; user-select: none; }
.pm-sla-toggle:hover { text-decoration: underline; }
.pm-sla-detail { margin-top: 8px; background: #fcfcfc; border: 1px solid #f0f2f5; border-radius: 8px; padding: 10px 14px; }
.pm-sla-dates { font-size: 12px; line-height: 2; color: #606266; }

.pm-sla-stuck {
    margin-top: 8px;
    background: #fff1f0;
    border: 1px solid #ffccc7;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 12px;
    color: #606266;
}
.pm-sla-stuck b { color: #f5222d; }
.pm-sla-stuck-it { padding: 2px 0; }

@media (max-width: 900px) {
    .pm-sla-title { flex-wrap: wrap; }
    .pm-sla-total { margin-left: 0; display: flex; align-items: baseline; gap: 6px; padding: 4px 10px; }
    .pm-sla-total-num { margin-top: 0; }
    .pm-sla-gantt-inner { --pm-sla-ghead: 108px; min-width: 560px; }
    .pm-sla-cfg-row > span { flex: 0 0 110px; }
    .pm-sla-cfg-row > small { display: none; }
}

/* ================= 项目工作台（2026-09-18，owner 拍板）：左侧菜单 + 工作面 + 固定框 ================= */
/* 二期（同日，owner 走查后拍板）：交付时效收进独立工作面不再钉头部（留一行预警摘要条）；
   头部标题/简介并一行；菜单字号对齐旧板块标题；履约看板筛选区压缩（chips 单行横滑 + 高级筛选单行） */
.pm-wb { display: flex; gap: 14px; align-items: flex-start; }
.pm-wb-nav { width: 172px; flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; position: sticky; top: 12px; }
.pm-wb-nav-item { display: flex; align-items: center; gap: 6px; padding: 10px 12px; border: none; background: none; border-radius: 8px; font-size: 15px; font-weight: 500; color: #444; cursor: pointer; text-align: left; white-space: nowrap; font-family: inherit; }
.pm-wb-nav-item:hover { background: #f5f5f5; }
.pm-wb-nav-item.active { background: #eaf1ff; color: #3B6FD4; font-weight: 600; }
.pm-wb-badge { margin-left: auto; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #ff2442; color: #fff; font-size: 11px; line-height: 18px; text-align: center; cursor: pointer; flex-shrink: 0; }
.pm-wb-main { flex: 1; min-width: 0; }
.pm-wb-pane { display: none; }
.pm-wb-pane.active { display: flex; flex-direction: column; min-height: 0; }
.pm-wb-pane-bar { margin-bottom: 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pm-board-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; flex-shrink: 0; }
.pm-table-tools { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.pm-table-tools .pm-export-btn { margin-left: auto; }
.pm-view-kanban .pm-table-tools { display: none; }   /* 看板视图无搜索/高级筛选/导出（同旧行为） */

/* 头部紧凑化：标题与简介同行；下挂一行式时效预警摘要条 */
.pm-detail-head { margin-bottom: 8px; }
.pm-detail-head-row { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.pm-detail-head-row .pm-detail-title { margin: 0; font-size: 19px; }
/* 顶部提示条：多条合并一行可换行的紧凑条（替代旧 .pm-dc-pending 全宽大横幅；草稿面板内的旧横幅不动） */
.pm-wb-notices { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.pm-wb-notice { padding: 4px 12px; border-radius: 8px; font-size: 12px; line-height: 1.5; text-align: left; }
.pm-wb-notice.warn { background: #fff7e6; border: 1px solid #ffe7ba; color: #ad6800; }
.pm-wb-notice.info { background: #f5f5f5; border: 1px solid #ebebeb; color: #888; }
.pm-wb-notice[onclick] { cursor: pointer; }
.pm-wb-notice[onclick]:hover { border-color: #3B6FD4; }
.pm-sla-strip { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; padding: 5px 10px; background: #fff; border: 1px solid #eee; border-radius: 8px; cursor: pointer; font-size: 12px; transition: border-color .12s; }
.pm-sla-strip:hover { border-color: #3B6FD4; }
.pm-sla-strip-label { font-weight: 600; color: #555; }
.pm-sla-strip-total { color: #888; }
.pm-sla-strip-chip { padding: 1px 8px; border-radius: 9px; background: #f5f5f5; color: #666; }
.pm-sla-strip-chip.warn { background: #fff1f0; color: #cf1322; }
.pm-sla-strip-chip.ok { background: #f6ffed; color: #389e0d; }
.pm-sla-strip-go { margin-left: auto; color: #3B6FD4; font-weight: 600; }

/* 履约看板工作面 = 随滚放大固定框（2026-09-18 方案B，owner 拍板）：页面可滚，项目头/提示条滚走后框顶吸附主导航下沿（56px）；
   筛选行/列头随框钉住，数据区内部滚动；框高恒定由 JS 设定（pmWbFitBoard），此处为无 JS 兜底值 */
.pm-wb-pane[data-pane="board"].active { height: calc(100vh - 76px); min-height: 260px; }
.pm-wb-pane[data-pane="board"] #pm-kanban { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.pm-board-filters { flex-shrink: 0; }
.pm-board-filters .pm-tier-filter-flat { flex-wrap: nowrap; overflow-x: auto; margin-bottom: 8px; padding-bottom: 2px; }
.pm-chip-sep { flex-shrink: 0; width: 1px; align-self: stretch; background: #e0e0e0; margin: 2px 4px; }

/* 高级筛选单行化：组名降级为行内色字标签 */
.pm-seg-flat { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; background: none; border: none; border-radius: 0; margin-bottom: 8px; }
.pm-seg-flat .pm-seg-cell { border-radius: 6px; padding: 5px 10px; }
.pm-seg-glab { color: var(--gc); font-size: 12px; font-weight: 700; margin: 0 3px 0 8px; white-space: nowrap; }

/* 交付时效工作面：去掉头部内嵌时的分隔线/间距（独立面顶格开始） */
.pm-wb-pane[data-pane="sla"] .pm-sla-head { margin-top: 0; padding-top: 0; border-top: none; }

/* 表格：表头固定 + 框内双向滚动（th 的 sticky 在滚动容器内生效） */
.pm-board-table #pm-table-region { flex: 1; min-height: 0; overflow: auto; border: 1px solid #eee; border-radius: 10px; background: #fff; }
.pm-board-table .pm-table th { z-index: 5; box-shadow: 0 2px 4px rgba(0,0,0,.05); }
.pm-board-table .pm-table-toolbar { flex-shrink: 0; }

/* 看板：列头固定 + 卡片区列内滚动 */
.pm-kanban.pm-kb-scroll { flex: 1; min-height: 0; overflow-x: auto; overflow-y: hidden; align-items: stretch; }
.pm-kanban.pm-kb-scroll .pm-kb-group { height: 100%; display: flex; flex-direction: column; min-height: 0; }
.pm-kanban.pm-kb-scroll .pm-kb-group-cols { flex: 1; min-height: 0; align-items: stretch; }
.pm-kanban.pm-kb-scroll .pm-kanban-col { display: flex; flex-direction: column; max-height: 100%; }
.pm-kanban.pm-kb-scroll .pm-kanban-col-title { flex-shrink: 0; }
.pm-kanban.pm-kb-scroll .pm-kb-cards { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; }

/* 时效块瘦身：压缩间距（独立工作面内同样生效），明细（含配置入口）在面内默认展开 */
.pm-sla-head { margin-top: 6px; padding-top: 6px; }
.pm-sla-title { gap: 6px; }
.pm-sla-total { padding: 3px 10px; }
.pm-sla-gantt-inner { --pm-sla-ghead: 120px; }
.pm-sla-gtrack { height: 20px; }
.pm-sla-toggle { margin-top: 4px; }

/* 窄屏：菜单变顶部横排，固定框回落自然高度（手机上不套双滚动） */
@media (max-width: 1024px) {
    .pm-wb { flex-direction: column; }
    .pm-wb-nav { width: 100%; flex-direction: row; overflow-x: auto; position: static; padding-bottom: 4px; }
    .pm-wb-nav-item { flex-shrink: 0; padding: 8px 10px; }
    .pm-wb-pane[data-pane="board"].active { height: auto; }
    .pm-board-table #pm-table-region { flex: none; max-height: 70vh; }
    .pm-kanban.pm-kb-scroll { overflow-y: visible; }
    .pm-kanban.pm-kb-scroll .pm-kanban-col { max-height: none; }
    .pm-kanban.pm-kb-scroll .pm-kb-cards { overflow: visible; }
}

/* ===== 结案报告工作面重构（2026-09-19 方案A，owner 拍板）：预览为王的驾驶舱布局 =====
   顶部状态条（开放徽标 + 报告核心数据 chips + 数据截至）+ 左栏商家视角实时预览（手机框，框内滚动）
   + 右栏三张配置卡（开放与分享 / 内容与总结 / 案例转化，sticky 跟随）；窄屏回落单栏（预览在前） */
.pm-rpw-statusbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fff; border-radius: 12px; padding: 10px 14px; box-shadow: 0 1px 4px rgba(0,0,0,.05); margin-bottom: 12px; font-size: 13px; }
.pm-rpw-badge { font-weight: 600; padding: 3px 10px; border-radius: 10px; font-size: 12px; white-space: nowrap; }
.pm-rpw-badge.on { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
.pm-rpw-badge.off { background: #f5f5f5; color: #999; border: 1px solid #e5e5e5; }
.pm-rpw-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.pm-rpw-chip { background: #f7f8fa; border: 1px solid #eef0f2; border-radius: 8px; padding: 3px 10px; color: #777; font-size: 12px; white-space: nowrap; }
.pm-rpw-chip b { color: #222; font-weight: 700; margin-left: 3px; }
.pm-rpw-asof { margin-left: auto; color: #aaa; font-size: 12px; white-space: nowrap; }

.pm-rpw-cols { display: flex; gap: 14px; align-items: flex-start; }
.pm-rpw-preview { flex: 1.25; min-width: 0; background: #eceef1; border-radius: 14px; padding: 12px; }
.pm-rpw-preview-bar { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 10px; flex-wrap: wrap; }
.pm-rpw-preview-hint { font-size: 12px; color: #999; font-weight: 400; }
/* 手机框：报告页本身是移动端页面，居中窄宽 + 框内滚动，整页不再被拖长 */
.pm-rpw-phone { max-width: 440px; max-height: calc(100vh - 220px); margin: 0 auto; border-radius: 18px; overflow: hidden auto; box-shadow: 0 6px 22px rgba(0,0,0,.10); border: 1px solid #e3e5e8; background: #f7f8fa; }
.pm-rpw-phone .pm-rp { max-width: none; }

.pm-rpw-side { flex: 1; min-width: 320px; display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; }
.pm-rpw-card { background: #fff; border-radius: 12px; padding: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.pm-rpw-card-t { font-size: 14px; font-weight: 700; color: #222; margin-bottom: 10px; }
/* 开放方式三态分段开关（点击即保存） */
.pm-rpw-seg { display: flex; background: #f2f3f5; border-radius: 10px; padding: 3px; gap: 3px; margin-bottom: 12px; }
.pm-rpw-seg button { flex: 1; border: none; background: none; border-radius: 8px; padding: 7px 4px 6px; font-size: 13px; color: #666; cursor: pointer; font-family: inherit; line-height: 1.25; }
.pm-rpw-seg button i { display: block; font-style: normal; font-size: 11px; color: #aaa; margin-top: 2px; }
.pm-rpw-seg button.on { background: #fff; color: #FF2442; font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,.10); }
.pm-rpw-seg button.on i { color: #f4a3ae; }
.pm-rpw-linkrow { display: flex; gap: 8px; }
.pm-rpw-linkrow .pm-i-input { flex: 1; min-width: 0; background: #f5f5f5; }
.pm-rpw-linkops { display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
/* 危险操作降级为文字按钮，不再占主视觉 */
.pm-rpw-dangerlink { border: none; background: none; color: #cf1322; font-size: 12.5px; cursor: pointer; padding: 4px 2px; margin-left: auto; font-family: inherit; }
.pm-rpw-dangerlink:hover { text-decoration: underline; }

/* 窄屏回落：预览在前，配置卡依次排 */
@media (max-width: 1200px) {
    .pm-rpw-cols { flex-direction: column; }
    .pm-rpw-preview, .pm-rpw-side { width: 100%; min-width: 0; position: static; }
    .pm-rpw-phone { max-height: none; }
}

/* ===== 结案报告工作面·结果文档模式（2026-09-19 方案C：项目窗=结果窗+跳转，制作收归销支工作区） ===== */
/* 第二行管理条：进入工作区 / 三态开关 / 分享链接 / 优质笔记开关 / 预览 / 转案例 */
.pm-rpe-manage { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fff; border-radius: 12px; padding: 10px 14px; box-shadow: 0 1px 4px rgba(0,0,0,.05); margin-bottom: 12px; font-size: 13px; }
.pm-rpe-manage .pm-rpw-seg.sm { margin-bottom: 0; flex: 0 1 300px; min-width: 230px; }
.pm-rpe-manage .pm-rpw-seg.sm button { padding: 6px 6px; }
.pm-rpe-manage .pm-rpw-dangerlink { margin-left: 0; }
/* 整页结果文档：与商家端同模板（crShareHtml），全宽卡片、正文限宽居中保可读性 */
.pm-rpe-doc { background: #eceef1; border-radius: 14px; padding: 14px; }
/* 2026-09-19 owner 反馈：主控台呈现窗报告本体太大，整体缩到 75%（zoom 保布局不留白，商家端/分享页不受影响）；
   同日 owner 两次拍板定稿：靠左但不贴边（左留白 28px）——贴边（margin:0）太靠左、居中（0 auto）又太中间，均否 */
.pm-rpe-doc .pm-rp { max-width: 640px; margin: 0 0 0 28px; box-shadow: 0 2px 12px rgba(0,0,0,.08); zoom: 0.75; }
/* biz 编辑器 ④ 实时数据条（预览改弹窗，不默认呈现；编辑器在销支板块 page 宿主） */
.cr-biz-live-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; background: #f7f8fa; border: 1px solid #eef0f2; border-radius: 10px; padding: 10px 14px; font-size: 13px; color: #666; }
.cr-biz-live-bar span { flex: 1; min-width: 220px; }

/* ===== 结案报告板块·商单项目工作队列（2026-09-19 方案C：对齐 Brief 工作区模式） ===== */
.cr-wq { background: #fff; border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.cr-wq .pm-mkt-subtabs { margin-bottom: 10px; }
.cr-wq .pm-mkt-filterbar { margin-bottom: 12px; }
.cr-wq .pm-proj-table { margin-top: 0; }

/* ==================== 履约质检中心（qc.js，2026-09-22 一期，PRD: docs/PRD-履约抽检管理.md） ==================== */
.qc-overview { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.qc-ov-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; padding: 14px 22px; cursor: pointer; text-align: center; min-width: 110px; transition: box-shadow .15s; }
.qc-ov-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.qc-ov-num { font-size: 26px; font-weight: 700; color: #333; }
.qc-ov-label { font-size: 12px; color: #888; margin-top: 2px; }
.qc-ov-warn .qc-ov-num { color: #e6a23c; }
.qc-ov-info .qc-ov-num { color: #409eff; }
.qc-ov-danger .qc-ov-num { color: #f56c6c; }
.qc-ov-stages { font-size: 12px; color: #888; margin-left: 8px; }
.qc-ov-stage { background: #f5f5f5; border-radius: 8px; padding: 2px 8px; margin-right: 6px; }

.qc-daily-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; padding: 14px 18px; margin-bottom: 14px; }
.qc-daily-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.qc-daily-ops { display: flex; gap: 8px; align-items: center; }
.qc-daily-ops input[type="date"] { padding: 4px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }

.qc-list-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; padding: 14px 18px; }
.qc-filter-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.qc-filter-row select { padding: 5px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }
.qc-quick-chips { display: inline-flex; gap: 6px; }
.qc-chip { font-size: 12px; color: #666; background: #f5f5f5; border: 1px solid #e8e8e8; border-radius: 12px; padding: 3px 10px; cursor: pointer; }
.qc-chip.active { color: #fff; background: #409eff; border-color: #409eff; }

.qc-row { border: 1px solid #f0f0f0; border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.qc-row-overdue { border-color: #f56c6c; background: #fff7f7; }
.qc-row-main { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: 13px; }
.qc-row-title { font-weight: 600; color: #333; }
.qc-row-detail { color: #888; font-size: 12px; width: 100%; }
.qc-row-sub { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #999; margin-top: 6px; }
.qc-row-proj { color: #409eff; cursor: pointer; }
.qc-row-proj:hover { text-decoration: underline; }
.qc-row-fu { color: #666; }
.qc-row-time { margin-left: auto; }
.qc-row-fix { font-size: 12px; color: #67c23a; margin-top: 6px; }
.qc-row-ops { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.qc-row-ops:empty { display: none; }
.qc-due-over { color: #f56c6c; font-weight: 600; }

.qc-st { font-size: 11px; border-radius: 8px; padding: 1px 8px; white-space: nowrap; }
.qc-st-open { background: #fdf3e3; color: #e6a23c; }
.qc-st-fixed { background: #e9f7ef; color: #67c23a; }
.qc-st-closed { background: #f0f0f0; color: #999; }
.qc-st-invalid { background: #f0f0f0; color: #bbb; text-decoration: line-through; }
.qc-stage-chip { font-size: 11px; background: #f0f5ff; color: #5c7bd9; border-radius: 8px; padding: 1px 8px; white-space: nowrap; }
.qc-tag { font-size: 11px; background: #f7f0fa; color: #8e5ea2; border-radius: 8px; padding: 1px 8px; }
.qc-sev { font-size: 11px; color: #f56c6c; font-weight: 600; }

.qc-modal-ctx { font-size: 13px; color: #666; background: #f7f7f7; border-radius: 6px; padding: 6px 10px; margin: 0 0 10px; }
.qc-form-row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.qc-form-row label { font-size: 13px; color: #555; white-space: nowrap; }
.qc-form-row select, .qc-form-row input[type="text"], .qc-form-row input[type="date"] { padding: 6px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }
.qc-form-row textarea { padding: 6px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; font-family: inherit; resize: vertical; }
.qc-sev-radio { display: inline-flex; gap: 12px; margin-left: 12px; font-size: 13px; color: #555; }
.qc-tag-box { display: flex; gap: 8px; flex-wrap: wrap; }
.qc-tag-opt { font-size: 12px; color: #555; background: #f5f5f5; border-radius: 8px; padding: 3px 8px; cursor: pointer; }

.qc-aside-head { padding: 4px 0 8px; }
.qc-aside-item { border-bottom: 1px solid #f0f0f0; padding: 8px 0; }
.qc-aside-item:last-child { border-bottom: none; }
.qc-aside-line1 { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: 12px; }
.qc-aside-title { color: #333; font-weight: 600; }
.qc-aside-line2 { font-size: 12px; color: #999; margin-top: 3px; }
.qc-aside-fix { font-size: 12px; color: #67c23a; margin-top: 3px; }

.qc-tag-list { max-height: 320px; overflow-y: auto; margin-bottom: 10px; }
.qc-tag-row { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.qc-tag-row .qc-tag-name { flex: 1; padding: 5px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }
.qc-tag-row .qc-tag-stage { padding: 5px 6px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 12px; }
.qc-tag-new { border-top: 1px dashed #e0e0e0; padding-top: 10px; }
.qc-tag-new input { flex: 1; padding: 5px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }

/* ===== 质检角标（2026-09-23 v2：operator 整改任务提示 / 管理全量待办） ===== */
.qc-badge { display: inline-block; min-width: 18px; height: 18px; line-height: 18px; padding: 0 5px; margin-left: 6px; border-radius: 9px; background: #e6a23c; color: #fff; font-size: 11px; font-weight: 600; text-align: center; vertical-align: 2px; box-sizing: border-box; }
.qc-badge-danger { background: #f56c6c; }
.qc-badge-inline { min-width: 16px; height: 16px; line-height: 16px; padding: 0 4px; margin-left: 3px; font-size: 10px; vertical-align: 1px; }

/* ===== 待检队列（2026-09-23 质检流水线一期：三环节逐条检核，PRD-质检流水线-三环节待检队列 §9） ===== */
.qc-coverage-bar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; font-size: 12px; color: #666; background: #f0f7ff; border: 1px dashed #b3d4fc; border-radius: 8px; padding: 7px 12px; margin-bottom: 10px; }
.qc-coverage-bar b { color: #333; }
.qc-cov-link { color: #409eff; cursor: pointer; font-weight: 600; }
.qc-cov-link:hover { text-decoration: underline; }
.qc-cov-must { color: #f56c6c; font-weight: 600; }
.qc-cov-leftover { color: #e6a23c; }

.qc-queue-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 10px; padding: 14px 18px; margin-bottom: 14px; }
.qc-queue-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.qc-queue-ops { display: flex; gap: 8px; align-items: center; }
.qc-queue-tabs { display: inline-flex; gap: 6px; margin-bottom: 10px; }
.qc-qtab { font-size: 13px; color: #666; background: #f5f5f5; border: 1px solid #e8e8e8; border-radius: 10px; padding: 5px 14px; cursor: pointer; }
.qc-qtab.active { color: #fff; background: #409eff; border-color: #409eff; }
.qc-qtab .qc-qtab-n { font-weight: 700; margin-left: 4px; }
.qc-qtab .qc-qtab-must { color: #f56c6c; font-weight: 700; margin-left: 2px; }
.qc-qtab.active .qc-qtab-must { color: #ffd9d9; }
.qc-queue-flt { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.qc-queue-flt select, .qc-queue-flt input[type="date"] { padding: 5px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }

.qc-sample { border: 1px solid #f0f0f0; border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.qc-sample-must { border-color: #f5b1b1; background: #fffafa; }
.qc-sample-leftover { border-left: 3px solid #e6a23c; }
/* 跳出返回精确定位：回到点击过的那张卡时高亮闪两下（2026-09-25） */
@keyframes qcSampleFlash { 0%, 100% { background: transparent; box-shadow: none; } 25%, 65% { background: #fff7e6; box-shadow: 0 0 0 2px #f0c36d; } }
.qc-sample.qc-sample-flash { animation: qcSampleFlash 1.8s ease-in-out 1; border-radius: 8px; }
/* 审稿队列行同款（2026-09-26）：从审稿工作台返回时定位闪一下 */
.pm-rq-row.pm-rq-row-flash { animation: qcSampleFlash 1.8s ease-in-out 1; }
/* 问题单「📍 定位」深链（2026-09-26）：履约单看板卡/表格行到位后闪一下；问题清单行从审稿台返回回闪同款 */
.pm-card.pm-card-flash, #pm-table-region tr.pm-card-flash { animation: qcSampleFlash 1.8s ease-in-out 1; }
.qc-row.qc-sample-flash { animation: qcSampleFlash 1.8s ease-in-out 1; border-radius: 8px; }
/* 达人库列表返回定位闪卡（2026-09-30，对齐质检队列 qcFocusTry）：从达人详情返回列表时定位到点击前那张卡闪一下 */
.influencer-card.ic2-flash { animation: qcSampleFlash 1.8s ease-in-out 1; }
/* 事发地常驻问题标记（2026-09-27）：有 open 态质检问题的履约单卡/行出 🚩 徽标；critical 红色 */
.qc-fu-mark { display: inline-block; margin-right: 4px; padding: 0 5px; font-size: 11px; line-height: 16px; border-radius: 8px; background: #fff7e6; color: #b25e09; border: 1px solid #f0c36d; cursor: pointer; vertical-align: middle; }
.qc-fu-mark:hover { filter: brightness(0.96); }
.qc-fu-mark-crit { background: #fff1f0; color: #cf1322; border-color: #ffa39e; }
/* 整改前后快照对比（2026-09-27）：变化字段整行高亮，验证人一眼看出改了什么 */
.qc-snap-box { margin: 6px 0 2px; padding: 8px 10px; background: #fafbfc; border: 1px solid #e8eaef; border-radius: 8px; }
.qc-snap-head { font-size: 12px; color: #666; margin-bottom: 4px; }
.qc-snap-hint { color: #b25e09; }
.qc-snap-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.qc-snap-table td { padding: 3px 8px; border-top: 1px solid #f0f1f4; color: #333; word-break: break-all; }
.qc-snap-table td:first-child { color: #999; white-space: nowrap; width: 72px; }
.qc-snap-table tr.qc-snap-changed td { background: #fff7e6; color: #b25e09; font-weight: 600; }
.qc-snap-pending { color: #bbb; }
.qc-s-main { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13px; }
.qc-s-name { font-weight: 600; color: #333; display: inline-flex; align-items: center; gap: 6px; }
.qc-s-name-link { color: #409eff; cursor: pointer; }
.qc-s-name-link:hover { text-decoration: underline; }
.qc-s-proj { color: #409eff; cursor: pointer; font-size: 12px; }
.qc-s-proj:hover { text-decoration: underline; }
.qc-s-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #999; margin-top: 5px; }
.qc-s-links { font-size: 12px; margin-top: 4px; padding-left: 34px; display: flex; gap: 8px; flex-wrap: wrap; }
.qc-s-links a { color: #409eff; text-decoration: none; }
.qc-s-links a:hover { text-decoration: underline; }
.qc-must-chip { font-size: 11px; background: #fde8e8; color: #f56c6c; border-radius: 8px; padding: 1px 8px; font-weight: 600; white-space: nowrap; }
.qc-leftover-chip { font-size: 11px; background: #fdf3e3; color: #e6a23c; border-radius: 8px; padding: 1px 8px; white-space: nowrap; }
.qc-s-ops { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.qc-s-done { font-size: 12px; color: #67c23a; margin-top: 6px; }
.qc-s-issued { font-size: 12px; color: #e6a23c; margin-top: 6px; }
.qc-s-expired { font-size: 12px; color: #bbb; margin-top: 6px; }

.qc-cfg-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.qc-cfg-row label { font-size: 13px; color: #555; width: 110px; }
.qc-cfg-row input[type="number"] { width: 100px; padding: 6px 8px; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 13px; }
.qc-cfg-hint { font-size: 12px; color: #999; line-height: 1.7; background: #f7f7f7; border-radius: 6px; padding: 8px 10px; }


/* ========== 审稿队列（2026-09-23，PRD: docs/PRD-审稿队列工作区.md） ========== */
/* 宽度对齐质检中心（2026-09-27 owner 拍板）：废除 2026-09-24 的 900px 收窄，队列+仪表盘整宽随容器（同质检中心各视图，无独立 max-width） */
#pm-queue-view { max-width: none; }
.pm-rq-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
/* 队列 | 仪表盘 视图切换（2026-09-27，PRD: docs/PRD-队列页仪表盘范式.md §3） */
.pm-rq-viewtabs { display: flex; gap: 8px; margin-bottom: 12px; }
.pm-rq-viewtab { padding: 8px 18px; border: 1px solid #dcdcdc; border-radius: 20px; background: #fff; font-size: 14px; cursor: pointer; color: #555; }
.pm-rq-viewtab:hover { border-color: #409EFF; color: #409EFF; }
.pm-rq-viewtab.active { background: #409EFF; border-color: #409EFF; color: #fff; font-weight: 600; }
#pm-rq-dash .pmd-panel { margin-bottom: 14px; }
#pm-rq-dash .pmd-cards { margin-bottom: 14px; }
.pm-rq-tab { padding: 8px 18px; border: 1px solid #dcdcdc; border-radius: 20px; background: #fff; font-size: 14px; cursor: pointer; color: #555; }
.pm-rq-tab:hover { border-color: #f56c6c; color: #f56c6c; }
.pm-rq-tab.active { background: #f56c6c; border-color: #f56c6c; color: #fff; font-weight: 600; }
.pm-rq-tab .pm-rq-n { display: inline-block; min-width: 20px; padding: 0 5px; margin-left: 4px; border-radius: 10px; background: #f0f0f0; color: #666; font-size: 12px; line-height: 18px; }
.pm-rq-tab.active .pm-rq-n { background: rgba(255,255,255,.25); color: #fff; }
.pm-rq-hint { font-size: 12px; color: #999; margin: 0 0 12px; line-height: 1.6; }

.pm-rq-group { font-size: 14px; font-weight: 600; color: #333; margin: 16px 0 8px; padding-left: 8px; border-left: 3px solid #f56c6c; }
.pm-rq-group-m { font-size: 12px; font-weight: normal; color: #999; margin-left: 6px; }

.pm-rq-row { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid #f0f0f0; border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; }
.pm-rq-row-overdue { border-color: #f5b1b1; background: #fffafa; }
.pm-rq-row[onclick]:hover { border-color: #f56c6c; box-shadow: 0 2px 10px rgba(245, 108, 108, 0.15); }
.pm-rq-main { flex: 1; min-width: 0; }
.pm-rq-line1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pm-rq-name { font-size: 15px; font-weight: 600; color: #333; }
.pm-rq-acc { font-size: 12px; color: #999; }
.pm-rq-line2 { font-size: 13px; color: #555; margin-top: 4px; }
.pm-rq-sep { color: #ddd; margin: 0 2px; }
.pm-rq-line3 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12px; color: #999; margin-top: 6px; }
.pm-rq-wait { color: #e6a23c; font-weight: 600; }
/* 商家评论信号（2026-11-06）：行内 chip + 待跟进高亮 + 入口角标橙色（优先级低于超 SLA 红） */
.pm-dc-mcmt { display: inline-block; font-size: 12px; line-height: 18px; padding: 0 8px; border-radius: 10px; white-space: nowrap; color: #8a6d3b; background: #fdf6ec; border: 1px solid #f5e3c3; }
.pm-dc-mcmt-new { color: #d4380d; background: #fff2e8; border-color: #ffbb96; font-weight: 600; }
.pm-rq-row-mnew { background: #fffaf2; }
.pm-rq-badge-mnew { background: #fa8c16 !important; }
.pm-rq-overdue { color: #f56c6c; }
.pm-rq-cmt { color: #409eff; }
.pm-rq-ver { color: #bbb; }
.pm-rq-title { font-size: 12px; color: #888; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-rq-go { flex-shrink: 0; align-self: center; white-space: nowrap; }
.pm-rq-nodraft { flex-shrink: 0; align-self: center; font-size: 12px; color: #bbb; }
.pm-rq-empty { text-align: center; color: #999; padding: 48px 0; font-size: 14px; }

/* 工作台头部项目上下文条（队列连审模式） */
.pm-dc-ctx { font-size: 13px; color: #666; background: #f7f7f7; border-radius: 6px; padding: 3px 10px; margin-left: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 40%; }
.pm-dc-ctx a { color: #409eff; text-decoration: none; margin-left: 6px; }
.pm-dc-ctx a:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .pm-rq-tabs { position: sticky; top: 0; background: #f5f5f5; padding: 6px 0; z-index: 5; }
    .pm-rq-tab { flex: 1; padding: 8px 6px; font-size: 13px; text-align: center; }
    .pm-rq-row { flex-wrap: wrap; }
    .pm-rq-go { width: 100%; }
    .pm-dc-ctx { max-width: 100%; margin: 6px 0 0; display: block; }
}

/* 微信服务号提醒绑定引导条（2026-10-14，PRD: docs/PRD-达人端服务号消息推送.md） */
.pm-wx-guide {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: linear-gradient(135deg, #e8f5e9, #f1f8e9);
    border: 1px solid #a5d6a7;
    border-radius: 10px;
    padding: 10px 14px;
    margin: 10px 12px 0;
    font-size: 13px;
    color: #2e7d32;
    line-height: 1.5;
}

.pm-wx-guide-text {
    flex: 1;
}

.pm-wx-guide-btn {
    flex-shrink: 0;
    background: #07c160;
    color: #fff;
    border-radius: 16px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.pm-wx-guide-qr {
    width: 72px;
    height: 72px;
    border-radius: 6px;
    flex-shrink: 0;
}

/* 首次通知开通页：强引导但保留任务入口（2026-10-26 方案B） */
.pm-wx-onboard {
    max-width: 520px;
    min-height: calc(100vh - 40px);
    margin: 0 auto;
    padding: 28px 18px 40px;
    box-sizing: border-box;
}
.pm-wx-onboard-card {
    margin-top: 34px;
    padding: 30px 24px 24px;
    background: #fff;
    border: 1px solid #edf0ed;
    border-radius: 18px;
    box-shadow: 0 10px 34px rgba(31, 61, 42, .08);
}
.pm-wx-onboard-center { text-align: center; }
.pm-wx-onboard-card h1 {
    margin: 12px 0;
    color: #20242a;
    font-size: 23px;
    line-height: 1.4;
}
.pm-wx-onboard-card p { margin: 8px 0 18px; color: #68706b; font-size: 14px; line-height: 1.75; }
.pm-wx-onboard-icon { font-size: 44px; line-height: 1.2; }
.pm-wx-onboard-success {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 auto;
    border-radius: 50%;
    background: #07c160;
    color: #fff;
    font-size: 38px;
    font-weight: 700;
}
.pm-wx-onboard-benefits {
    margin: 20px 0;
    padding: 14px 16px;
    border-radius: 10px;
    background: #f2faf5;
    color: #27854a;
    font-size: 14px;
    line-height: 2;
}
.pm-wx-onboard-main {
    display: block;
    width: 100%;
    margin-top: 20px;
    padding: 13px 16px;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
}
.pm-wx-onboard-qr {
    display: block;
    width: min(220px, 70vw);
    height: auto;
    aspect-ratio: 1;
    margin: 18px auto;
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid #e5e9e6;
    border-radius: 12px;
    background: #fff;
}
.pm-wx-onboard-note { color: #9a6a20 !important; font-size: 13px !important; }
.pm-wx-onboard-hint { margin-top: 10px; color: #999; font-size: 12px; }
.pm-wx-onboard-noqr { margin: 22px 0; padding: 22px 12px; background: #f7f7f7; color: #888; border-radius: 10px; }
.pm-wx-onboard-skip {
    display: block;
    margin: 18px auto 0;
    padding: 8px 12px;
    border: 0;
    background: transparent;
    color: #858c87;
    font-size: 14px;
    cursor: pointer;
}
@media (max-width: 380px) {
    .pm-wx-onboard { padding-left: 12px; padding-right: 12px; }
    .pm-wx-onboard-card { padding-left: 18px; padding-right: 18px; }
    .pm-wx-onboard-card h1 { font-size: 21px; }
}

/* 笔记明细「＋提报」人工加入入口（2026-10-16 加白提报清单计划层）：hover 行才出现，平时不占位 */
.dx-jb-add {
    visibility: hidden;
    display: inline-block;
    vertical-align: middle;
    margin-left: 6px;
    padding: 0 5px;
    font-size: 11px;
    line-height: 18px;
    border: 1px solid #91caff;
    border-radius: 4px;
    background: #fff;
    color: #1677ff;
    cursor: pointer;
}
tr:hover .dx-jb-add {
    visibility: visible;
}
.dx-jb-add:hover {
    background: #e6f4ff;
}

/* 点星「去提报」笔记明细定位高亮（2026-10-20 入口重构 P1②，PRD: docs/PRD-点星加白链路入口重构.md）：
   流量目标汇总页 🔴/🟡 行「＋ 去提报」打开订单详情后，笔记区短暂描边引导 */
.dx-notes-flash {
    outline: 2px solid #FF2442;
    outline-offset: 2px;
    border-radius: 8px;
}

/* ==== 三方启动会 · 会议演示模式（2026-10-23，PRD: docs/PRD-商单前置沟通.md §6） ====
   全屏投屏页：深色渐变底 + 大字号，kd- 前缀独立命名空间，不影响主控台 */
#app-kickoff-deck.active { position: fixed; inset: 0; z-index: 100; overflow: hidden; }
.kd-stage {
    position: relative; height: 100vh; display: flex; flex-direction: column;
    background: radial-gradient(1200px 700px at 70% -10%, #2b3a67 0%, #141b2d 55%, #0d1220 100%);
    color: #f5f7fa;
}
.kd-topbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 28px; flex-shrink: 0;
}
.kd-back {
    background: rgba(255,255,255,0.08); color: #cdd6e4; border: 1px solid rgba(255,255,255,0.16);
    border-radius: 20px; padding: 6px 16px; font-size: 13px; cursor: pointer;
}
.kd-back:hover { background: rgba(255,255,255,0.16); color: #fff; }
.kd-counter { font-size: 13px; color: #8a94a8; letter-spacing: 1px; }
.kd-slide-wrap { flex: 1; display: flex; min-height: 0; }
.kd-slide {
    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 20px 7vw 30px; text-align: center; animation: kdFadeIn 0.35s ease;
    overflow-y: auto;
}
@keyframes kdFadeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.kd-h2 { font-size: 34px; font-weight: 700; letter-spacing: 1px; margin: 0 0 34px; color: #fff; }
.kd-foot-note { margin-top: 30px; font-size: 15px; color: #8a94a8; }
.kd-empty { color: #5b6474; font-style: normal; }
.kd-empty-big { font-size: 18px; padding: 40px; }
.kd-dots { display: flex; gap: 10px; justify-content: center; padding: 12px 0 4px; flex-shrink: 0; }
.kd-dot {
    width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,0.22); cursor: pointer;
    transition: all 0.2s;
}
.kd-dot.active { background: #ffd666; transform: scale(1.35); }
.kd-hint { text-align: center; font-size: 12px; color: #5b6474; padding-bottom: 14px; flex-shrink: 0; }

/* 屏 0 封面 */
.kd-cover-kicker {
    font-size: 18px; letter-spacing: 6px; color: #ffd666; margin-bottom: 22px; font-weight: 600;
}
.kd-cover-title { font-size: 56px; font-weight: 800; margin: 0 0 24px; color: #fff; letter-spacing: 1px; }
.kd-cover-sub { display: flex; gap: 10px; justify-content: center; margin-bottom: 26px; flex-wrap: wrap; }
.kd-badge {
    display: inline-block; padding: 5px 18px; border-radius: 20px; font-size: 15px;
    background: rgba(255,214,102,0.14); color: #ffd666; border: 1px solid rgba(255,214,102,0.4);
}
.kd-badge-dim { background: rgba(255,255,255,0.08); color: #cdd6e4; border-color: rgba(255,255,255,0.2); }
.kd-cover-date { font-size: 17px; color: #8a94a8; letter-spacing: 2px; }

/* 屏 1 现状共识 */
.kd-review-cols { display: flex; gap: 28px; width: 100%; max-width: 1080px; text-align: left; }
.kd-review-col {
    flex: 1; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px; padding: 26px 28px;
}
.kd-review-col.good { border-top: 4px solid #52c41a; }
.kd-review-col.bad { border-top: 4px solid #ff7875; }
.kd-review-head { font-size: 21px; font-weight: 700; margin-bottom: 16px; }
.kd-review-list { margin: 0; padding-left: 4px; list-style: none; }
.kd-review-list li {
    font-size: 17px; line-height: 1.75; padding: 7px 0 7px 22px; position: relative; color: #e8ecf3;
}
.kd-review-list li::before { content: '·'; position: absolute; left: 4px; color: #ffd666; font-weight: 800; }

/* 屏 2 对标案例 */
.kd-ref-row {
    display: flex; gap: 24px; justify-content: center; align-items: stretch;
    flex-wrap: nowrap; max-width: 1200px; width: 100%;
}
.kd-ref-card {
    position: relative; width: 220px; background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; overflow: hidden;
    display: flex; flex-direction: column;
}
.kd-ref-img { width: 100%; aspect-ratio: 3 / 4; background: #1c2436; overflow: hidden; }
.kd-ref-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kd-ref-noimg { background: linear-gradient(135deg, #223052, #141b2d); }
.kd-ref-rounds {
    position: absolute; top: 10px; right: 10px; background: rgba(0,0,0,0.62); color: #ffd666;
    font-size: 12px; padding: 3px 10px; border-radius: 12px; border: 1px solid rgba(255,214,102,0.5);
}
.kd-ref-body { padding: 12px 14px 14px; text-align: left; }
.kd-ref-caption { font-size: 15px; font-weight: 600; color: #f5f7fa; line-height: 1.4; margin-bottom: 6px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kd-ref-meta { font-size: 12px; color: #8a94a8; }

/* 屏 3 运营策略 */
.kd-strat-hero {
    background: linear-gradient(135deg, rgba(255,214,102,0.16), rgba(255,214,102,0.05));
    border: 1px solid rgba(255,214,102,0.4); border-radius: 18px;
    padding: 26px 40px; margin-bottom: 26px; max-width: 900px; width: 100%;
}
.kd-strat-label { font-size: 15px; color: #ffd666; font-weight: 600; margin-bottom: 10px; letter-spacing: 1px; }
.kd-strat-product { font-size: 32px; font-weight: 800; color: #fff; line-height: 1.4; }
.kd-strat-grid { display: flex; gap: 24px; max-width: 900px; width: 100%; text-align: left; }
.kd-strat-item {
    flex: 1; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
    border-radius: 14px; padding: 20px 24px;
}
.kd-strat-text { font-size: 17px; line-height: 1.8; color: #e8ecf3; white-space: pre-wrap; }

/* 屏 4 执行倒推时间线 */
.kd-tl-row { display: flex; align-items: flex-start; justify-content: center; width: 100%; max-width: 1180px; }
.kd-tl-node { flex-shrink: 0; width: 150px; text-align: center; position: relative; padding-top: 26px; }
.kd-tl-dot {
    position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: 14px; height: 14px; border-radius: 50%; background: #5b6474; border: 3px solid #2b3a67;
}
.kd-tl-node.now .kd-tl-dot { background: #ffd666; border-color: rgba(255,214,102,0.35); }
.kd-tl-label { font-size: 16px; font-weight: 600; color: #e8ecf3; margin-bottom: 6px; }
.kd-tl-node.now .kd-tl-label { color: #ffd666; }
.kd-tl-date { font-size: 13px; color: #8a94a8; }
.kd-tl-line { flex: 1; height: 2px; background: #3a4763; margin-top: 6px; min-width: 20px; }

/* 屏 5 配合确认 */
.kd-confirm-item { max-width: none; }
.kd-confirm-thanks { margin-top: 34px; font-size: 19px; color: #ffd666; letter-spacing: 1px; }

/* 分享模式品牌字（免登录只读页顶栏，替代返回按钮） */
.kd-brand { font-size: 15px; font-weight: 700; letter-spacing: 1px; color: inherit; padding: 0 4px; }
.kd-stage.kd-theme-orange .kd-brand { color: #3D1E04; }

/* 📄 导出 PDF 打印样式（2026-10-23 二期）：六屏每屏一页横版，隐藏顶栏/进度点/提示，保留主题色 */
@media print {
    @page { size: landscape; margin: 0; }
    body.kd-printing { background: none; margin: 0 !important; }
    body.kd-printing #app-kickoff-deck { position: static !important; overflow: visible !important; }
    body.kd-printing .kd-topbar,
    body.kd-printing .kd-dots,
    body.kd-printing .kd-hint { display: none !important; }
    body.kd-printing .kd-stage { height: auto; display: block; }
    body.kd-printing .kd-slide-wrap { display: block; overflow: visible; }
    body.kd-printing .kd-slide {
        display: flex !important; box-sizing: border-box; height: 100vh; overflow: hidden;
        page-break-after: always; break-after: page; animation: none;
    }
    body.kd-printing .kd-slide:last-child { page-break-after: auto; break-after: auto; }
    body.kd-printing .kd-stage,
    body.kd-printing .kd-slide,
    body.kd-printing .kd-review-col,
    body.kd-printing .kd-strat-hero,
    body.kd-printing .kd-strat-item,
    body.kd-printing .kd-ref-card,
    body.kd-printing .kd-badge {
        -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
}

/* ==== 演示页橙色主题 v2（小蚕品牌色双色系，2026-10-23 owner 拍板重设计） ====
   设计思路：暖米白底 + 品牌橙点睛（拒绝整屏橙渐变，投屏刺眼且廉价）。
   底=奶油暖白渐变 + 两团橙色环境光晕；正文=深咖；强调=品牌橙 #F76707/#E8590C；
   卡片=纯白 + 暖描边 + 橙调软阴影。.kd-stage 挂 kd-theme-orange 时整体覆盖 */
.kd-stage.kd-theme-orange {
    background:
        radial-gradient(900px 520px at 85% -10%, rgba(255,138,26,0.16) 0%, rgba(255,138,26,0) 62%),
        radial-gradient(720px 520px at 6% 112%, rgba(255,171,64,0.13) 0%, rgba(255,171,64,0) 58%),
        linear-gradient(160deg, #FFF9F3 0%, #FFF1E4 55%, #FFE9D4 100%);
    color: #4A2C14;
}
.kd-stage.kd-theme-orange .kd-h2 { color: #3D1E04; }
.kd-stage.kd-theme-orange .kd-counter,
.kd-stage.kd-theme-orange .kd-foot-note,
.kd-stage.kd-theme-orange .kd-cover-date,
.kd-stage.kd-theme-orange .kd-ref-meta,
.kd-stage.kd-theme-orange .kd-tl-date { color: #A87B58; }
.kd-stage.kd-theme-orange .kd-hint { color: #C49B7E; }
.kd-stage.kd-theme-orange .kd-empty { color: #C9A181; }
.kd-stage.kd-theme-orange .kd-back {
    background: #FFFFFF; color: #E8590C; border: 1px solid #FFD8B0;
    box-shadow: 0 2px 8px rgba(232,89,12,0.10);
}
.kd-stage.kd-theme-orange .kd-back:hover { background: #FFF3E8; color: #D9480F; }
.kd-stage.kd-theme-orange .kd-dot { background: #F0C9A6; }
.kd-stage.kd-theme-orange .kd-dot.active { background: #F76707; }
/* 屏 0 封面 */
.kd-stage.kd-theme-orange .kd-cover-kicker { color: #F76707; }
.kd-stage.kd-theme-orange .kd-cover-title { color: #3D1E04; }
.kd-stage.kd-theme-orange .kd-badge {
    background: #FFE3C7; color: #D9480F; border-color: #FFC591;
}
.kd-stage.kd-theme-orange .kd-badge-dim {
    background: rgba(255,255,255,0.72); color: #A87B58; border-color: #F0D3B8;
}
/* 屏 1 现状共识 */
.kd-stage.kd-theme-orange .kd-review-col {
    background: #FFFFFF; border: 1px solid #F6DEC6;
    box-shadow: 0 8px 24px rgba(190,110,40,0.08);
}
.kd-stage.kd-theme-orange .kd-review-head { color: #3D1E04; }
.kd-stage.kd-theme-orange .kd-review-list li { color: #5C3A1E; }
.kd-stage.kd-theme-orange .kd-review-list li::before { color: #F76707; }
/* 屏 2 对标案例 */
.kd-stage.kd-theme-orange .kd-ref-card {
    background: #FFFFFF; border: 1px solid #F6DEC6;
    box-shadow: 0 8px 24px rgba(190,110,40,0.10);
}
.kd-stage.kd-theme-orange .kd-ref-img { background: #FBEBDA; }
.kd-stage.kd-theme-orange .kd-ref-noimg { background: linear-gradient(135deg, #FFDCA8, #FFC591); }
.kd-stage.kd-theme-orange .kd-ref-rounds {
    background: rgba(232,89,12,0.9); color: #FFFFFF; border-color: transparent;
}
.kd-stage.kd-theme-orange .kd-ref-caption { color: #3D1E04; }
/* 屏 3 运营策略 */
.kd-stage.kd-theme-orange .kd-strat-hero {
    background: linear-gradient(135deg, #FFE3C7, #FFF3E8);
    border: 1px solid #FFC591;
    box-shadow: 0 8px 24px rgba(190,110,40,0.10);
}
.kd-stage.kd-theme-orange .kd-strat-label { color: #E8590C; }
.kd-stage.kd-theme-orange .kd-strat-product { color: #3D1E04; }
.kd-stage.kd-theme-orange .kd-strat-item {
    background: #FFFFFF; border: 1px solid #F6DEC6;
    box-shadow: 0 8px 24px rgba(190,110,40,0.08);
}
.kd-stage.kd-theme-orange .kd-strat-text { color: #5C3A1E; }
/* 屏 4 执行倒推时间线 */
.kd-stage.kd-theme-orange .kd-tl-dot { background: #F0C9A6; border-color: #FFE9D6; }
.kd-stage.kd-theme-orange .kd-tl-node.now .kd-tl-dot { background: #F76707; border-color: rgba(247,103,7,0.28); }
.kd-stage.kd-theme-orange .kd-tl-label { color: #5C3A1E; }
.kd-stage.kd-theme-orange .kd-tl-node.now .kd-tl-label { color: #E8590C; }
.kd-stage.kd-theme-orange .kd-tl-line { background: #F0C9A6; }
/* 屏 5 配合确认 */
.kd-stage.kd-theme-orange .kd-confirm-thanks { color: #E8590C; }

/* 演示页窄屏兜底（笔记本投屏 1366×768 等） */
@media (max-width: 900px) {
    .kd-cover-title { font-size: 38px; }
    .kd-h2 { font-size: 26px; margin-bottom: 22px; }
    .kd-review-cols, .kd-strat-grid { flex-direction: column; gap: 16px; }
    .kd-strat-product { font-size: 24px; }
    .kd-ref-row { flex-wrap: wrap; }
    .kd-ref-card { width: 170px; }
    .kd-tl-node { width: 104px; }
    .kd-tl-label { font-size: 13px; }
}
