/* ===== 全局重置（防白边） ===== */
    * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
    html, body { width: 100%; margin: 0; padding: 0; overflow-x: hidden; font-family: -apple-system, "PingFang SC", "Helvetica Neue", sans-serif; background: #fff; }
    body { -webkit-font-smoothing: antialiased; }
    img { max-width: 100%; height: auto; }
    ::-webkit-scrollbar { display: none; }

    /* ======= 手机外壳 ======= */
    :root { --nav-h: calc(66px + env(safe-area-inset-bottom, 0px)); }
    .phone-frame { width: 100%; max-width: 100%; margin: 0; background: #fff; min-height: 100vh; position: relative; padding-bottom: var(--nav-h); }
    @media (min-width: 750px) { .phone-frame { max-width: 430px; margin: 0 auto; box-shadow: 0 0 40px rgba(0,0,0,0.08); } .bottom-nav { max-width: 430px; } }

    /* ======= 页面切换 ======= */
    .page { display: none; }
    .page.active { display: block; }

    /* ======= 共用: 顶部区域 ======= */
    .header-gradient { background: linear-gradient(180deg, #e8f0fb 0%, #ffffff 100%); }
    .top-bar { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px 8px; }
    .province-select { display: flex; align-items: center; gap: 2px; font-size: 15px; font-weight: 500; color: #333; cursor: pointer; }
    .top-actions { display: flex; align-items: center; gap: 16px; }

    .brand-section { padding: 8px 16px 16px; text-align: center; }
    .brand-image { max-width: 100%; height: auto; display: inline-block; }
    .brand-row { display: flex; align-items: center; justify-content: center; gap: 13px; padding: 16px 16px 10px; }
    .brand-emblem { width: 58px; height: 58px; flex-shrink: 0; }
    .brand-texts { text-align: left; }
    .brand-title { font-size: 20px; font-weight: 700; color: #1f2d3d; letter-spacing: 1.5px; }
    .brand-sub { display: flex; align-items: center; gap: 9px; font-size: 11px; color: #8a97a8; margin-top: 5px; letter-spacing: 2.5px; }
    .bs-line { width: 30px; height: 1px; background: #c3cdd9; flex-shrink: 0; }

    .search-row { display: flex; align-items: center; gap: 10px; padding: 0 16px; margin-bottom: 12px; }
    .search-box { flex: 1; display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 20px; padding: 9px 14px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); }
    .search-box input { flex: 1; border: none; outline: none; font-size: 14px; background: transparent; color: #333; }
    .search-box input::placeholder { color: #bbb; }
    .scan-btn { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #555; background: #fff; border-radius: 20px; padding: 9px 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); white-space: nowrap; cursor: pointer; }

    .user-row { display: flex; align-items: center; justify-content: space-between; padding: 6px 16px 14px; }
    .user-info { display: flex; align-items: center; gap: 8px; cursor: pointer; }
    .user-avatar { width: 28px; height: 28px; border-radius: 50%; background: #bbb; display: flex; align-items: center; justify-content: center; }
    .user-name { font-size: 14px; color: #333; font-weight: 500; }
    .user-tag { font-size: 11px; color: #666; background: #eef2f7; padding: 1px 7px; border-radius: 8px; margin-left: 4px; }
    .help-btn { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #666; }
    .help-btn .help-icon { width: 22px; height: 22px; border-radius: 50%; border: 1px solid #ddd; display: flex; align-items: center; justify-content: center; color: #888; }

    /* ======= 功能图标网格 ======= */
    .features-card { margin: 0 12px 12px; background: #fff; border-radius: 14px; padding: 18px 10px 14px; box-shadow: 0 1px 6px rgba(0,0,0,0.04); }
    .features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px 0; }
    .feature-item { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
    .feature-icon { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .feature-label { font-size: 12px; color: #333; text-align: center; line-height: 1.3; }
    .ic-green-1, .ic-green-2, .ic-green-3, .ic-green-4 { background: #e8f8ef; color: #27ae60; }
    .ic-red-1, .ic-red-2, .ic-red-3, .ic-red-4 { background: #fdecea; color: #e74c3c; }
    .ic-orange-1, .ic-orange-2 { background: #fff4e8; color: #f39c12; }
    .ic-gray { background: #f0f1f3; color: #9aa0a6; }

    /* ======= 分区标题 ======= */
    .section-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 16px 10px; }
    .section-title { font-size: 16px; font-weight: 700; color: #222; position: relative; padding-left: 10px; }
    .section-title::before { content: ''; position: absolute; left: 0; top: 3px; bottom: 3px; width: 3px; border-radius: 2px; background: linear-gradient(180deg, #c81e26 0%, #e85b4f 100%); }
    .section-more { font-size: 12px; color: #999; display: flex; align-items: center; gap: 2px; }

    /* 公开专区 */
    .public-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 0 12px; }
    .public-grid-wide { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 10px 12px 16px; }
    .public-card { background: #fff; border-radius: 12px; padding: 14px 10px 12px; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 1px 4px rgba(0,0,0,0.03); cursor: pointer; }
    .public-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
    .public-title { font-size: 12px; color: #333; line-height: 1.3; word-break: keep-all; }
    .pub-cyan { background: #e4f6f8; color: #2bb3c0; }
    .pub-blue { background: #fdeaea; color: #c81e26; }
    .pub-orange { background: #fdeccf; color: #e68a2e; }
    .pub-teal { background: #d8f3ea; color: #1fa87b; }
    .card-purple { background: #fce8ff; }
    .card-purple .public-icon { background: #f4d0ff; color: #a855f7; }

    .local-section { padding-bottom: 20px; }
    .local-empty { text-align: center; padding: 40px 20px; color: #bbb; font-size: 13px; }

    /* ======= 底部导航 ======= */
    .bottom-nav { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; background: #fff; display: flex; justify-content: space-around; padding: 8px 0; padding-bottom: calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #eee; z-index: 100; }
    .nav-item { display: flex; flex-direction: column; align-items: center; gap: 3px; flex: 1; cursor: pointer; padding: 2px 0; }
    .nav-label { font-size: 11px; color: #999; }
    .nav-item.active .nav-label { color: #c81e26; font-weight: 500; }
    .nav-item.active svg { stroke: #c81e26; }

    /* ======= 服务页 ======= */
    .svc-layout { display: flex; min-height: calc(100vh - 150px); }
    .svc-sidebar { width: 90px; flex-shrink: 0; background: #fff; border-right: 1px solid #eee; padding-top: 8px; }
    .svc-cat { padding: 12px 0; font-size: 13px; color: #555; text-align: center; cursor: pointer; border-left: 3px solid transparent; }
    .svc-cat.active { background: #fff; color: #c81e26; font-weight: 600; border-left-color: #c81e26; }
    .svc-content { flex: 1; padding: 14px 14px 16px; }
    .svc-top { display: flex; gap: 8px; margin-bottom: 14px; }
    .svc-top .search-box { flex: 1; box-shadow: none; border: 1px solid #eee; }
    .svc-manage { padding: 8px 12px; font-size: 13px; color: #c81e26; background: #fff; border: 1px solid #f0c9cb; border-radius: 18px; cursor: pointer; white-space: nowrap; }
    .svc-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .svc-card { background: #fff; border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.03); cursor: pointer; }
    .svc-card .svc-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #c81e26; }
    .svc-card .svc-name { font-size: 13px; color: #333; font-weight: 500; }
    .svc-header { text-align: center; font-size: 18px; font-weight: 600; color: #222; padding: 14px 16px 10px; position: relative; }
    .svc-header .top-r { position: absolute; right: 16px; top: 14px; display: flex; gap: 14px; }

    /* ======= 日程页 ======= */
    .sch-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 10px; }
    .sch-title { font-size: 18px; font-weight: 600; color: #222; }
    .sch-header .icons { display: flex; gap: 14px; }
    .sch-cal { background: #fff; margin: 0 12px; border-radius: 12px; padding: 14px 10px; box-shadow: 0 1px 4px rgba(0,0,0,0.03); }
    .sch-cal-head { display: flex; justify-content: space-between; align-items: center; padding: 0 4px 10px; }
    .sch-month { font-size: 18px; font-weight: 600; color: #222; }
    .sch-week { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 12px; color: #999; padding-bottom: 6px; }
    .sch-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
    .sch-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: 13px; color: #333; border-radius: 50%; margin: 2px; }
    .sch-day.other { color: #ccc; }
    .sch-day.today { background: #c81e26; color: #fff; font-weight: 600; }
    .sch-day.has-event::after { content: ''; width: 4px; height: 4px; border-radius: 50%; background: #c81e26; display: block; margin-top: 2px; }
    .sch-link { text-align: center; padding: 14px; font-size: 13px; color: #c81e26; cursor: pointer; }
    .sch-empty { background: #fff; margin: 0 12px; border-radius: 12px; padding: 50px 20px; text-align: center; color: #bbb; box-shadow: 0 1px 4px rgba(0,0,0,0.03); }

    /* ======= 消息页 ======= */
    .msg-header { text-align: center; font-size: 18px; font-weight: 600; color: #222; padding: 14px 16px 10px; position: relative; }
    .msg-header .top-r { position: absolute; right: 16px; top: 14px; display: flex; gap: 14px; }
    .msg-tabs { display: flex; padding: 0 20px 10px; gap: 30px; justify-content: center; }
    .msg-tab { font-size: 14px; color: #888; padding-bottom: 6px; cursor: pointer; border-bottom: 2px solid transparent; }
    .msg-tab.active { color: #222; font-weight: 600; border-bottom-color: #c81e26; }
    .msg-tool { display: flex; gap: 8px; padding: 0 14px 14px; }
    .msg-tool .search-box { flex: 1; box-shadow: none; border: 1px solid #eee; }
    .msg-btn { padding: 8px 14px; font-size: 13px; color: #fff; background: #c81e26; border-radius: 18px; border: none; cursor: pointer; white-space: nowrap; }
    .msg-btn.gray { background: #fff; color: #555; border: 1px solid #eee; }
    .msg-empty { background: #fff; margin: 0 12px; border-radius: 12px; padding: 60px 20px; text-align: center; color: #bbb; box-shadow: 0 1px 4px rgba(0,0,0,0.03); }

    /* ======= 我的页（红色主调） ======= */
    .mine-header {
      background: linear-gradient(180deg, #c81e26 0%, #e85b4f 55%, #ffffff 100%);
      padding: 40px 20px 30px;
      color: #fff;
    }
    .mine-login-row { display: flex; align-items: center; gap: 12px; }
    .mine-avatar {
      width: 56px; height: 56px; border-radius: 50%;
      background: rgba(255,255,255,0.3);
      border: 2px solid rgba(255,255,255,0.7);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .mine-login-btn {
      padding: 7px 18px; background: #fff; color: #c81e26;
      border-radius: 18px; font-size: 13px; font-weight: 600;
      cursor: pointer; border: none; margin-top: 10px; display: inline-block;
    }
    .mine-section-title {
      padding: 16px 16px 10px;
      font-size: 14px; color: #333; font-weight: 600;
      display: flex; align-items: center; gap: 8px;
    }
    .mine-section-title::before {
      content: ''; width: 3px; height: 14px; border-radius: 2px;
      background: #c81e26;
    }

    /* 图标网格卡片 */
    .mine-card {
      background: #fff; margin: -8px 12px 0; border-radius: 12px;
      padding: 4px 0; box-shadow: 0 2px 10px rgba(0,0,0,0.05);
      position: relative; z-index: 10;
    }
    .mine-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      padding: 6px 4px 10px;
    }
    .mine-grid-item {
      display: flex; flex-direction: column; align-items: center;
      gap: 6px; padding: 10px 0; cursor: pointer;
    }
    .mine-grid-item .mi-bg {
      width: 44px; height: 44px; border-radius: 12px;
      background: #fdecea; color: #c81e26;
      display: flex; align-items: center; justify-content: center;
    }
    .mine-grid-item .mi-label { font-size: 12px; color: #444; }

    /* 常用资料卡片 */
    .mine-cards-2 {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 10px; padding: 4px 12px 0;
    }
    .mine-mat {
      background: #fdecea; border-radius: 12px;
      padding: 16px 14px; cursor: pointer;
      display: flex; flex-direction: column; gap: 8px;
    }
    .mine-mat .mm-title { font-size: 14px; font-weight: 600; color: #a91720; }
    .mine-mat .mm-sub { font-size: 11px; color: #d97c83; }

    /* 列表行 */
    .mine-list {
      background: #fff; margin: 10px 12px 0;
      border-radius: 12px; overflow: hidden;
      box-shadow: 0 1px 4px rgba(0,0,0,0.03);
    }
    .mine-row {
      display: flex; align-items: center; gap: 12px;
      padding: 14px 16px; cursor: pointer;
      border-bottom: 1px solid #f5f5f5;
    }
    .mine-row:last-child { border-bottom: none; }
    .mine-row .mi {
      width: 24px; height: 24px; display: flex;
      align-items: center; justify-content: center;
      color: #c81e26;
    }
    .mine-row .ml { flex: 1; font-size: 14px; color: #333; }

    /* ======= 弹窗通用 ======= */
    .mask { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 9999; align-items: center; justify-content: center; }
    .mask.show { display: flex; }
    .mask-sheet { background: #fff; border-radius: 14px 14px 0 0; width: 100%; max-width: 430px; max-height: 70vh; overflow-y: auto; padding: 14px 16px 30px; }
    .toast { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 12px 20px; border-radius: 8px; font-size: 14px; z-index: 10000; }

    /* ======= 立案流程 / 通用子页 ======= */
    .sub-header {
      position: sticky; top: 0; z-index: 50;
      background: #fff; border-bottom: 1px solid #eee;
      display: flex; align-items: center; justify-content: space-between;
      padding: 12px 14px; flex-shrink: 0;
    }
    .sub-stack-wrap {
      display: flex; flex-direction: column; height: 100%; max-height: 100%;
    }
    .sub-scroll {
      flex: 1 1 auto; overflow-y: auto;
    }
    .sub-page { display:flex; flex-direction:column; height:100%; }
    .sub-page .sub-scroll { flex:1 1 auto; overflow-y:auto; padding-bottom:16px; }
    .sub-page .btn-bar { flex-shrink: 0; }
    .sub-header .back { display:flex; align-items:center; gap:4px; font-size:14px; color:#333; cursor:pointer; }
    .sub-title { font-size: 16px; font-weight: 600; color: #222; }
    .sub-right { font-size: 13px; color: #999; min-width: 60px; text-align:right; }

    /* 步骤进度条 */
    .stepper { display:flex; align-items:center; justify-content:center; gap:0; padding:14px 16px; background:#fff; }
    .step-dot { width:10px; height:10px; border-radius:50%; background:#ddd; flex-shrink:0; }
    .step-dot.active { background:#c81e26; }
    .step-dot.done { background:#c81e26; }
    .step-line { flex:1; height:2px; background:#ddd; }
    .step-line.active { background:#c81e26; }
    .step-labels { display:flex; justify-content:space-around; padding:0 16px 8px; font-size:11px; color:#999; background:#fff; }
    .step-labels span { text-align:center; flex:1; }

    /* 选择类子页 */
    .pl-case-types { padding: 12px; }
    .pl-case-type {
      background:#fff; border-radius:12px; padding:18px 16px;
      margin-bottom:10px; display:flex; align-items:center; gap:12px;
      box-shadow:0 1px 4px rgba(0,0,0,0.03); cursor:pointer;
    }
    .pl-case-type .ct-icon {
      width:40px;height:40px;border-radius:10px;background:#fdecea;color:#c81e26;
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
    }
    .pl-case-type .ct-info { flex:1; }
    .pl-case-type .ct-name { font-size:15px; font-weight:600; color:#222; }
    .pl-case-type .ct-desc { font-size:12px; color:#888; margin-top:3px; }

    /* 表单 */
    .form-card { background:#fff; margin:12px; border-radius:12px; padding:4px 16px; box-shadow:0 1px 4px rgba(0,0,0,0.03); }
    .form-row { display:flex; align-items:center; gap:10px; padding:14px 0; border-bottom:1px solid #f5f5f5; }
    .form-row:last-child { border-bottom:none; }
    .form-label { font-size:14px; color:#333; min-width:86px; flex-shrink:0; }
    .form-label .req { color:#c81e26; margin-right:2px; }
    .form-value { flex:1; font-size:14px; color:#555; text-align:right; display:flex; align-items:center; justify-content:flex-end; gap:4px; }
    .form-row select, .form-row input {
      flex:1; font-size:14px; color:#555; text-align:right;
      border:none; outline:none; background:transparent; text-align-last:right;
      appearance:none; -webkit-appearance:none;
    }
    .form-row input::placeholder { color:#bbb; }

    /* Radio 横向选项 */
    .opt-row { display:flex; gap:10px; flex:1; justify-content:flex-end; }
    .opt { padding:6px 14px; border:1px solid #ddd; border-radius:16px; font-size:13px; color:#555; cursor:pointer; background:#fff; }
    .opt.active { background:#c81e26; color:#fff; border-color:#c81e26; }

    /* 底部按钮 */
    .btn-bar {
      position:sticky; bottom:0; background:#fff; border-top:1px solid #eee;
      padding:12px 16px calc(12px + env(safe-area-inset-bottom));
      display:flex; gap:10px;
    }
    .btn-primary {
      flex:1; padding:12px; background:#c81e26; color:#fff; border:none;
      border-radius:24px; font-size:15px; font-weight:600; cursor:pointer;
    }
    .btn-primary:disabled { background:#ddd; color:#fff; cursor:not-allowed; }
    .btn-secondary {
      padding:12px 24px; background:#fff; color:#666; border:1px solid #ddd;
      border-radius:24px; font-size:14px; cursor:pointer;
    }

    /* 须知 */
    .notice-card { background:#fff; margin:12px; border-radius:12px; padding:18px; box-shadow:0 1px 4px rgba(0,0,0,0.03); }
    .notice-title { font-size:15px; font-weight:600; color:#c81e26; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
    .notice-body { font-size:13px; color:#555; line-height:1.8; }
    .notice-body p { margin-bottom:6px; }
    .notice-check { display:flex; align-items:center; gap:8px; padding:14px 16px; background:#fff; margin:12px; border-radius:12px; font-size:13px; color:#333; }
    .notice-check input { width:16px; height:16px; accent-color:#c81e26; }

    /* 材料上传 */
    .mat-card { background:#fff; margin:10px 12px; border-radius:12px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,0.03); }
    .mat-title { padding:12px 16px; font-size:14px; font-weight:600; color:#222; background:#fafafa; border-bottom:1px solid #f0f0f0; display:flex; align-items:center; gap:6px; }
    .mat-title .req-dot { width:6px;height:6px;background:#c81e26;border-radius:50%; }
    .mat-body { padding:14px 16px; }
    .mat-tip { font-size:12px; color:#888; margin-bottom:10px; }
    .mat-uploader {
      border:2px dashed #ddd; border-radius:10px; padding:20px; text-align:center;
      color:#bbb; cursor:pointer; background:#fafafa; transition:all 0.2s;
    }
    .mat-uploader:hover { border-color:#c81e26; color:#c81e26; }
    .mat-uploader.uploaded { border-style:solid; border-color:#27ae60; color:#27ae60; background:#f0faf3; }
    .mat-uploader .ico { margin-bottom:6px; }

    /* 完成页 */
    .done-wrap { padding:40px 20px; text-align:center; }
    .done-icon { width:80px; height:80px; border-radius:50%; background:#e8f7ed; color:#27ae60; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
    .done-title { font-size:18px; font-weight:600; color:#222; margin-bottom:6px; }
    .done-sub { font-size:13px; color:#888; margin-bottom:24px; }

    /* 我的案件 */
    .case-filter { display:flex; gap:8px; padding:12px; background:#fff; border-bottom:1px solid #eee; }
    /* 材料列表 */
    .mat-item { display:flex; align-items:center; gap:10px; background:#fff; border-radius:10px; margin:0 14px 10px; padding:13px 14px; }
    .mat-item .mi-ic { width:38px; height:38px; border-radius:9px; background:#fdeaea; color:#c81e26; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .mat-item .mi-info { flex:1; min-width:0; }
    .mat-item .mi-name { font-size:14px; color:#222; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .mat-item .mi-meta { font-size:11px; color:#999; margin-top:3px; }
    .mat-item .mi-del { color:#e05252; font-size:13px; padding:6px 4px; cursor:pointer; flex-shrink:0; }
    .mat-upload-btn { display:flex; align-items:center; justify-content:center; gap:6px; margin:0 14px 14px; padding:12px; border:1.5px dashed #d9b3b5; border-radius:10px; color:#c81e26; font-size:14px; cursor:pointer; background:#fff; }
    /* 角色切换 */
    .role-item { display:flex; align-items:center; gap:12px; background:#fff; border-radius:10px; margin:0 14px 12px; padding:15px 16px; cursor:pointer; }
    .role-item .ri-ic { width:42px; height:42px; border-radius:50%; background:#fdeaea; color:#c81e26; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .role-item .ri-name { font-size:15px; font-weight:600; color:#222; }
    .role-item .ri-desc { font-size:12px; color:#999; margin-top:2px; }
    .role-item .ri-check { margin-left:auto; color:#c81e26; display:none; }
    .role-item.active { border:1.5px solid #c81e26; }
    .role-item.active .ri-check { display:block; }
    /* 反馈页 */
    .fb-type-row { display:flex; flex-wrap:wrap; gap:8px; margin:12px 14px; }
    .fb-type { padding:7px 14px; background:#fff; border-radius:16px; font-size:13px; color:#555; cursor:pointer; border:1px solid #eee; }
    .fb-type.active { background:#c81e26; color:#fff; border-color:#c81e26; }
    .fb-textarea { width:calc(100% - 28px); margin:0 14px; background:#fff; border:none; border-radius:10px; padding:14px; font-size:14px; min-height:140px; box-sizing:border-box; outline:none; resize:none; font-family:inherit; }
    /* 搜索结果弹层 */
    .sr-card { background:#fff; border-radius:14px; width:88%; max-width:360px; max-height:78vh; overflow-y:auto; padding:18px 16px; }
    .sr-title { font-size:16px; font-weight:600; color:#222; text-align:center; margin-bottom:14px; }
    .sr-timeline { margin:14px 0 4px; }
    .sr-step { display:flex; gap:10px; padding-bottom:16px; position:relative; }
    .sr-step:last-child { padding-bottom:0; }
    .sr-dot { width:10px; height:10px; border-radius:50%; background:#e5e6e8; flex-shrink:0; margin-top:4px; position:relative; z-index:1; }
    .sr-step.done .sr-dot { background:#27ae60; }
    .sr-step.doing .sr-dot { background:#c81e26; animation:pulse 1.2s infinite; }
    @keyframes pulse { 0%,100%{box-shadow:0 0 0 0 rgba(200,30,38,.35);} 50%{box-shadow:0 0 0 6px rgba(200,30,38,0);} }
    .sr-step::before { content:''; position:absolute; left:4.5px; top:14px; bottom:0; width:1px; background:#e5e6e8; }
    .sr-step:last-child::before { display:none; }
    .sr-step.done::before, .sr-step.doing::before { background:#d8d9db; }
    .sr-step .sr-st-name { font-size:13px; font-weight:600; color:#999; }
    .sr-step.done .sr-st-name, .sr-step.doing .sr-st-name { color:#222; }
    .sr-step .sr-st-time { font-size:11px; color:#bbb; margin-top:2px; }
    /* 活体检测动作提示 */
    .face-action { position:absolute; top:-44px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.75); color:#fff; font-size:14px; padding:8px 16px; border-radius:18px; white-space:nowrap; }
    .face-action-ok { position:absolute; top:10px; right:10px; width:28px; height:28px; border-radius:50%; background:#27ae60; color:#fff; display:none; align-items:center; justify-content:center; }
    /* 送达方式页 */
    .dv-tip { margin:12px 14px 0; font-size:12px; color:#999; line-height:1.7; }
    /* 签名板 */
    .sign-canvas-wrap { background:#fff; border:1px dashed #d9b3b5; border-radius:10px; margin:12px 14px; padding:10px; }
    .sign-canvas-wrap canvas { display:block; width:100%; background:#fff; touch-action:none !important; }
    .sign-tip { text-align:center; font-size:12px; color:#bbb; padding:6px 0 2px; }
    .sign-saved { background:#fff; border-radius:10px; margin:12px 14px; padding:14px; text-align:center; }
    .sign-saved img { max-width:100%; border:1px solid #f0e0e0; border-radius:6px; background:#fff; }
    .sign-btns { display:flex; gap:10px; margin:14px; }
    .sign-btn { flex:1; padding:11px; border-radius:22px; font-size:14px; text-align:center; cursor:pointer; border:none; }
    .sign-clear { background:#f5f6f8; color:#666; }
    .sign-save { background:#c81e26; color:#fff; }
    /* 二维码页 */
    .qr-wrap { background:#fff; border-radius:14px; margin:20px 14px; padding:30px 20px; text-align:center; }
    .qr-box { width:210px; height:210px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; background:#fff; }
    .qr-name { font-size:17px; font-weight:600; color:#222; margin-bottom:6px; }
    .qr-id { font-size:13px; color:#888; font-family:menlo,monospace; }
    .qr-tip { margin:0 14px; font-size:12px; color:#999; text-align:center; line-height:1.7; }
    /* 证件核验 */
    .vf-card { background:#fff; border-radius:10px; margin:12px; padding:2px 16px; }
    .vf-row { display:flex; align-items:center; padding:13px 0; border-bottom:1px solid #f2f3f5; }
    .vf-row:last-child { border-bottom:none; }
    .vf-k { width:84px; font-size:14px; color:#333; flex-shrink:0; }
    .vf-k .req { color:#e05252; margin-right:2px; }
    .vf-row input { flex:1; border:none; outline:none; font-size:14px; color:#222; text-align:right; background:transparent; min-width:0; }
    .vf-clear { color:#ccc; cursor:pointer; padding:2px 2px 2px 8px; flex-shrink:0; }
    .vf-note { margin:0 14px 12px; background:#fff; border-radius:10px; padding:12px 16px; font-size:12px; color:#999; line-height:1.9; }
    .vf-btn { display:block; margin:18px 14px 24px; padding:13px; background:#c81e26; color:#fff; border:none; border-radius:24px; font-size:16px; text-align:center; cursor:pointer; width:calc(100% - 28px); box-sizing:border-box; }
    /* 人脸识别 */
    .face-wrap { height:100vh; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
    .face-close { padding:10px 14px 2px; color:#666; cursor:pointer; align-self:flex-start; }
    .face-head { display:flex; align-items:center; gap:10px; padding:4px 18px 14px; }
    .face-title { font-size:16px; font-weight:600; color:#222; }
    .face-sub { font-size:12px; color:#999; margin-top:2px; }
    .face-main { flex:1; padding:0 22px; display:flex; flex-direction:column; justify-content:center; }
    .face-msg { font-size:15px; font-weight:600; color:#222; line-height:1.7; text-align:center; margin-bottom:20px; }
    .face-msg b { color:#c81e26; }
    .face-cam { width:168px; height:168px; border-radius:50%; margin:0 auto 20px; border:3.5px solid #c81e26; position:relative; overflow:visible; background:linear-gradient(180deg,#fdf1f1,#f9e1e1); display:flex; align-items:center; justify-content:center; flex-shrink:0; animation:faceBreath 2.2s ease-in-out infinite; }
    .cam-inner { position:absolute; inset:0; border-radius:50%; overflow:hidden; background:#fff; }
    .cam-inner video, .cam-inner svg { border-radius:50%; }
    .face-cam::before { content:''; position:absolute; inset:-3.5px; border-radius:50%; border:3.5px solid transparent; border-top-color:rgba(200,30,38,.5); animation:faceSpin 1.5s linear infinite; z-index:3; pointer-events:none; }
    .face-cam.ok { border-color:#27ae60; animation:none; }
    .face-cam.ok::before { display:none; }
    @keyframes faceBreath { 0%,100%{box-shadow:0 0 0 6px rgba(200,30,38,.10);} 50%{box-shadow:0 0 0 14px rgba(200,30,38,.04);} }
    @keyframes faceSpin { to { transform:rotate(360deg); } }
    .face-cam .face-scan { position:absolute; left:8%; right:8%; height:3px; background:linear-gradient(90deg,transparent,#c81e26,transparent); border-radius:2px; animation:faceScan 1.6s ease-in-out infinite; }
    @keyframes faceScan { 0%{top:12%;} 50%{top:86%;} 100%{top:12%;} }
    .face-foot { padding:0 18px 16px; }
    .face-agree { display:flex; align-items:flex-start; gap:8px; font-size:12px; color:#666; margin-bottom:12px; cursor:pointer; line-height:1.5; }
    .face-agree .fb { width:18px; height:18px; border-radius:50%; border:1.5px solid #ccc; flex-shrink:0; margin-top:1px; display:flex; align-items:center; justify-content:center; }
    .face-agree.on .fb { background:#c81e26; border-color:#c81e26; }
    .face-agree.on .fb::after { content:''; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); margin-top:-2px; }
    .face-agree .lk { color:#c81e26; }
    .face-next { display:block; width:100%; padding:12px; border:none; border-radius:24px; font-size:15px; text-align:center; background:#e5e6e8; color:#a0a0a0; cursor:not-allowed; }
    .face-next.on { background:#c81e26; color:#fff; cursor:pointer; }
    .face-help { text-align:center; font-size:12px; color:#c81e26; margin-top:10px; cursor:pointer; }
    /* 个人信息 */
    .pf-head { display:flex; flex-direction:column; align-items:center; padding:24px 0 8px; }
    .pf-avatar { width:64px; height:64px; border-radius:50%; background:#fff; color:#c81e26; border:2px solid #c81e26; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:600; margin-bottom:10px; }
    .pf-name { font-size:17px; font-weight:600; color:#222; }
    .pf-id { font-size:12px; color:#999; margin-top:4px; }
    .pf-sec { padding:14px 16px 4px; font-size:14px; font-weight:600; color:#222; }
    .opt-row { display:flex; gap:10px; flex:1; justify-content:flex-end; }
    .opt-row .opt { padding:5px 16px; border-radius:6px; background:#f5f6f8; font-size:13px; color:#555; cursor:pointer; }
    .opt-row .opt.active { background:#c81e26; color:#fff; }
    .case-filter .cf-item { padding:6px 14px; font-size:13px; color:#555; background:#f5f6f8; border-radius:16px; cursor:pointer; }
    .case-filter .cf-item.active { background:#c81e26; color:#fff; }
    .case-list { padding:12px; }
    .case-card { background:#fff; border-radius:10px; padding:14px 14px 10px 18px; margin-bottom:12px; box-shadow:0 1px 5px rgba(0,0,0,0.05); position:relative; overflow:hidden; }
    .case-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:#c81e26; }
    .case-card .cc-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
    .case-card .cc-title { font-size:15px; font-weight:600; color:#222; }
    .case-card .cc-badge { font-size:11px; padding:3px 10px; border-radius:11px; flex-shrink:0; }
    .case-card .cc-badge.pending { background:#fdeaea; color:#c81e26; }
    .case-card .cc-badge.submitted { background:#e8f7ed; color:#27ae60; }
    .case-card .cc-row { font-size:13px; color:#333; margin-bottom:7px; display:flex; align-items:baseline; }
    .case-card .cc-k { color:#999; width:76px; flex-shrink:0; }
    .case-card .cc-no { font-family:menlo,monospace; word-break:break-all; }
    .case-card .cc-actions { display:flex; justify-content:flex-end; align-items:center; border-top:1px solid #f2f3f5; padding-top:8px; margin-top:4px; font-size:13px; }
    .case-card .cc-actions .act { color:#c81e26; cursor:pointer; padding:2px 10px; }
    .case-card .cc-actions .act.del { color:#e05252; }
    .case-card .cc-actions .sep { color:#e5e6e8; }
    .case-empty { text-align:center; padding:60px 20px; color:#bbb; }

    /* 搜索弹层 */
    .pane-mask { display:none; position:fixed; inset:0; z-index:9998; }
    .pane-mask.show { display:block; }
    .pane-top { background:#fff; padding:10px 14px; display:flex; gap:8px; align-items:center; border-bottom:1px solid #eee; position:sticky; top:0; z-index:2; }
    .pane-search { flex:1; background:#f5f6f8; border-radius:18px; padding:8px 14px; display:flex; align-items:center; gap:6px; }
    .pane-search input { border:none; outline:none; background:transparent; font-size:14px; flex:1; }
    .pane-cancel { font-size:14px; color:#666; cursor:pointer; white-space:nowrap; }
    .pane-list { background:#fff; max-height:70vh; overflow-y:auto; }
    .pane-group-title { padding:10px 16px 4px; font-size:13px; color:#999; background:#fafafa; }
    .pane-item { padding:12px 16px; font-size:14px; color:#333; border-bottom:1px solid #f5f5f5; cursor:pointer; }
    .pane-item:active { background:#f5f5f5; }

    /* 页面切换加载中 */
    #pageLoading { position:fixed; inset:0; z-index:300; background:rgba(255,255,255,.78); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
    #pageLoading .pl-spin { width:30px; height:30px; border:3px solid #f0d3d5; border-top-color:#c81e26; border-radius:50%; animation:plSpin .7s linear infinite; }
    #pageLoading span { font-size:13px; color:#c81e26; letter-spacing:1px; }
    @keyframes plSpin { to { transform:rotate(360deg); } }
    /* 案件状态徽章四态 */
    .cc-badge.doing { background:#e6f2ff; color:#2f7bd9; }
    .cc-badge.done { background:#f3e8fb; color:#9b59b6; }
    .cc-badge.filed { background:#e8f7ed; color:#27ae60; }

    /* ===== 在线客服聊天 ===== */
    .cs-header { background:#fff; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #f0f0f0; position:sticky; top:0; z-index:5; }
    .cs-title { font-size:17px; font-weight:600; color:#222; display:flex; align-items:center; gap:8px; }
    .cs-title svg { color:#c81e26; }
    .cs-status { font-size:12px; color:#27ae60; display:flex; align-items:center; gap:5px; }
    .cs-dot { width:7px; height:7px; border-radius:50%; background:#27ae60; animation:blink 1.4s infinite; }
    @keyframes blink { 50% { opacity:.35; } }
    .cs-list { display:flex; flex-direction:column; }
    .cs-msg { display:flex; gap:8px; max-width:82%; }
    .cs-msg.me { align-self:flex-end; flex-direction:row-reverse; }
    .cs-avatar { width:34px; height:34px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; }
    .cs-avatar.kefu { background:#c81e26; }
    .cs-avatar.user { background:#8a97a8; }
    .cs-bubble { padding:10px 13px; border-radius:12px; font-size:14px; line-height:1.6; word-break:break-all; }
    .cs-msg.kefu .cs-bubble { background:#fff; color:#333; border-top-left-radius:3px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
    .cs-msg.me .cs-bubble { background:#c81e26; color:#fff; border-top-right-radius:3px; }
    .cs-time { font-size:10px; color:#bbb; margin-top:3px; }
    .cs-msg.kefu .cs-time { text-align:left; }
    .cs-msg.me .cs-time { text-align:right; }
    .cs-welcome { text-align:center; font-size:12px; color:#bbb; padding:8px 0 2px; }
    .cs-send-btn { width:40px; height:40px; border-radius:50%; background:#c81e26; color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; }

    .cs-img-btn { width:40px; height:40px; border-radius:50%; background:#f5f6f8; color:#666; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; }
    .cs-bubble img.cs-chat-img { max-width:100%; height:auto; max-height:280px; border-radius:7px; display:block; cursor:zoom-in; object-fit:contain; }

    /* 表情面板 */
    .cs-emoji-panel { display:none; position:fixed; bottom:112px; left:50%; transform:translateX(-50%); width:100%; max-width:430px; background:#fff; border-top:1px solid #f0f0f0; padding:10px 12px 14px; grid-template-columns:repeat(8,1fr); gap:4px; z-index:25; box-sizing:border-box; }
    .cs-emoji-panel.show { display:grid; }
    .cs-emoji-panel .e { font-size:23px; text-align:center; padding:5px 0; cursor:pointer; border-radius:6px; }
    .cs-emoji-panel .e:active { background:#f5f6f8; }
    /* 发送按钮美化 */
    .cs-send-btn { width:42px; height:42px; border-radius:14px; background:linear-gradient(135deg,#d4373f,#c81e26); color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; box-shadow:0 3px 10px rgba(200,30,38,.32); transition:transform .12s; }
    .cs-send-btn:active { transform:scale(.9); }
    .cs-img-btn { width:38px; height:38px; border-radius:12px; background:#f5f6f8; color:#666; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; font-size:20px; }
    .cs-img-btn:active { background:#eceef1; }
    /* 聊天头像美化 */
    .cs-avatar.kefu { background:#fff; border:1.5px solid #e8b9bc; overflow:hidden; padding:2px; }
    .cs-avatar.kefu img { width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
    .cs-avatar.user { background:linear-gradient(135deg,#8a97a8,#6b7a8d); font-size:14px; font-weight:600; overflow:hidden; }
    .cs-avatar.user img { width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
    /* 案件卡片气泡 */
    .cs-case-card { min-width:190px; border-radius:9px; overflow:hidden; cursor:pointer; border:1px solid #f0d3d5; }
    .csc-top { display:flex; justify-content:space-between; align-items:center; background:#fdeaea; color:#c81e26; font-size:12px; font-weight:600; padding:7px 10px; }
    .csc-no { font-family:menlo,monospace; font-size:12px; color:#333; padding:8px 10px 2px; }
    .csc-court { font-size:11px; color:#999; padding:0 10px 8px; }
    .cs-msg.me .cs-case-card { border-color:rgba(255,255,255,.5); }
    .cs-msg.me .csc-top { background:rgba(255,255,255,.18); color:#fff; }
    .cs-msg.me .csc-no { color:#fff; }
    .cs-msg.me .csc-court { color:rgba(255,255,255,.75); }

    /* 客服状态条 */
    .cs-state-bar { background:#fff; border-bottom:1px solid #f0f0f0; padding:8px 14px; display:flex; align-items:center; justify-content:space-between; }
    #csStateText { font-size:12px; display:flex; align-items:center; gap:5px; }
    .cs-state-robot { color:#2f7bd9; }
    .cs-state-queue { color:#e68a2e; }
    .cs-state-human { color:#27ae60; }
    .cs-state-judge { color:#9b59b6; }
    .cs-human-btn { display:flex; align-items:center; gap:4px; font-size:12px; color:#c81e26; background:#fff; border:1px solid #e8b9bc; border-radius:14px; padding:5px 12px; cursor:pointer; }
    .cs-human-btn:active { background:#fdeaea; }
    .cs-human-btn.hidden { display:none; }
    /* 表情包区 */
    .cs-emoji-panel .pack-title { grid-column:1/-1; font-size:11px; color:#999; padding:4px 2px 0; }
    .cs-emoji-panel .pack { grid-column:span 2; text-align:center; cursor:pointer; padding:4px 0; border-radius:8px; }
    .cs-emoji-panel .pack:active { background:#f5f6f8; }
    .cs-emoji-panel .pack img { width:38px; height:38px; border-radius:8px; display:block; margin:0 auto; }
    .cs-emoji-panel .pack span { font-size:10px; color:#999; display:block; margin-top:2px; }

    /* ===== 客服页固定布局：头部固定，仅消息区滚动 ===== */
    .page.page-message.active { display:flex; flex-direction:column; height:calc(100dvh - var(--nav-h)); height:calc(100vh - var(--nav-h)); overflow:hidden; }
    .cs-header { position:static; flex-shrink:0; }
    .cs-state-bar { flex-shrink:0; }
    .cs-list { flex:1 1 auto; overflow-y:auto; min-height:0; }

/* ===== 联系法官聊天 ===== */
.page.page-message.active { display:flex; flex-direction:column; height:calc(100dvh - var(--nav-h)); height:calc(100vh - var(--nav-h)); background:#f5f6f8; overflow:hidden; }
.cs-header { display:flex; align-items:center; justify-content:space-between; padding:11px 14px; background:#fff; border-bottom:1px solid #f0f0f0; flex-shrink:0; }
.cs-h-left { display:flex; align-items:center; gap:7px; font-size:16px; font-weight:600; color:#222; }
.cs-h-right { font-size:11px; color:#27ae60; background:#e8f7ed; padding:3px 10px; border-radius:10px; }
/* 顶部滚动公告条（循环播放）+ 当前日期 */
.cs-notice { display:flex; align-items:center; gap:8px; background:#fff; border-bottom:1px solid #f0f0f0; padding:7px 12px; flex-shrink:0; }
.cs-notice-date { font-size:11px; color:#c81e26; background:#fdeaea; padding:2px 9px; border-radius:9px; flex-shrink:0; font-weight:500; }
.cs-notice-scroll { flex:1; overflow:hidden; min-width:0; }
.cs-notice-text { display:inline-block; white-space:nowrap; font-size:12px; color:#777; line-height:1.6; padding-left:100%; animation:cs-marquee 22s linear infinite; }
@keyframes cs-marquee { 0% { transform:translateX(0); } 100% { transform:translateX(-100%); } }
.cs-list { flex:1; overflow-y:auto; min-height:0; padding:12px 12px 16px; -webkit-overflow-scrolling:touch; background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27180%27%20height%3D%27120%27%3E%3Ctext%20x%3D%2714%27%20y%3D%2766%27%20font-size%3D%2713%27%20fill%3D%27rgba%28200%2C30%2C38%2C0.055%29%27%20font-family%3D%27-apple-system%2CPingFang%20SC%2Csans-serif%27%20letter-spacing%3D%271%27%20transform%3D%27rotate%28-28%2090%2060%29%27%3E%E4%BA%BA%E6%B0%91%E6%B3%95%E9%99%A2%E5%9C%A8%E7%BA%BF%E6%9C%8D%E5%8A%A1%3C%2Ftext%3E%3C%2Fsvg%3E"); }
/* 法官姓名编号（每条法官消息上方）；机器人回复用蓝色标识区分 */
.cs-judge-tag { font-size:10px; color:#8a97a8; margin-bottom:3px; padding-left:2px; }
.cs-judge-tag.cs-bot-tag { color:#2f7bd9; }
.cs-welcome { text-align:center; font-size:11px; color:#999; background:#fff; border-radius:10px; padding:7px 12px; margin:0 auto 10px; width:fit-content; max-width:86%; }
.cs-msg { display:flex; gap:7px; margin-bottom:10px; align-items:flex-start; }
.cs-msg > div:last-child { min-width:0; flex:1; display:flex; flex-direction:column; }
.cs-msg.me > div:last-child { align-items:flex-end; }
.cs-msg.kefu > div:last-child { align-items:flex-start; }
.cs-msg.kefu { flex-direction:row; }
.cs-msg.me { flex-direction:row-reverse; }
.cs-avatar { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cs-avatar.user { background:#c81e26; color:#fff; }
.cs-avatar.kefu { background:#fff; color:#c81e26; border:1px solid #f0d3d5; }
.cs-bubble { max-width:100%; min-width:0; overflow:hidden; padding:8px 11px; border-radius:11px; font-size:14px; line-height:1.5; word-break:break-word; }
.cs-msg.me .cs-bubble { background:#c81e26; color:#fff; border-top-right-radius:4px; }
.cs-msg.kefu .cs-bubble { background:#fff; color:#222; border-top-left-radius:4px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.cs-time { font-size:10px; color:#bbb; margin-top:3px; }
.cs-msg.me .cs-time { text-align:right; }
.cs-case-card { background:#fff; border:1px solid #f0d3d5; border-radius:10px; padding:10px 12px; min-width:190px; }
.cs-msg.me .cs-case-card { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.35); }
.cs-cc-title { font-size:13px; font-weight:600; color:#c81e26; display:flex; align-items:center; gap:5px; }
.cs-msg.me .cs-cc-title { color:#ffd9db; }
.cs-cc-no { font-size:11px; font-family:menlo,monospace; margin-top:5px; opacity:.85; }
.cs-cc-court { font-size:11px; margin-top:3px; opacity:.75; }
.cs-quick { display:flex; align-items:center; justify-content:center; gap:5px; padding:8px; margin:0 12px 8px; background:#fff; border:1px dashed #d9b3b5; border-radius:18px; font-size:12px; color:#c81e26; cursor:pointer; flex-shrink:0; }
.cs-input-bar { display:flex; align-items:center; gap:8px; padding:10px 12px; background:#fff; border-top:1px solid #f0f0f0; flex-shrink:0; }
.cs-img-btn { width:36px; height:36px; border-radius:50%; background:#fdeaea; color:#c81e26; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; }
#csInput { flex:1; border:none; outline:none; background:#f5f6f8; border-radius:18px; padding:9px 14px; font-size:14px; min-width:0; }
.cs-send { padding:8px 16px; background:#c81e26; color:#fff; border-radius:18px; font-size:14px; cursor:pointer; flex-shrink:0; }
/* 长按消息：禁用系统呼出菜单（保留图片点击预览） */
.cs-msg { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
.cs-msg img { -webkit-touch-callout:none; }
/* 引用回复条（输入框上方） */
.cs-reply-bar { display:flex; align-items:center; gap:8px; background:#f5f0f0; padding:7px 12px; border-top:1px solid #f0f0f0; flex-shrink:0; }
.cs-reply-bar::before { content:''; width:3px; align-self:stretch; background:#c81e26; border-radius:2px; }
.cs-reply-text { flex:1; min-width:0; font-size:12px; color:#8a6a6a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cs-reply-cancel { flex-shrink:0; color:#bbb; font-size:18px; cursor:pointer; padding:0 3px; line-height:1; }
/* 气泡内引用块 */
.cs-quote { font-size:12px; color:#999; border-left:3px solid #d9b3b5; background:rgba(0,0,0,.035); padding:5px 8px; border-radius:4px; margin-bottom:5px; max-height:54px; overflow:hidden; }
.cs-msg.me .cs-quote { color:rgba(255,255,255,.85); border-left-color:rgba(255,255,255,.6); background:rgba(255,255,255,.14); }
/* 长按操作菜单（底部弹层） */
.cs-press-mask { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:300; align-items:flex-end; justify-content:center; }
.cs-press-sheet { width:100%; max-width:430px; background:#fff; border-radius:14px 14px 0 0; padding:8px 0 calc(8px + env(safe-area-inset-bottom)); }
.cs-press-item { padding:14px 20px; font-size:15px; color:#333; cursor:pointer; text-align:center; }
.cs-press-item:active { background:#f7f7f7; }
.cs-press-item.cs-press-cancel { color:#999; border-top:1px solid #f2f2f2; margin-top:4px; }
.cs-case-pick { display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid #f7f7f7; cursor:pointer; }
.cs-case-pick:active { background:#fdf3f3; }
.cs-cp-info { flex:1; min-width:0; }
.cs-cp-type { font-size:14px; font-weight:600; color:#222; }
.cs-cp-no { font-size:11px; color:#c81e26; font-family:menlo,monospace; margin-top:3px; }
.cs-cp-status { font-size:11px; padding:2px 9px; border-radius:9px; background:#fdeaea; color:#c81e26; flex-shrink:0; }

/* 聊天 + 二级菜单 */
.csa-item { display:flex; align-items:center; gap:12px; padding:15px 22px; font-size:15px; color:#333; cursor:pointer; border-bottom:1px solid #f7f7f7; }
.csa-item:last-child { border-bottom:none; }
.csa-item:active { background:#fdf3f3; }
