/* ===== Global Reset ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; background: #f4f5f7; color: #222; font-size: 13px; line-height: 1.5; }
a { text-decoration: none; color: inherit; }

/* ===== 锁图标 + 密码弹窗 ===== */
.lock-icon {
    width: 34px; height: 34px;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    background: #fff;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px;
    transition: all .15s ease;
}
.lock-icon:hover { background: #f3f4f6; border-color: #9ca3af; }
.lock-icon-authed {
    border-color: #5eead4;
    background: #f0fdfa;
    color: #0d9488;
}
.lock-icon-authed:hover { background: #ccfbf1; }

/* 顶部登录按钮（2026-07-10 改明显：替换原 🔒 小锁图标） */
.login-top-btn {
    font-weight: 600;
    padding: 7px 18px;
    font-size: 13px;
    box-shadow: 0 2px 8px rgba(26,115,232,.28);
    animation: loginPulse 2.2s ease-in-out infinite;
}
.login-top-btn:hover { box-shadow: 0 4px 12px rgba(26,115,232,.4); }
@keyframes loginPulse {
    0%, 100% { box-shadow: 0 2px 8px rgba(26,115,232,.28); }
    50%      { box-shadow: 0 2px 14px rgba(26,115,232,.55); }
}

.pwd-modal {
    position: fixed; inset: 0;
    background: rgba(17, 24, 39, .45);
    z-index: 9999;
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(2px);
}
.pwd-modal-box {
    background: #fff;
    width: 360px;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 20px 50px rgba(0,0,0,.18);
}
.pwd-modal-title {
    font-size: 16px; font-weight: 600;
    color: #111827;
    margin-bottom: 16px;
    text-align: center;
}
.pwd-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    outline: none;
    transition: border-color .15s;
}
.pwd-input:focus { border-color: #0d9488; box-shadow: 0 0 0 3px rgba(13,148,136,.12); }
.pwd-error {
    color: #dc2626;
    font-size: 12px;
    min-height: 18px;
    margin-top: 8px;
    text-align: center;
}
.pwd-actions {
    display: flex; gap: 8px;
    margin-top: 16px;
    justify-content: flex-end;
}

/* ===== Sidebar Layout ===== */
.app-layout { display: flex; min-height: 100vh; }
.sidebar { width: 200px; background: #0d2c54; color: #fff; flex-shrink: 0; display: flex; flex-direction: column; position: fixed; top: 0; left: 0; height: 100vh; z-index: 100; box-shadow: 2px 0 12px rgba(0,0,0,0.2); }
.sidebar-brand { padding: 24px 20px 20px; border-bottom: 1px solid rgba(255,255,255,0.08); background: linear-gradient(180deg, rgba(255,255,255,0.03), transparent); display: flex; align-items: center; gap: 10px; }
.sidebar-brand .brand-icon { width: 28px; height: 28px; flex-shrink: 0; box-shadow: 0 2px 6px rgba(99, 102, 241, 0.35); }
.sidebar-brand .brand-text { display: flex; flex-direction: column; min-width: 0; }
.sidebar-brand h1 { font-size: 17px; font-weight: 700; color: #fff; margin-bottom: 4px; letter-spacing: 0.4px; }
.sidebar-brand span { font-size: 11px; color: rgba(255,255,255,0.45); letter-spacing: 0.3px; }
.sidebar-nav { flex: 1; padding: 14px 0 24px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.2) transparent; }
.sidebar-nav::-webkit-scrollbar { width: 4px; }
.sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }
.nav-section { padding: 20px 20px 6px; font-size: 10px; color: rgba(255,255,255,0.35); text-transform: uppercase; letter-spacing: 1.5px; font-weight: 700; position: relative; }
.nav-section::before { content: ''; position: absolute; top: 0; left: 20px; right: 20px; height: 1px; background: rgba(255,255,255,0.06); }
.nav-section:first-child { padding-top: 10px; }
.nav-item { display: block; padding: 9px 20px; font-size: 14px; color: rgba(255,255,255,0.72); cursor: pointer; transition: all 0.2s ease; border-left: 3px solid transparent; margin: 1px 0; position: relative; }
.nav-item:hover { color: #fff; background: rgba(74, 158, 255, 0.08); border-left-color: rgba(74, 158, 255, 0.4); padding-left: 24px; }
.nav-item.active { color: #fff; background: rgba(74, 158, 255, 0.18); border-left-color: #4a9eff; font-weight: 600; box-shadow: inset 0 0 0 1px rgba(74, 158, 255, 0.15); }
.nav-item.sub { padding-left: 30px; font-size: 13px; color: rgba(255,255,255,0.62); }
.nav-item.sub:hover { padding-left: 34px; }
.nav-item.sub.active { padding-left: 30px; }

/* ===== Main Content ===== */
.main-content { margin-left: 200px; flex: 1; padding: 0; min-height: 100vh; }
.top-bar { background: #fff; border-bottom: 0.5px solid #e5e5e5; padding: 12px 24px; display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 50; }
.top-bar h2 { font-size: 16px; font-weight: 500; color: #222; }
.top-bar .subtitle { font-size: 12px; color: #888; margin-top: 2px; }
.top-bar-left { display: flex; align-items: center; gap: 14px; }
.top-actions { display: flex; gap: 8px; }

/* ===== Logo ===== */
.logo-area { position: relative; width: 44px; height: 44px; flex-shrink: 0; }
.city-logo { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; border: 0.5px solid #eee; }
.logo-placeholder { width: 44px; height: 44px; border-radius: 8px; border: 1.5px dashed #ddd; display: flex; align-items: center; justify-content: center; color: #bbb; cursor: pointer; background: #fafafa; transition: all 0.2s; }
.logo-placeholder:hover { border-color: #1a73e8; color: #1a73e8; }
.logo-actions { position: absolute; top: -6px; right: -6px; display: none; gap: 2px; }
.logo-area:hover .logo-actions { display: flex; }
.logo-btn { width: 22px; height: 22px; border-radius: 50%; border: 0.5px solid #ddd; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.1); }
.logo-btn:hover { background: #f5f5f5; }
.page-content { padding: 20px 24px; }

/* ===== Buttons ===== */
.btn { display: inline-flex; align-items: center; gap: 4px; padding: 7px 16px; font-size: 12px; border: 0.5px solid #ddd; border-radius: 6px; background: #fff; color: #555; cursor: pointer; transition: all 0.15s; }
.btn:hover { background: #f8f8f8; border-color: #ccc; }
.btn-primary { background: #1a73e8; color: #fff; border-color: #1a73e8; }
.btn-primary:hover { background: #1557b0; }
.btn-success { background: #1a9e75; color: #fff; border-color: #1a9e75; }
.btn-danger { background: #e24b4a; color: #fff; border-color: #e24b4a; }
.btn-sm { padding: 4px 10px; font-size: 11px; }
.btn-copy { background: #fff; color: #1a73e8; border-color: #c5d4ea; }
.btn-copy:hover { background: #eef4ff; border-color: #1a73e8; }
.btn-copy.copied { background: #1a9e75; color: #fff; border-color: #1a9e75; }
.btn-ghost { background: transparent; border: none; color: #888; padding: 4px 8px; }
.btn-ghost:hover { color: #222; }

/* ===== Tab Bar ===== */
.tab-bar { display: flex; border-bottom: 0.5px solid #eee; margin-bottom: 16px; background: #fff; }
.tab-item { padding: 10px 20px; font-size: 13px; color: #888; cursor: pointer; border-bottom: 4px solid transparent; transition: all 0.15s; }
.tab-item:hover { color: #555; }
.tab-item.active { color: #1a73e8; background: #dbeafe; border-bottom-color: #1a73e8; font-weight: 600; }

/* ===== Cards ===== */
.card { background: #fff; border: 0.5px solid #e5e5e5; border-radius: 8px; padding: 16px 20px; margin-bottom: 14px; }
.card-title { font-size: 14px; font-weight: 500; color: #222; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.card-title .badge { display: inline-block; width: 4px; height: 16px; border-radius: 2px; }

/* ===== Info Grid ===== */
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.info-item { padding: 10px 12px; background: #fafafa; border-radius: 6px; }
.info-item .label { font-size: 11px; color: #999; margin-bottom: 4px; }
.info-item .value { font-size: 13px; color: #222; word-break: break-word; }

/* ===== Section Cards (分版块) ===== */
.section-card { background: #fff; border: 0.5px solid #e5e5e5; border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; }
.section-title { font-size: 14px; font-weight: 600; color: #333; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; border-bottom: 0.5px solid #f0f0f0; padding-bottom: 10px; }
.section-title .badge { display: inline-block; width: 4px; height: 16px; border-radius: 2px; }
.info-grid.two-col { grid-template-columns: 1fr 1fr; gap: 24px; }
.info-grid.three-col { grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
.info-grid.four-col { grid-template-columns: 1.1fr 0.9fr 1fr 0.65fr; gap: 14px; }
.info-subgroup { background: #fafbfc; border: 0.5px solid #f0f0f0; border-radius: 6px; padding: 12px 14px; }
.subgroup-title { font-size: 13px; font-weight: 600; color: #444; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 0.5px dashed #e5e5e5; display: flex; align-items: center; gap: 6px; }
.subgroup-title .badge { display: inline-block; width: 3px; height: 13px; border-radius: 2px; }
.info-subgroup .info-item { background: #fff; margin-bottom: 8px; }
.info-subgroup .info-item:last-child { margin-bottom: 0; }
.info-subgroup .info-item .label { font-size: 11px; color: #999; }
.info-subgroup .info-item .value { font-size: 13px; min-height: 18px; cursor: pointer; }
.info-subgroup .info-item .value:hover { background: #fafbfc; }
/* info-editable 字段：与 .value 同款样式，叠加 .doctor-ce 风格（淡青光晕） */
.info-subgroup .info-item .info-editable {
    font-size: 13px;
    color: #222;
    min-height: 18px;
    cursor: pointer;
    word-break: break-word;
}
.info-subgroup .info-item .info-editable.doctor-ce:hover { background: #f0fdfa; }
.info-subgroup .info-item .info-editable.doctor-ce:focus {
    background: #fff;
    box-shadow: 0 0 0 2px #5eead4;
    caret-color: #0d9488;
    outline: none;
}
.info-subgroup .info-item .value .text-muted.honor-empty { color: #ccc; font-style: italic; }

/* Image 1:1 fixed size inside subgroup - left col layout */
.info-subgroup .image-and-text { display: flex; gap: 14px; align-items: flex-start; }
.info-subgroup .image-and-text .image-upload-item { flex-shrink: 0; }
.info-subgroup .image-and-text .info-item { flex: 1; min-width: 0; }
.info-upload-fixed { width: 200px; height: 200px; }
.info-upload-fixed .image-preview-fixed { width: 200px; height: 200px; border-radius: 6px; overflow: hidden; border: 0.5px solid #eee; position: relative; }
.info-upload-fixed .image-preview-fixed img { width: 100%; height: 100%; object-fit: cover; }
.info-upload-fixed .image-placeholder-fixed { width: 200px; height: 200px; border: 1.5px dashed #ddd; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: #aaa; cursor: pointer; background: #fafafa; font-size: 12px; transition: all 0.2s; }
.info-upload-fixed .image-placeholder-fixed:hover { border-color: #1a73e8; color: #1a73e8; }
.info-item.tall { padding: 14px 16px; }
.info-item.tall .value { font-size: 13px; line-height: 1.7; }
.value-truncate { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; transition: color 0.2s; }
.value-truncate:hover { color: #1a73e8; }
.value-line6 { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; transition: color 0.2s; }
.value-line6:hover { color: #1a73e8; }
.value-line7 { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; transition: color 0.2s; }
.value-line7:hover { color: #1a73e8; }
.value-line10 { display: -webkit-box; -webkit-line-clamp: 10; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; transition: color 0.2s; }
.value-line10:hover { color: #1a73e8; }

/* Hospital image upload */
.image-upload-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; padding-top: 14px; border-top: 0.5px dashed #e5e5e5; }
.image-upload-item { }
.image-label { font-size: 12px; color: #888; margin-bottom: 6px; }
.image-placeholder { height: 110px; border: 1.5px dashed #ddd; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: #aaa; cursor: pointer; background: #fafafa; font-size: 12px; transition: all 0.2s; }
.image-placeholder:hover { border-color: #1a73e8; color: #1a73e8; }
.image-preview { position: relative; height: 110px; border-radius: 6px; overflow: hidden; border: 0.5px solid #eee; }
.image-preview img { width: 100%; height: 100%; object-fit: cover; }
.image-del { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; border: none; cursor: pointer; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.image-del:hover { background: #e24b4a; }

/* Honor section */
.honor-section { margin-top: 16px; padding-top: 14px; border-top: 0.5px dashed #e5e5e5; display: grid; grid-template-columns: 1fr 1.4fr; gap: 14px; }
.honor-box { display: flex; flex-direction: column; gap: 8px; }
.honor-item { background: #fafbfc; border: 0.5px solid #f0f0f0; border-radius: 6px; padding: 12px 14px; }
.medal-path-item { background: #fafbfc; border: 0.5px solid #f0f0f0; border-radius: 6px; padding: 12px 14px; }
.honor-detail { background: #fafbfc; border: 0.5px dashed #ddd; border-radius: 6px; padding: 12px 14px; min-height: 120px; }
.honor-detail .label { font-size: 11px; color: #999; margin-bottom: 6px; }
.honor-detail-text { color: #aaa; font-size: 13px; line-height: 1.8; }

/* Honor section right column (1fr) */
.honor-section-right { margin-top: 16px; padding-top: 14px; border-top: 0.5px dashed #e5e5e5; }
.section-title-sm { font-size: 13px; font-weight: 600; color: #555; margin-bottom: 10px; padding-left: 8px; border-left: 3px solid #d97706; }
.honor-box-stack { display: flex; flex-direction: column; gap: 10px; }
.honor-box-stack .info-item { background: #fafbfc; border: 0.5px solid #f0f0f0; border-radius: 6px; padding: 12px 14px; }

/* Honor section included (in main section) */
.honor-section-included { margin-top: 16px; padding-top: 14px; border-top: 0.5px dashed #e5e5e5; }
.honor-detail-box { min-height: 100px; }
.honor-detail-content { font-size: 13px; line-height: 1.9; color: #333; }
.honor-value { display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.honor-value .honor-display { flex: 1; word-break: break-all; }
.honor-value .honor-empty { color: #bbb; font-style: italic; cursor: pointer; }
.honor-value .honor-empty:hover { color: #1a73e8; }
.btn-edit-inline { background: transparent; border: 0.5px solid #ddd; color: #888; border-radius: 4px; padding: 2px 8px; font-size: 12px; cursor: pointer; flex-shrink: 0; }
.btn-edit-inline:hover { background: #1a73e8; color: #fff; border-color: #1a73e8; }
.honor-inline-editor { width: 100%; min-height: 60px; padding: 8px 10px; border: 0.5px solid #1a73e8; border-radius: 4px; font-size: 13px; font-family: inherit; resize: vertical; outline: none; }
.honor-inline-actions { margin-top: 6px; display: flex; gap: 6px; }

/* Brand assets image cells (in 形象资产 tab) */
.brand-image-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-bottom: 12px; }
.brand-image-cell { background: #fafbfc; border: 0.5px solid #f0f0f0; border-radius: 6px; padding: 12px 14px; }
.image-preview-flex { position: relative; min-height: 100px; max-height: 200px; border-radius: 6px; border: 0.5px solid #eee; background: #fff; overflow: hidden; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.image-contain { max-width: 100%; max-height: 200px; display: block; object-fit: contain; }
.image-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.55); display: none; align-items: center; justify-content: center; gap: 8px; }
.image-preview-flex:hover .image-overlay { display: flex; }
.image-placeholder-flex { min-height: 100px; border: 1.5px dashed #ddd; border-radius: 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #aaa; cursor: pointer; background: #fafafa; font-size: 12px; gap: 4px; transition: all 0.2s; }
.image-placeholder-flex:hover { border-color: #1a73e8; color: #1a73e8; }
.image-placeholder-flex .ph-icon { font-size: 22px; }

/* Confirm modal (used for image delete) */
.confirm-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 400; align-items: center; justify-content: center; }
.confirm-modal.show { display: flex; }
.confirm-box { background: #fff; border-radius: 10px; padding: 24px 28px; width: 380px; max-width: 90vw; }
.confirm-title { font-size: 15px; font-weight: 600; margin-bottom: 10px; }
.confirm-content { font-size: 13px; color: #555; margin-bottom: 18px; }
.confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }

/* View image modal (full size preview) */
.view-image-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.85); z-index: 500; align-items: center; justify-content: center; padding: 24px; }
.view-image-modal.show { display: flex; }
.view-image-box { background: #fff; border-radius: 10px; overflow: hidden; max-width: 90vw; max-height: 90vh; display: flex; flex-direction: column; }
.view-image-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-bottom: 0.5px solid #eee; font-size: 14px; font-weight: 600; }
.view-image-close { background: transparent; border: none; font-size: 24px; line-height: 1; color: #888; cursor: pointer; padding: 0 4px; }
.view-image-close:hover { color: #333; }
.view-image-content { padding: 20px; max-width: 90vw; max-height: 80vh; overflow: auto; display: flex; align-items: center; justify-content: center; }
.view-image-content img { max-width: 100%; max-height: 80vh; object-fit: contain; display: block; }

/* Account drawer (right side) */
.drawer-mask { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 600; }
.drawer-mask.show { display: block; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 480px; max-width: 92vw; background: #fff; z-index: 700; transform: translateX(100%); transition: transform 0.25s; display: flex; flex-direction: column; box-shadow: -4px 0 16px rgba(0,0,0,0.08); }
.drawer.show { transform: translateX(0); }
.drawer-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 0.5px solid #eee; }
.drawer-title { font-size: 15px; font-weight: 600; }
.drawer-close { background: transparent; border: none; font-size: 24px; line-height: 1; color: #888; cursor: pointer; }
.drawer-close:hover { color: #333; }
.drawer-body { flex: 1; overflow-y: auto; padding: 16px 20px; }
.drawer-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 0.5px solid #eee; background: #fafbfc; }
.form-row { margin-bottom: 12px; }
.form-row-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.form-label { font-size: 12px; color: #888; margin-bottom: 4px; }
.form-input { width: 100%; padding: 7px 10px; border: 0.5px solid #ddd; border-radius: 4px; font-size: 13px; font-family: inherit; outline: none; }
.form-input:focus { border-color: #1a73e8; }

/* QR uploader */
.qr-uploader { min-height: 110px; border: 1.5px dashed #ddd; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: #fafafa; cursor: pointer; position: relative; padding: 6px; }
.qr-uploader:hover { border-color: #1a73e8; }
.qr-placeholder { color: #aaa; font-size: 12px; }
.qr-preview-img { max-width: 100%; max-height: 110px; object-fit: contain; }
.qr-remove { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; border: none; cursor: pointer; font-size: 14px; line-height: 1; }

/* Account table */
.account-table-wrap { overflow-x: auto; }
.account-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.account-table th { background: #fafbfc; padding: 10px 8px; text-align: left; font-weight: 600; color: #555; border-bottom: 0.5px solid #e5e5e5; font-size: 12px; white-space: nowrap; }
.account-table td { padding: 10px 8px; border-bottom: 0.5px solid #f0f0f0; vertical-align: middle; }
.account-table tr:hover { background: #fafbfc; }
.login-cell { font-size: 12px; line-height: 1.5; }
.login-cell .login-line { white-space: nowrap; }
.qr-thumb { width: 50px; height: 50px; object-fit: cover; border-radius: 4px; cursor: pointer; border: 0.5px solid #eee; }
.empty-hint { padding: 40px 20px; text-align: center; color: #999; font-size: 13px; }

/* Status dot */
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }
.status-正常 { background: #22c55e; }
.status-异常 { background: #ef4444; }
.status-即将到期 { background: #f59e0b; }
.status-已过期 { background: #6b7280; }
.status-注销 { background: #1f2937; }

/* Big section title (like 品牌形象信息) - reusable */
.section-title-big { font-size: 14px; font-weight: 600; color: #333; margin: 16px 0 14px; display: flex; align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 0.5px solid #f0f0f0; }
.section-title-big .badge { display: inline-block; width: 4px; height: 16px; border-radius: 2px; background: #d97706; }

/* Image 1:1 fixed size (legacy single column) */
.image-upload-item.image-1x1-fixed { display: flex; flex-direction: column; align-items: flex-start; }
.image-upload-item.image-1x1-fixed .image-preview-fixed { width: 220px; height: auto; border-radius: 6px; overflow: hidden; border: 0.5px solid #eee; position: relative; background: #fafbfc; }
.image-upload-item.image-1x1-fixed .image-preview-fixed img { width: 100%; height: 220px; object-fit: cover; display: block; }
.image-upload-item.image-1x1-fixed .image-preview-fixed .license-actions { width: 100%; box-sizing: border-box; }
.image-upload-item.image-1x1-fixed .image-placeholder-fixed { width: 220px; height: 220px; border: 1.5px dashed #ddd; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: #aaa; cursor: pointer; background: #fafafa; font-size: 12px; transition: all 0.2s; }
.image-upload-item.image-1x1-fixed .image-placeholder-fixed:hover { border-color: #1a73e8; color: #1a73e8; }
.image-upload-item.image-1x1-fixed .image-del { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; border: none; cursor: pointer; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.image-upload-item.image-1x1-fixed .image-del:hover { background: #e24b4a; }

/* Full text modal */
.fulltext-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 300; align-items: center; justify-content: center; }
.fulltext-modal.show { display: flex; }
.fulltext-box { background: #fff; border-radius: 10px; padding: 24px 28px; width: 600px; max-width: 90vw; max-height: 80vh; overflow-y: auto; }
.fulltext-title { font-size: 16px; font-weight: 600; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 0.5px solid #eee; }
.fulltext-content { font-size: 13px; line-height: 1.8; color: #333; white-space: pre-line; }
.fulltext-close { margin-top: 16px; text-align: right; }

/* ===== Tables ===== */
.table-wrap { overflow-x: auto; }
table.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
table.data-table th { padding: 8px 10px; text-align: left; border: 0.5px solid #eee; background: #f8f8f8; color: #888; font-weight: 400; white-space: nowrap; }
table.data-table td { padding: 8px 10px; border: 0.5px solid #eee; color: #444; }
table.data-table tr:hover td { background: #fafafa; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; }
.tag-blue { background: #e8f4fd; color: #1a73e8; }
.tag-orange { background: #fef3e2; color: #d97706; }
.tag-green { background: #e1f5ee; color: #0b6e56; }
.tag-gray { background: #f0f0f0; color: #666; }

/* ===== City Cards (Home) ===== */
.city-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.city-card { background: #fff; border: 0.5px solid #e5e5e5; border-radius: 10px; padding: 18px 20px; cursor: pointer; transition: all 0.2s; position: relative; overflow: hidden; }
.city-card:hover { border-color: #1a73e8; box-shadow: 0 2px 12px rgba(26,115,232,0.1); transform: translateY(-1px); }
.city-card .city-name { font-size: 15px; font-weight: 500; color: #222; margin-bottom: 4px; }
.city-card .city-display { font-size: 12px; color: #888; }
.city-card .city-badge { position: absolute; top: 12px; right: 12px; font-size: 10px; padding: 2px 8px; border-radius: 8px; background: #e1f5ee; color: #0b6e56; }
.city-card .city-counts { margin-top: 10px; display: flex; gap: 12px; font-size: 11px; color: #999; }

/* 城市卡片包装（加下拉框需要） */
.city-card-wrap { position: relative; }
.city-card-wrap .city-card { display: block; padding-left: 36px; }  /* 给左上角 × 留位避免压到 city-name */

/* 已停止状态：灰显 + 半透明 */
.city-card-wrap.city-stopped .city-card { opacity: 0.5; filter: grayscale(80%); }
.city-card-wrap.city-stopped .city-card:hover { opacity: 0.8; }
.city-stop-tag { display: inline-block; background: #fee2e2; color: #b91c1c; font-size: 10px; padding: 1px 6px; border-radius: 4px; font-weight: 600; }
.city-stopped-badge { display: inline-block; background: #dc2626; color: #fff; font-size: 12px; padding: 2px 10px; border-radius: 4px; font-weight: 600; vertical-align: middle; margin-left: 8px; }

/* 顶部 brand 标题 - 可点击编辑 */
.brand-title-wrap { display: flex; align-items: center; flex-wrap: wrap; }
.brand-title-edit {
    cursor: text;
    padding: 4px 8px;
    margin: -4px -8px;
    border-radius: 6px;
    transition: background 0.15s, box-shadow 0.15s;
    outline: none;
    min-width: 100px;
}
.brand-title-edit:hover { background: #f3f4f6; }
.brand-title-edit:focus { background: #fefce8; box-shadow: 0 0 0 2px #facc15 inset; }
.brand-title-edit:empty::before { content: attr(data-placeholder); color: #9ca3af; }
.brand-title-edit.is-empty { color: #9ca3af; }

/* 城市状态下拉框 */
.city-status-select {
    position: absolute; bottom: 6px; right: 6px;
    font-size: 10px; padding: 2px 4px;
    border: 1px solid #d1d5db; border-radius: 4px;
    background: #fff; color: #374151;
    cursor: pointer; max-width: 95px;
    z-index: 2;
}
.city-status-select:hover { border-color: #1a9e75; }
.city-status-select:focus { outline: none; border-color: #1a9e75; }
.city-status-select:disabled { background: #f3f4f6; cursor: not-allowed; }

/* 顺序调整框(右上方:只一个数字输入框) */
.city-order-box {
    position: absolute; top: 6px; right: 6px;
    z-index: 2;
}
.city-order-input {
    width: 42px; padding: 2px 4px; font-size: 11px;
    border: 1px solid #d1d5db; border-radius: 4px;
    text-align: center; background: #fff;
    -moz-appearance: textfield;
    font-weight: 600; color: #1a9e75;
}
.city-order-input::-webkit-outer-spin-button,
.city-order-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.city-order-input:focus { outline: none; border-color: #1a9e75; box-shadow: 0 0 0 2px rgba(26,158,117,0.1); }

/* 全局 toast */
.global-toast { position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-20px); background: rgba(0,0,0,0.85); color: #fff; padding: 10px 20px; border-radius: 6px; font-size: 13px; opacity: 0; transition: all 0.3s; pointer-events: none; z-index: 99999; }
.global-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* 新增项目城市按钮（首页城市卡片下方） */
.add-city-wrapper { margin-top: 16px; }
.add-city-card {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #fafbfc; border: 2px dashed #d1d5db; border-radius: 10px;
    padding: 28px 20px; color: #6b7280; text-decoration: none; transition: all 0.2s;
    min-height: 100px;
}
.add-city-card:hover { border-color: #1a9e75; color: #1a9e75; background: #f0fdf4; }
.add-city-plus { font-size: 32px; line-height: 1; margin-bottom: 6px; font-weight: 300; }
.add-city-text { font-size: 14px; font-weight: 500; }

/* 路径指引 - 4 栏布局 */
.path-guide-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 16px; }
.path-col { display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 1100px) { .path-guide-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .path-guide-grid { grid-template-columns: 1fr; } }

/* 新增城市弹窗 */
.modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.modal.hidden { display: none !important; }
.modal-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.45); }
.modal-box { position: relative; background: #fff; border-radius: 10px; min-width: 420px; max-width: 90vw; box-shadow: 0 8px 32px rgba(0,0,0,0.18); }
.modal-header { padding: 16px 20px; font-size: 16px; font-weight: 600; border-bottom: 1px solid #f0f0f0; color: #222; }
.modal-body { padding: 20px; }
.modal-footer { padding: 12px 20px; border-top: 1px solid #f0f0f0; display: flex; justify-content: flex-end; gap: 8px; }
.form-row { margin-bottom: 14px; }
.form-row label { display: block; font-size: 13px; color: #374151; margin-bottom: 6px; font-weight: 500; }
.form-row label .req { color: #dc2626; }
.form-row label .opt { color: #9ca3af; font-weight: 400; font-size: 11px; }
.form-row input { width: 100%; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; box-sizing: border-box; }
.form-row input:focus { outline: none; border-color: #1a9e75; box-shadow: 0 0 0 2px rgba(26,158,117,0.1); }
.form-hint { font-size: 11px; color: #9ca3af; margin-top: 4px; }
.form-msg { font-size: 12px; margin-top: 4px; min-height: 18px; }
.form-msg-err { color: #dc2626; }
.form-msg-ok { color: #1a9e75; }
.btn-default { background: #fff; color: #374151; border: 1px solid #d1d5db; padding: 6px 16px; border-radius: 6px; cursor: pointer; font-size: 13px; }
.btn-default:hover { background: #f9fafb; }
.btn-success:disabled { background: #9ca3af; border-color: #9ca3af; cursor: not-allowed; }

/* ===== Admin ===== */
.admin-layout { display: flex; }
.admin-sidebar { width: 220px; background: #1a1a2e; color: #fff; flex-shrink: 0; height: 100vh; position: fixed; }
.admin-main { margin-left: 220px; flex: 1; padding: 20px 24px; }
.form-group { margin-bottom: 12px; }
.form-group label { display: block; font-size: 12px; color: #555; margin-bottom: 4px; font-weight: 500; }
.form-group input, .form-group textarea, .form-group select { width: 100%; padding: 8px 10px; font-size: 13px; border: 0.5px solid #ddd; border-radius: 6px; outline: none; transition: border-color 0.15s; font-family: inherit; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color: #1a73e8; }
.form-group textarea { min-height: 80px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-actions { display: flex; gap: 8px; margin-top: 16px; }

/* ===== Modal ===== */
.modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 200; align-items: center; justify-content: center; }
.modal-overlay.show { display: flex; }
.modal { background: #fff; border-radius: 12px; padding: 24px; width: 560px; max-width: 90vw; max-height: 80vh; overflow-y: auto; }
.modal h3 { font-size: 15px; font-weight: 500; margin-bottom: 16px; }

/* ===== Utilities ===== */
.flex { display: flex; }
.flex-between { display: flex; justify-content: space-between; align-items: center; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.mt-8 { margin-top: 8px; }
.mt-12 { margin-top: 12px; }
.mb-8 { margin-bottom: 8px; }
.mb-12 { margin-bottom: 12px; }
.text-muted { color: #888; }
.text-sm { font-size: 12px; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ===== Toast ===== */
.toast { position: fixed; top: 20px; right: 20px; background: #1a9e75; color: #fff; padding: 10px 20px; border-radius: 8px; font-size: 13px; z-index: 300; opacity: 0; transform: translateY(-10px); transition: all 0.3s; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background: #e24b4a; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #bbb; }

/* ===== Responsive ===== */
@media (max-width: 880px) {
    .sidebar { width: 56px; }
    .sidebar-brand h1, .sidebar-brand span, .nav-item span, .nav-section { display: none; }
    .nav-item { padding: 12px; text-align: center; font-size: 18px; }
    .main-content { margin-left: 56px; }
    .info-grid { grid-template-columns: 1fr; }
    .city-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
}

/* ===== 执照公示样式 ===== */
.license-box {
    margin-top: 4px;
}
/* 营业照 + 医疗许可证 并排 */
.license-row {
    display: flex;
    gap: 12px;
    margin-bottom: 4px;
}
.license-half {
    flex: 1;
    min-width: 0;
}
.license-half .info-item {
    margin-bottom: 0;
}
.license-upload {
    width: 100%;
    height: 100px;
    border: 1px dashed #d1d5db;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #9ca3af;
    font-size: 13px;
    background: #fafbfc;
    transition: all 0.15s;
}
.license-upload:hover {
    border-color: #d97706;
    background: #fef3c7;
    color: #b45309;
}
.license-preview {
    position: relative;
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
    background: #fafbfc;
}
.license-preview img {
    width: 100%;
    height: 100px;
    object-fit: contain;
    display: block;
    background: #fff;
}
.license-actions {
    display: flex;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}
.lic-btn {
    flex: 1;
    display: block;
    text-align: center;
    background: transparent;
    border: none;
    border-right: 1px solid #e5e7eb;
    padding: 6px 0;
    font-size: 12px;
    color: #0d9488;
    cursor: pointer;
    transition: background 0.1s;
    text-decoration: none;
}
.lic-btn:last-child { border-right: none; }
.lic-btn:hover { background: #f0fdfa; }
.lic-btn-del { color: #dc2626; }
.lic-btn-del:hover { background: #fef2f2; }
.license-text {
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 4px;
    transition: background 0.1s;
    min-height: 28px;
}
.license-text:hover {
    background: #fef3c7;
    outline: 1px dashed #d97706;
}
.license-text-display {
    color: #1f2937;
    white-space: pre-wrap;
}

/* ===== 资料登记栏：一行两列布局（广审号 + 医院资质） ===== */
.info-row-pair {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}
.info-row-pair .info-item {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
}

/* ===== 医生团队 tab 样式 ===== */
/* Contenteditable 单元格 */
.doctor-ce {
    cursor: text;
    border-radius: 3px;
    padding: 2px 4px;
    transition: background 0.1s;
    min-height: 22px;
    outline: none;
    /* 保留换行显示 */
    white-space: pre-wrap;
    word-break: break-word;
}
.doctor-ce:hover {
    background: #f0fdfa;
}
.doctor-ce:focus {
    background: #fff;
    box-shadow: 0 0 0 2px #5eead4;
    caret-color: #0d9488;
}
/* 空值占位符 */
.doctor-ce.is-empty::before {
    content: attr(data-placeholder);
    color: #d1d5db;
    pointer-events: none;
    font-style: italic;
}
/* 多行字段：拉高一点 */
.doctor-ce-multiline {
    min-height: 30px;
    max-height: 100px;
    overflow-y: auto;
}
/* 竞对信息：跟随内容全部展示，不限高度 */
#tab-competition .doctor-ce-multiline {
    min-height: auto;
    max-height: none;
    overflow-y: visible;
}
/* 基础信息tab 里的医院简介：跟左侧 220×220 大楼图等高（用专属 class 命中） */
.hospital-intro {
    min-height: 220px !important;
    max-height: 220px !important;
    height: 220px !important;
    overflow-y: auto !important;
}
/* 基础信息tab 里的对公账号：跟随内容全部展示，不限高度（只针对这一个框） */
.tab-basic .info-subgroup .info-item .doctor-ce-multiline.no-scroll,
.tab-basic .info-subgroup .info-item .info-editable.doctor-ce.doctor-ce-multiline.no-scroll,
.tab-basic .info-row-pair .info-item .doctor-ce-multiline.no-scroll,
.tab-basic .info-row-pair .info-item .info-editable.doctor-ce.doctor-ce-multiline.no-scroll,
.doctor-ce-multiline.no-scroll {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    overflow-y: visible !important;
    min-height: 0 !important;
}
/* 保存失败样式 */
.doctor-ce.save-fail {
    background: #fee2e2 !important;
    box-shadow: 0 0 0 2px #fca5a5 !important;
}

/* 工具行：左上角 + 新增医生（隐藏旧独立工具行） */
.doctor-toolbar { display: none; }

/* 推广话术下方的 + 新增医生按钮区（不画分隔线） */
.promo-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-top: 12px;
    padding-top: 0;
    border-top: none;
}
.doctor-add-btn {
    background: #0d9488;
    color: #fff;
    border: none;
    padding: 6px 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s;
}
.doctor-add-btn:hover { background: #0f766e; }
/* 旧医疗绿顶栏样式废弃 */
.doctor-topbar { display: none; }
.doctor-count { display: none; }

.doctor-promo-box {
    background: #fff;
    padding: 16px 24px 14px;
    border-bottom: 1px solid #e5e7eb;
}
.promo-label {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 600; color: #0d9488;
    margin-bottom: 8px;
}
.promo-icon {
    display: inline-block; width: 3px; height: 14px;
    background: #0d9488; border-radius: 2px;
}
.promo-hint { font-size: 11px; color: #9ca3af; font-weight: 400; }
.promo-textarea {
    width: 100%;
    min-height: 80px;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.6;
    color: #374151;
    resize: vertical;
}
.promo-textarea:focus {
    outline: none;
    border-color: #14b8a6;
    box-shadow: 0 0 0 3px rgba(20,184,166,0.1);
}
.promo-save-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 8px;
    width: 50%;
    min-width: 360px;
    max-width: 720px;
}

.prices-promo-box .promo-textarea,
.doctor-promo-box .promo-textarea {
    width: 50%;
    min-width: 360px;
    max-width: 720px;
}
.promo-save-tip { font-size: 12px; color: #6b7280; }
.promo-save-btn {
    background: #0d9488;
    color: #fff;
    border: none;
    padding: 6px 18px;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    font-weight: 500;
}
.promo-save-btn:hover { background: #0f766e; }

.doctor-table-wrap {
    background: #fff;
    border-radius: 0 0 8px 8px;
    overflow-x: auto;
}
table.doctor-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    table-layout: fixed;
}
.doctor-table thead th {
    background: #f9fafb;
    color: #374151;
    font-weight: 600;
    padding: 14px 10px;
    text-align: left;
    border-bottom: 2px solid #e5e7eb;
    white-space: nowrap;
}
.doctor-table tbody td {
    padding: 14px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: top;
}
.doctor-table tbody tr:hover { background: #f9fafb; }

/* 列宽 */
.col-action   { width: 60px; }
.col-status   { width: 110px; }
.col-photo    { width: 75px; }
.col-name     { width: 80px; }
.col-role     { width: 110px; }
.col-title    { width: 150px; }
.col-extra    { width: 180px; }
.col-intro    { width: 460px; }
.col-certs    { width: 170px; }
.col-accounts { width: 170px; }

/* 价格体系列宽 */
/* ================== 城市卡删除按钮 ================== */
.city-card-wrap { position: relative; }
.city-delete-btn {
    position: absolute;
    top: 6px;
    left: 6px;  /* 2026-07-03 王姐：移到左上角，避免压到右上的序号输入框 */
    width: 22px;
    height: 22px;
    border: none;
    background: rgba(220, 38, 38, 0.85);
    color: #fff;
    font-size: 16px;
    line-height: 18px;
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
    opacity: 0;
    transition: opacity 0.15s, background 0.15s, transform 0.15s;
    z-index: 5;
    font-family: inherit;
}
.city-card-wrap:hover .city-delete-btn,
.city-delete-btn:focus {
    opacity: 1;
}
.city-delete-btn:hover {
    background: #dc2626;
    transform: scale(1.15);
}
.city-delete-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.col-pcat { width: 80px; white-space: nowrap; }
.col-ptech { width: 280px; }
.col-prd { width: 50px; }
.col-pad { width: 50px; }
.col-pfp { width: 180px; }
.col-pnote { width: 100px; }
.col-paction { width: 70px; }
.price-table .cell-editable { font-size: 13px; }
.price-table .price-action-cell { text-align: center; }
.price-table .price-action-cell .btn { padding: 4px 10px; font-size: 12px; }

/* 价格总栏 */
.prices-promo-box { margin-top: 0; margin-bottom: 12px; }
.prices-promo-box .promo-textarea {
    width: 50%;
    min-width: 360px;
    max-width: 720px;
    min-height: 60px;
}
.prices-promo-box .promo-save-row {
    width: 50%;
    min-width: 360px;
    max-width: 720px;
    justify-content: flex-end;
    margin-top: 8px;
}

/* 价格表：字号加大 3-5 字号 + 减免值加粗 */
.price-table { font-size: 16px; }
.price-table thead th {
    font-size: 14px;
    font-weight: 600;
    padding: 14px 12px;
}
.price-table tbody td {
    padding: 14px 12px;
    font-size: 16px;
}
.price-table .cell-editable {
    font-size: 16px;
    line-height: 1.5;
}
/* 日常减免 + 活动减免 这两列默认加粗 */
.price-table td[data-field="regular_discount"],
.price-table td[data-field="activity_discount"] {
    font-weight: 600;
    color: #b91c1c;  /* 红色：减免是利好用户的 */
}


/* 操作列 */
.cell-action { text-align: center; }
.row-btn {
    width: auto;
    min-width: 48px;
    height: auto;
    padding: 5px 10px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    font-size: 13px;
    line-height: 1.2;
}
.row-btn span {
    font-size: 11px;
    white-space: nowrap;
    opacity: 0.92;
}
/* 删除按钮（红色，默认） */
.row-btn-del { background: #dc2626; border-color: #b91c1c; cursor: pointer; color: #ffffff; border-radius: 6px; box-shadow: 0 1px 2px rgba(220, 38, 38, 0.25); transition: all 0.15s; }
.row-btn-del:hover { background: #b91c1c; border-color: #991b1b; box-shadow: 0 2px 4px rgba(220, 38, 38, 0.35); }
.row-btn-del:active { transform: translateY(1px); }
/* 复制按钮（蓝色） */
.row-btn-copy { background: #2563eb; border-color: #1d4ed8; color: #ffffff; border-radius: 6px; box-shadow: 0 1px 2px rgba(37, 99, 235, 0.25); transition: all 0.15s; }
.row-btn-copy:hover { background: #1d4ed8; border-color: #1e40af; box-shadow: 0 2px 4px rgba(37, 99, 235, 0.35); }
.row-btn-copy.copied { background: #1a9e75; border-color: #1a9e75; }
.row-btn-group { display: flex; flex-direction: column; gap: 8px; align-items: center; }

/* 下拉字段 */
.doctor-ce-dropdown {
    cursor: pointer;
    position: relative;
    padding-right: 22px !important;
}
.doctor-ce-dropdown::after {
    content: "▼";
    position: absolute;
    right: 6px;
    top: 4px;
    color: #9ca3af;
    font-size: 9px;
    pointer-events: none;
    line-height: 1;
}
.doctor-ce-dropdown:hover { background-color: #f0fdfa; }
.doctor-ce-dropdown:hover::after { color: #0d9488; }
.doctor-ce-dropdown.is-open {
    background-color: #fff;
    box-shadow: 0 0 0 2px #5eead4;
}
.doctor-ce-dropdown.is-open::after { color: #0d9488; }
.doctor-select-menu {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 9999;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    min-width: 100%;
    max-height: 240px;
    overflow-y: auto;
}
.doctor-ce-dropdown.is-open {
    /* 选中态时保持原文字位置但被下拉覆盖 */
    color: transparent;
}
.doctor-select-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
}
.doctor-select-item:last-child { border-bottom: none; }
.doctor-select-item:hover { background: #f0fdfa; color: #0d9488; }
.doctor-select-item.is-current { background: #ccfbf1; color: #0d9488; font-weight: 600; }

.inline-select {
    width: 100%;
    padding: 4px 6px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    font-size: 13px;
    color: #374151;
    cursor: pointer;
}
.inline-select:hover { border-color: #d1d5db; background: #f9fafb; }
.inline-select:focus { border-color: #14b8a6; background: #fff; outline: none; }

.doctor-avatar {
    width: 60px;
    height: 60px;
    border-radius: 4px;
    background: #f3f4f6;
    border: 1px dashed #d1d5db;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #9ca3af;
    font-size: 18px;
    transition: all 0.15s;
    background-size: cover;
    background-position: center;
}
.doctor-avatar:hover { background-color: #f0fdfa; border-color: #14b8a6; color: #0d9488; }
.doctor-avatar.has-img { border-style: solid; }
.avatar-plus { font-weight: 300; }

.cell-editable {
    cursor: pointer;
    min-height: 24px;
    padding: 2px 4px;
    border-radius: 3px;
    transition: background 0.1s;
}
.cell-editable:hover { background: #f0fdfa; outline: 1px dashed #5eead4; }

.cell-pre { white-space: pre-wrap; line-height: 1.7; color: #4b5563; }

.split { display: flex; flex-direction: column; gap: 6px; }
.split .seg {
    padding: 6px 10px;
    background: #f9fafb;
    border-radius: 4px;
    border-left: 3px solid #14b8a6;
}
.seg-title { font-size: 11px; color: #0d9488; font-weight: 700; margin-bottom: 3px; letter-spacing: 0.5px; }
.seg-body { font-size: 13px; color: #374151; line-height: 1.6; max-height: 80px; overflow-y: auto; }
/* 总览页：擅长/简介 不限高度，全部展开 */
.expert-skill-cell .seg-body { max-height: none; overflow-y: visible; }
.seg-editable { cursor: pointer; min-height: 24px; padding: 2px 4px; border-radius: 3px; }
.seg-editable:hover { background: #ecfdf5; }

.certs { display: flex; flex-direction: column; gap: 4px; }
.cert-row {
    display: flex; align-items: center; gap: 6px;
    padding: 5px 8px; background: #f9fafb;
    border-radius: 4px; font-size: 12px;
}
.cert-name { color: #6b7280; font-weight: 600; min-width: 48px; }
.cert-status { color: #d1d5db; }
.cert-manage-btn {
    background: #f0fdfa; color: #0d9488;
    border: 1px solid #5eead4;
    padding: 4px 10px; border-radius: 4px;
    font-size: 12px; cursor: pointer;
    margin-top: 4px;
}
.cert-manage-btn:hover { background: #ccfbf1; }

/* ===== 减免速查页 ===== */
.discounts-table-wrap { background: #fff; }
.discounts-table { table-layout: auto; }
.discounts-table thead th {
    background: #f9fafb;
    color: #374151;
    font-weight: 600;
    padding: 14px 12px;
    border-bottom: 2px solid #e5e7eb;
}
.discounts-table tbody td {
    padding: 14px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
    font-size: 14px;
}
.discounts-table tbody tr:hover td { background: #f9fafb; }
.col-dcity { width: 110px; }
.col-dcat { width: 110px; }
.col-dtech { width: auto; }
.col-dreg { width: 110px; }
.col-dact { width: 110px; }
.col-daction { width: 100px; }

/* 日常/活动减免：红色加粗 16px（同步单城市页 price-table） */
.discounts-table tbody td:nth-child(4),
.discounts-table tbody td:nth-child(5) {
    font-size: 16px;
    font-weight: 600;
    color: #b91c1c;
}

.badge-cat {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}
.badge-cat-surgery {
    background: #dbeafe;
    color: #1d4ed8;
}
.badge-cat-nonsurg {
    background: #ede9fe;
    color: #6d28d9;
}

.discounts-loading,
.discounts-empty {
    text-align: center;
    color: #999;
    padding: 60px 0 !important;
    font-size: 14px;
}

/* ============ 减免速查 矩阵表 ============ */
.matrix-table {
    border-collapse: collapse;
    width: 100%;
    font-size: 13px;
    background: #fff;
}
.matrix-table th,
.matrix-table td {
    border: 0.5px solid #e5e7eb;
    padding: 8px 10px;
    text-align: center;
    vertical-align: middle;
    line-height: 1.45;
    word-break: break-word;
    white-space: pre-wrap;
}
/* 大组行(双层表头的上层) */
.matrix-group-row th {
    font-size: 14px;
    font-weight: 700;
    padding: 10px 8px;
    border-bottom: 1px solid #fff;
}
.matrix-th-nonsurg { background: #f5f3ff; color: #6d28d9; }   /* 紫色 - 非手术定价 */
.matrix-th-nonsurg-group { background: #ede9fe; color: #5b21b6; font-weight: 600; }  /* 非手术大组表头 */
.matrix-th-reg    { background: #fef9c3; color: #854d0e; }   /* 黄色 - 手术日常减免 */
.matrix-th-act    { background: #dcfce7; color: #166534; }   /* 绿色 - 手术活动减免 */

/* 新版 4 段手术分类表头(手术 A / B 钢刀+清腺 / C 低价微创 / 非手术) */
.matrix-th-a        { background: #dbeafe; color: #1e40af; }   /* 蓝色 - 手术 A 钢刀式 日常 */
.matrix-th-a-act    { background: #bae6fd; color: #075985; }   /* 浅蓝 - 手术 A 钢刀式 活动 */
.matrix-th-b        { background: #fce7f3; color: #9d174d; }   /* 粉色 - 手术 B 0° 清腺 日常 */
.matrix-th-b-act    { background: #fbcfe8; color: #831843; }   /* 深粉 - 手术 B 0° 清腺 活动 */
.matrix-th-c        { background: #e0e7ff; color: #3730a3; }   /* 靛蓝 - 手术 C 低价微创 固定价 */
.matrix-th-a-reg    { background: #dbeafe; color: #1e40af; font-size: 11px; }
.matrix-th-a-act-sub{ background: #bae6fd; color: #075985; font-size: 11px; }
.matrix-th-b-reg    { background: #fce7f3; color: #9d174d; font-size: 11px; }
.matrix-th-b-act-sub{ background: #fbcfe8; color: #831843; font-size: 11px; }
.matrix-th-c-fixed  { background: #e0e7ff; color: #3730a3; font-size: 11px; font-weight: 600; }

/* 表体单元格 */
.matrix-td-a-reg, .matrix-td-b-reg    { background: rgba(219, 234, 254, 0.3); color: #1e40af; font-size: 16px; font-weight: 600; }
.matrix-td-a-act, .matrix-td-b-act    { background: rgba(186, 230, 253, 0.3); color: #be123c; font-size: 16px; font-weight: 600; }
.matrix-td-c-fixed { background: rgba(224, 231, 255, 0.3); color: #3730a3; font-weight: 500; cursor: help; font-size: 16px; }
/* 城市列表头 */
.matrix-th-row-head {
    background: #0d9488;
    color: #fff;
    width: 130px;
    min-width: 130px;
}
/* 技术列(双层表头的下层) */
.matrix-th-tech {
    background: #f9fafb;
    color: #374151;
    font-weight: 600;
    font-size: 12px;
    min-width: 120px;
    max-width: 180px;
}
/* 单元格 - 城市 */
.matrix-td-city {
    background: #ecfdf5;
    text-align: left !important;
    padding: 8px 12px;
    font-weight: 600;
    position: sticky;
    left: 0;
    z-index: 2;
    white-space: nowrap !important;
    word-break: keep-all !important;
    min-width: 180px;
    max-width: 220px;
}
.matrix-td-city .city-link {
    color: #0d9488;
    text-decoration: underline dotted;
    text-align: left;
    display: inline-block;
}
.city-stop-tag-mini {
    display: inline-block;
    background: #fee2e2;
    color: #991b1b;
    font-size: 10px;
    padding: 1px 5px;
    border-radius: 4px;
    margin-left: 6px;
    vertical-align: middle;
}
/* 单元格 - 数值 */
.matrix-td-nonsurg {
    background: #faf5ff;
    color: #5b21b6;
    font-weight: 600;
}
.matrix-td-reg {
    background: #fefce8;
    color: #854d0e;
    font-weight: 700;
}
.matrix-td-act {
    background: #f0fdf4;
    color: #166534;
    font-weight: 700;
}
.cell-empty {
    color: #d4d4d8;
    font-weight: normal;
}

/* YESO 智能微波 - 表头样式完全跟其他技术列一致，不加专属 class 样式 */
/* 单列下的价格数字用青色，跟 miraDry（紫色）区分开 */
.matrix-td-yeso {
    color: #0e7490;
}
/* 已停止项目 - 整行灰显 */
.matrix-table tbody tr.row-dimmed td {
    color: #9ca3af !important;
    background: #fafbfc !important;
    font-weight: normal !important;
}
.matrix-table tbody tr.row-dimmed .matrix-td-city {
    background: #f3f4f6 !important;
}

/* 离职行置灰 */
.doctor-table tbody tr.row-dimmed td {
    color: #9ca3af !important;
    background: #fafbfc;
}
.doctor-table tbody tr.row-dimmed td.cell-name strong {
    color: #6b7280 !important;
    text-decoration: line-through;
}

/* ===== 专家总览页 ===== */
.experts-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 12px 0 16px 0;
    border-bottom: 0.5px solid #f0f0f0;
    margin-bottom: 14px;
}
.filter-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #666;
}
.filter-item label {
    color: #888;
    font-size: 12px;
}
.filter-item select,
.filter-item input[type="text"] {
    height: 32px;
    padding: 0 10px;
    border: 0.5px solid #d4d4d8;
    border-radius: 6px;
    background: #fff;
    font-size: 13px;
    color: #333;
    outline: none;
    transition: border-color 0.15s;
}
.filter-item select:focus,
.filter-item input[type="text"]:focus {
    border-color: #0d9488;
}
.filter-search {
    flex: 1;
    min-width: 240px;
    position: relative;
}
.filter-search input {
    width: 100%;
    padding-left: 12px;
}
.filter-search .filter-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 13px;
    pointer-events: none;
}
.filter-checkbox {
    margin-left: 4px;
}
.checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    user-select: none;
    font-size: 13px;
    color: #555;
}
.checkbox-label input { margin: 0; }
.btn-reset-filter {
    background: #f5f5f4;
    border: 0.5px solid #e5e5e5;
    color: #555;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    cursor: pointer;
    transition: background 0.15s;
}
.btn-reset-filter:hover { background: #ebebea; }

/* 减免速查 - 筛选栏下方统计行 */
.discounts-filter-stats {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px solid #f0f0f0;
    font-size: 13px;
    color: #888;
}
.discounts-filter-stats strong {
    color: #0d9488;
    font-weight: 700;
    margin: 0 2px;
}

/* 专家表格 */
.experts-table-wrap { background: #fff; }
.experts-table { table-layout: auto; }
.experts-table thead th {
    background: #f9fafb;
    color: #374151;
    font-weight: 600;
    padding: 14px 12px;
    border-bottom: 2px solid #e5e7eb;
}
.experts-table tbody td {
    padding: 14px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}
.experts-table tbody tr:hover td { background: #f9fafb; }
.col-ephoto { width: 70px; }
.col-ename { width: 100px; }
.col-ecity { width: 150px; }
.col-etitle { width: 110px; }
.col-eextra { width: 180px; }
.col-erole { width: 80px; }
.col-eaction { width: 100px; text-align: left !important; }
.experts-table td:last-child { text-align: left !important; }
.experts-table td:last-child .btn { display: inline-flex; margin: 0; }
.col-eskill { width: 380px; }

.expert-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #eee;
    background: #f5f5f4;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0d9488;
    font-weight: 600;
    font-size: 18px;
    flex-shrink: 0;
}
.expert-avatar-fallback { color: #0d9488; }
.experts-table tr.row-dimmed .expert-avatar { filter: grayscale(0.6); opacity: 0.7; }

.city-link {
    color: #0d9488;
    text-decoration: none;
    border-bottom: 1px dashed #5eead4;
    transition: color 0.15s;
}
.city-link:hover { color: #0f766e; }

.resigned-tag {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 6px;
    background: #f5f5f4;
    color: #9ca3af;
    border-radius: 3px;
    font-size: 10px;
    font-weight: normal;
    vertical-align: middle;
}

.expert-skill-cell {
    color: #444;
    font-size: 13px;
    line-height: 1.6;
    max-width: 360px;
}
.expert-skill-cell .skill-sep {
    color: #d4d4d8;
    margin: 0 6px;
}

.experts-loading,
.experts-empty {
    text-align: center;
    color: #999;
    padding: 60px 0 !important;
    font-size: 14px;
}
.city-stopped-option {
    color: #9ca3af;
    font-style: italic;
}

/* ================== 推广渠道 tab ================== */
.promo-hint {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 16px;
    line-height: 1.6;
}

.promo-platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.promo-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 14px;
    border: 1px solid #d1d5db;
    background: #fff;
    border-radius: 6px;
    font-size: 14px;
    color: #374151;
    cursor: pointer;
    transition: all 0.15s;
    user-select: none;
    font-family: inherit;
}
.promo-btn:hover {
    border-color: #10b981;
    color: #10b981;
}
.promo-btn-on {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
    font-weight: 500;
}
.promo-btn-on:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}
.promo-btn-add {
    border-style: dashed;
    color: #6b7280;
}
.promo-btn-add:hover {
    border-style: solid;
    color: #10b981;
}
.promo-btn-del {
    display: inline-block;
    margin-left: 4px;
    padding: 0 4px;
    border-radius: 50%;
    color: #fff;
    font-size: 12px;
    line-height: 1;
    opacity: 0.7;
}
.promo-btn-del:hover {
    opacity: 1;
    background: rgba(0, 0, 0, 0.2);
}

.promo-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px dashed #e5e7eb;
}
.promo-count {
    font-size: 13px;
    color: #6b7280;
}

.promo-blocks {
    margin-top: 16px;
}
.promo-empty {
    text-align: center;
    color: #9ca3af;
    padding: 32px 0;
    font-size: 14px;
    background: #f9fafb;
    border-radius: 6px;
    border: 1px dashed #e5e7eb;
}

.promo-block {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: border-color 0.15s;
}
.promo-block:focus-within {
    border-color: #10b981;
}
.promo-block-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: #f0fdf4;
    border-bottom: 1px solid #e5e7eb;
}
.promo-block-title {
    font-weight: 500;
    color: #065f46;
    font-size: 14px;
}
.promo-block-close {
    border: none;
    background: transparent;
    color: #6b7280;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 0 6px;
    border-radius: 4px;
}
.promo-block-close:hover {
    background: #fee2e2;
    color: #dc2626;
}
.promo-block-textarea {
    width: 100%;
    min-height: 80px;
    border: none;
    outline: none;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.7;
    color: #1f2937;
    font-family: inherit;
    resize: none;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
}
.promo-block-textarea::placeholder {
    color: #9ca3af;
}

.promo-toast {
    display: inline-block;
    margin-left: 12px;
    padding: 2px 8px;
    border-radius: 4px;
    background: #10b981;
    color: #fff;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.2s;
}
.promo-toast-show {
    opacity: 1;
}

/* 自定义平台拖拽排序 */
.promo-btn[data-custom] {
    cursor: grab;
}
.promo-btn[data-custom]:active {
    cursor: grabbing;
}
.promo-btn-dragging {
    opacity: 0.4;
}
.promo-btn-drag-over {
    border-color: #10b981 !important;
    background: #ecfdf5 !important;
    box-shadow: -3px 0 0 #10b981;
}
.promo-drag-handle {
    display: inline-block;
    color: #9ca3af;
    font-size: 12px;
    line-height: 1;
    margin-right: 4px;
    user-select: none;
}
.promo-btn-on .promo-drag-handle {
    color: rgba(255, 255, 255, 0.7);
}

/* ================== 价格体系 tab 排序 ================== */
.price-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    padding: 8px 12px;
    background: #f0fdf4;
    border: 1px solid #d1fae5;
    border-radius: 6px;
}
.price-hint {
    font-size: 13px;
    color: #065f46;
}
.price-move-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid #d1d5db;
    background: #fff;
    color: #6b7280;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    margin-right: 4px;
    padding: 0;
    font-family: inherit;
    transition: all 0.15s;
}
.price-move-btn:hover {
    border-color: #10b981;
    color: #10b981;
    background: #f0fdf4;
}
.price-move-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

/* 其他备注 tab */
.misc-note-area {
    min-height: 280px;
}

/* 底板规范第 6 格：纯文本框 */
.brand-misc-text {
    min-height: 100px;
    height: auto;
    border: 0.5px solid #e5e7eb;
    border-radius: 4px;
    padding: 8px 10px;
    background: #fff;
    font-size: 13px;
    line-height: 1.6;
    overflow: hidden;
    color: #1f2937;
}

.del-city-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    max-height: 50vh;
    overflow-y: auto;
}
.del-city-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}
.del-city-card:hover {
    border-color: #ef4444;
    background: #fef2f2;
}
.del-city-card.selected {
    border-color: #dc2626;
    background: #fee2e2;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15);
}
.del-city-radio {
    width: 16px;
    height: 16px;
    border: 2px solid #d1d5db;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 2px;
    transition: all 0.15s;
    position: relative;
}
.del-city-card.selected .del-city-radio {
    border-color: #dc2626;
    background: #dc2626;
}
.del-city-card.selected .del-city-radio::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
}
.del-city-text { flex: 1; min-width: 0; }
.del-city-name {
    font-weight: 500;
    color: #1f2937;
    font-size: 14px;
    margin-bottom: 2px;
}
.del-city-display {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 4px;
}
.del-city-stats {
    font-size: 12px;
    color: #9ca3af;
    font-style: italic;
}
.del-city-card.selected .del-city-stats {
    color: #991b1b;
    font-style: normal;
}
.city-stop-tag-mini {
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 11px;
    padding: 1px 6px;
    background: #e5e7eb;
    color: #6b7280;
    border-radius: 3px;
}

/* ================== 一键快查 ================== */
.quickview-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.qv-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border: 1px solid #d1d5db;
    background: #fff;
    color: #374151;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}
.qv-btn:hover {
    border-color: #10b981;
    color: #10b981;
}
.qv-btn-on {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
    font-weight: 500;
}
.qv-btn-on:hover {
    background: #059669;
    border-color: #059669;
    color: #fff;
}
.qv-btn-note {
    font-size: 12px;
    color: #9ca3af;
    font-weight: normal;
}
.qv-btn-on .qv-btn-note {
    color: rgba(255, 255, 255, 0.8);
}

.qv-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.qv-table thead th {
    background: #f9fafb;
    color: #374151;
    font-weight: 600;
    padding: 12px 16px;
    text-align: left;
    border-bottom: 2px solid #e5e7eb;
    white-space: nowrap;
}
.qv-table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid #f3f4f6;
    color: #1f2937;
    vertical-align: top;
    line-height: 1.6;
    word-break: break-word;
}
.qv-table tbody tr:hover {
    background: #f9fafb;
}
.qv-th-city, .qv-td-city, .col-qv-city {
    width: 100px !important;
    min-width: 100px;
    background: #f0fdf4 !important;
    color: #065f46 !important;
    font-weight: 500;
    position: sticky;
    left: 0;
    z-index: 1;
}
.qv-cell-text {
    color: #6b7280;
    font-size: 13px;
    margin-left: 8px;
}
.qv-phone {
    display: inline-block;
    color: #10b981;
    text-decoration: none;
    margin: 2px 4px 2px 0;
    padding: 2px 8px;
    border-radius: 4px;
    background: #f0fdf4;
    font-size: 13px;
}
.qv-phone:hover {
    background: #d1fae5;
    text-decoration: none;
}

.qv-copy-toast {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    background: #10b981;
    color: #fff;
    padding: 10px 20px;
    border-radius: 6px;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 9999;
}
.qv-copy-toast-show {
    opacity: 1;
}

/* ================== 一键快查页 ================== */
.qv-page {
    max-width: 1500px;
}
}


/* ================== 用户系统样式 ================== */
.user-bar {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 13px;
    color: #374151;
}
.role-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}
.role-admin { background: #fef3c7; color: #b45309; }
.role-lead { background: #dbeafe; color: #1e40af; }
.user-scope { font-size: 12px; color: #6b7280; }

/* 城市权限图标 */
.nav-city-icon {
    display: inline-block;
    width: 16px;
    margin-right: 4px;
    font-size: 12px;
}
.nav-item.city-can-edit { font-weight: 500; }

/* 城市模式 banner */
.city-mode-banner {
    padding: 8px 24px;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
}
.city-mode-banner.read-only {
    background: #fef3c7;
    color: #92400e;
    border-bottom: 1px solid #fde68a;
}
.city-mode-banner.editable {
    background: #d1fae5;
    color: #065f46;
    border-bottom: 1px solid #a7f3d0;
}
.city-mode-banner.guest {
    background: #f3f4f6;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
}

/* 只读模式的字段 */
.doctor-ce[contenteditable="false"]:not(.doctor-ce-select):not(.doctor-ce-dropdown) {
    cursor: default;
    color: inherit;
}


/* 侧边栏底部账号区 */
.sidebar-footer {
    border-top: 1px solid #e5e7eb;
    padding: 10px 12px;
    background: #fff;
}
.sidebar-account-info {
    margin-bottom: 8px;
}
.sidebar-account-name {
    font-size: 13px;
    font-weight: 600;
    color: #1f2937;
    line-height: 1.4;
    word-break: break-all;
}
.sidebar-account-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    flex-wrap: wrap;
}
.sidebar-account-scope {
    font-size: 11px;
    color: #6b7280;
}
.sidebar-account-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.sidebar-account-actions .btn {
    flex: 1;
    font-size: 12px;
    padding: 4px 8px;
    min-width: 60px;
}

