/* ============================================================
   陈典兔票务系统 — UI 样式
   参考「陈典兔传媒打洞管理系统」设计语言：
   鸿蒙科技蓝 + 深色渐变侧栏 + 柔和徽章 + 吸顶表头 + 圆角卡片
   自带组件层，无外网依赖（图标额外引入 Bootstrap Icons CDN）
   ============================================================ */

/* ===== 设计变量（与参考系统一致） ===== */
:root{
  --cd-primary:#0A59F7;
  --cd-primary-2:#3F7BFF;
  --cd-primary-d:#0A4AD6;
  --cd-ink:#1B1F25;
  --cd-bg:#F5F7FA;
  --cd-card:#ffffff;
  --cd-line:#E6EAF0;
  --cd-muted:#8A94A6;
  --cd-cyan:#10B5C9;
  --cd-green:#00C26E;
  --cd-orange:#FF7D00;
  --cd-red:#FA2A2D;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--cd-bg);
  color:var(--cd-ink);
  font-family:"Noto Sans SC","HarmonyOS Sans SC","HarmonyOS Sans","PingFang SC","Microsoft YaHei","Hiragino Sans GB","Source Han Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Inter",sans-serif;
  font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:.2px;margin:0}
.text-muted{color:var(--cd-muted)!important}
small,.small{line-height:1.5;font-size:.9rem}
.fw-bold{font-weight:700}
.text-center{text-align:center}
.text-nowrap{white-space:nowrap}
.d-flex{display:flex}
.justify-content-between{justify-content:space-between}
.justify-content-center{justify-content:center}
.align-items-center{align-items:center}
.flex-wrap{flex-wrap:wrap}
.gap-2{gap:.5rem}
.gap-3{gap:1rem}
.mb-0{margin-bottom:0}
.mb-2{margin-bottom:.5rem}
.mb-3{margin-bottom:1rem}
.mb-4{margin-bottom:1.5rem}
.mt-2{margin-top:.5rem}
.mt-3{margin-top:1rem}
.mt-4{margin-top:1.5rem}
.me-1{margin-right:.25rem}
.me-2{margin-right:.5rem}
.ms-2{margin-left:.5rem}
.w-100{width:100%}
.pt-3{padding-top:1rem}
.pb-2{padding-bottom:.5rem}
.flex-column{flex-direction:column}

/* 数字/表格整齐 */
.card-stat h2,.table,.badge{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ===== 布局：侧栏 + 主区（左右独立滚动：光标在哪一侧，滚轮只滚那一侧） ===== */
.container-fluid{padding:0;width:100%}
.container-fluid > .row{display:flex;flex-wrap:nowrap;min-height:100vh;height:100vh;overflow:hidden}
.sidebar{
  width:250px;flex:0 0 250px;align-self:stretch;
  background:linear-gradient(180deg,#273746 0%,#1f2d3a 100%);
  box-shadow:2px 0 14px rgba(0,0,0,.12);
  display:flex;flex-direction:column;
  height:100vh;overflow:hidden; /* 侧栏固定视口高，仅中间菜单区可独立滚动 */
}
.main{flex:1 1 auto;min-width:0;width:auto;max-width:none;display:flex;flex-direction:column;height:100vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#c9d2dd transparent}
.cd-content{padding:20px 30px 40px;flex:1}
/* 右侧主区滚动条（细、低存在感，hover 时加深） */
.main::-webkit-scrollbar{width:8px}
.main::-webkit-scrollbar-track{background:transparent}
.main::-webkit-scrollbar-thumb{background:#c9d2dd;border-radius:4px}
.main::-webkit-scrollbar-thumb:hover{background:#aeb9c6}

/* ===== 侧边栏 ===== */
.sidebar .brand{flex-direction:column;align-items:center;text-align:center;padding:22px 16px 14px;display:flex;gap:12px}
.sidebar .brand .logo-img{max-height:66px;width:auto;display:block;filter:brightness(0) invert(1)}
.sidebar .brand-title{color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:1px;line-height:1.3}
.sidebar .brand-sub{color:#9fb0c3;font-size:.78rem;letter-spacing:2px;padding:2px 0 0}
.sidebar .brand-points{display:inline-flex;align-items:center;gap:6px;background:rgba(255,213,79,.14);border:1px solid rgba(255,213,79,.35);color:#ffd97a;font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:999px;margin-top:2px;letter-spacing:.5px;cursor:default}
.sidebar .brand-points .bi{font-size:.9rem}
.sidebar .brand-points .bp-val{font-variant-numeric:tabular-nums;color:#ffd97a}
.sidebar .brand-points.bp-negative{background:rgba(231,76,60,.16);border-color:rgba(231,76,60,.45);color:#ff9b9b}
.sidebar .brand-points.bp-negative .bp-val{color:#ff9b9b}
.sidebar .nav{flex-direction:column;display:flex;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
/* 侧栏菜单滚动条：暗色细条，光标悬停侧栏时才明显（平时轻淡不打扰） */
.sidebar .nav::-webkit-scrollbar{width:5px}
.sidebar .nav::-webkit-scrollbar-track{background:transparent}
.sidebar .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:3px}
.sidebar .nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4)}
.sidebar .nav-section{color:#6b7b8c;padding:20px 20px 8px;font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}
.sidebar .nav-link{
  color:#cdd6e0;padding:11px 14px;margin:3px 10px;border-radius:12px;font-size:1rem;
  display:flex;align-items:center;gap:12px;cursor:pointer;transition:.15s;user-select:none;text-decoration:none;
}
.sidebar .nav-link .bi{font-size:1.15rem;width:1.4rem;text-align:center}
.sidebar .nav-link:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(2px)}
.sidebar .nav-link.active{
  background:linear-gradient(90deg,var(--cd-primary),var(--cd-primary-2));color:#fff;
  box-shadow:0 6px 16px rgba(10,89,247,.40);
}
.sidebar .nav-link.text-danger{color:#ff9b9b!important}
.sidebar .nav-link.text-danger:hover{background:rgba(231,76,60,.15);color:#fff!important}
.sidebar .user-box{background:rgba(255,255,255,.06);border-radius:14px;margin:8px 10px 16px;padding:12px 14px;color:#fff;margin-top:auto}
.sidebar .user-box .un{font-weight:600;display:flex;align-items:center;gap:8px;font-size:.98rem}
.sidebar .user-box .badge{font-size:.72rem;padding:.32em .6em}

/* ===== 页面标题条 ===== */
.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:6px 0 14px;margin-bottom:18px;border-bottom:1px solid var(--cd-line)}
.page-head .ph-title{font-weight:700;color:var(--cd-ink);font-size:1.5rem;display:flex;align-items:center;gap:.5rem}
.page-head .head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ===== 卡片 ===== */
.card{border:1px solid var(--cd-line);border-radius:16px;box-shadow:0 4px 18px rgba(16,30,60,.06);background:var(--cd-card)}
.card-body{padding:1.15rem 1.3rem}
.card-header{background:#f4f7fb;color:#5b6b7e;font-weight:600;border-bottom:1px solid var(--cd-line);padding:.85rem 1.2rem;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.card-stat{border:none;border-radius:18px;box-shadow:0 6px 22px rgba(16,30,60,.10);overflow:hidden;background:var(--cd-card);height:100%}
.card-stat .card-body{padding:1.1rem 1.3rem}
.card-stat .cs-label{color:var(--cd-muted);font-size:.85rem}
.card-stat .cs-num{font-size:1.55rem;font-weight:700;margin-top:2px}
.card-stat .cs-sub{font-size:.82rem;color:var(--cd-muted);margin-top:2px}

/* ===== 按钮 ===== */
.btn{border-radius:10px;font-weight:500;padding:.45rem .9rem;border:1px solid transparent;cursor:pointer;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;line-height:1.4;transition:.15s;font-family:inherit}
.btn-sm{border-radius:8px;font-size:.875rem;padding:.34rem .7rem}
.btn-primary{background:var(--cd-primary);border-color:var(--cd-primary);color:#fff}
.btn-primary:hover{background:var(--cd-primary-d);border-color:var(--cd-primary-d)}
.btn-success{background:var(--cd-green);border-color:var(--cd-green);color:#fff}
.btn-success:hover{background:#00a85f;border-color:#00a85f}
.btn-danger{background:var(--cd-red);border-color:var(--cd-red);color:#fff}
.btn-danger:hover{background:#d81f22;border-color:#d81f22}
.btn-outline-primary{color:var(--cd-primary);border-color:var(--cd-primary);background:transparent}
.btn-outline-primary:hover{background:rgba(10,89,247,.08)}
.btn-outline-secondary{color:#5b6b7e;border-color:var(--cd-line);background:transparent}
.btn-outline-secondary:hover{background:#eef1f5}
.btn-outline-danger{color:var(--cd-red);border-color:var(--cd-red);background:transparent}
.btn-outline-danger:hover{background:rgba(250,42,45,.08)}
.btn-outline-warning{color:var(--cd-orange);border-color:var(--cd-orange);background:transparent}
.btn-outline-warning:hover{background:rgba(255,125,0,.08)}
.btn-ghost{background:transparent;border-color:var(--cd-line);color:#5b6b7e}
.btn-ghost:hover{background:#eef1f5}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ===== 表单 ===== */
.form-label{font-weight:600;color:#475569;font-size:.98rem;display:block;margin-bottom:.45rem}
.form-control,.form-select{
  width:100%;border-radius:12px;border:1px solid var(--cd-line);padding:.7rem 1rem;font-size:1rem;
  font-family:inherit;color:var(--cd-ink);background:#fff;transition:.15s;line-height:1.5;
}
.form-control:focus,.form-select:focus{border-color:var(--cd-primary);outline:none;box-shadow:0 0 0 .25rem rgba(10,89,247,.18)}
.form-control::placeholder{color:#aab2bf}
.form-row{display:flex;gap:16px;flex-wrap:wrap}
.form-row > .form-group{flex:1;min-width:200px;margin-bottom:0}
.form-group{margin-bottom:1.25rem}
.modal-body .form-group:last-child{margin-bottom:.4rem}

/* ===== 表格 ===== */
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cd-table-wrap{max-height:70vh;overflow:auto;border:1px solid var(--cd-line);border-radius:14px}
.cd-table-wrap > .table{margin-bottom:0}
.table{width:100%;border-collapse:collapse;margin-bottom:0;font-size:.95rem}
.table thead th{
  background:#f4f7fb;color:#5b6b7e;font-weight:600;border-bottom:2px solid var(--cd-line);
  white-space:nowrap;font-size:.88rem;text-align:left;padding:.75rem .85rem;position:sticky;top:0;z-index:2;
}
.table td,.table th{padding:.75rem .85rem;vertical-align:middle;border-bottom:1px solid #eef1f6;color:#33414f}
.table-hover tbody tr:hover{background-color:#f5f9ff}
.table-danger,.table-danger td{background:#fdecec!important}
.text-primary{color:var(--cd-primary)!important}
.text-success{color:var(--cd-green)!important}
.text-danger{color:var(--cd-red)!important}
.text-warning{color:var(--cd-orange)!important}

/* ===== 徽章（柔和化） ===== */
.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.32em .6em;border-radius:6px;line-height:1.3;white-space:nowrap}
.badge.bg-primary{background:#e8f0fe!important;color:#0A59F7!important}
.badge.bg-success{background:#e6f7ef!important;color:#128a5b!important}
.badge.bg-warning{background:#fef0e0!important;color:#b9690a!important}
.badge.bg-danger{background:#fde8e8!important;color:#c0392b!important}
.badge.bg-info{background:#e3f5f8!important;color:#0d7d8a!important}
.badge.bg-secondary{background:#eef1f5!important;color:#5b6b7e!important}
.badge.bg-light{background:#f1f3f7!important;color:#5b6b7e!important;border:1px solid #e2e7ef!important}

/* ===== 提醒条 ===== */
.alert{border-radius:12px;padding:.8rem 1rem;margin-bottom:1rem;border:1px solid transparent;display:flex;align-items:flex-start;gap:.5rem}
.alert-info{background:#e3f5f8;color:#0d5e68;border-color:#c4e9ef}
.alert-danger{background:#fde8e8;color:#c0392b;border-color:#f6d0d0}
.alert-success{background:#e6f7ef;color:#128a5b;border-color:#c8ecd9}

/* ===== 顶部业务 Tab ===== */
.top-tabs{border-bottom:2px solid var(--cd-line);display:flex;gap:.25rem;margin-bottom:18px;flex-wrap:wrap}
.top-tabs .tab{
  color:#5b6b7e;border:none;border-bottom:3px solid transparent;border-radius:0;font-weight:500;
  padding:.55rem 1rem;cursor:pointer;user-select:none;background:none;font-size:.95rem;transition:.15s;
}
.top-tabs .tab:hover{color:var(--cd-primary)}
.top-tabs .tab.active{color:var(--cd-primary);border-bottom-color:var(--cd-primary);font-weight:700}

/* ===== 登录页 ===== */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#1f2d3a 0%,#273746 100%)}
.login-card{width:100%;max-width:420px;background:#fff;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:2.2rem 2rem}
.login-card .lc-brand{flex-direction:column;text-align:center;display:flex;align-items:center;justify-content:center;padding:0 0 .4rem;gap:12px}
.login-card .lc-brand .logo-img{max-height:112px;width:auto;display:block}
.login-card .lc-title{font-size:1.45rem;font-weight:700;color:var(--cd-ink);letter-spacing:1px;line-height:1.2}
.login-card .lc-sub{text-align:center;color:var(--cd-muted);font-size:.9rem;margin-top:.25rem;margin-bottom:1.4rem}
.login-card .login-hint{text-align:center;color:var(--cd-muted);font-size:.82rem;margin-top:1.1rem}
.wb-entry{display:flex;gap:10px;margin-bottom:1.1rem}
.wb-entry-btn{flex:1;padding:.65rem .5rem;border-radius:12px;border:1.5px solid var(--cd-line);background:#fff;color:var(--cd-ink);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:6px}
.wb-entry-btn:hover{border-color:var(--cd-primary);color:var(--cd-primary)}
.wb-entry-btn.active{background:var(--cd-primary);border-color:var(--cd-primary);color:#fff;box-shadow:0 4px 12px rgba(10,89,247,.28)}
.wb-entry-btn i{font-size:1.05rem}
.captcha-row{display:flex;gap:10px;align-items:stretch}
.captcha-row .form-control{flex:1}
.captcha-img{height:42px;border-radius:10px;border:1px solid var(--cd-line);cursor:pointer;flex:0 0 auto}

/* ===== 模态框 ===== */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;z-index:9000;padding:24px}
.modal{background:#fff;border-radius:18px;width:100%;max-width:720px;padding:26px 30px;box-shadow:0 28px 80px rgba(0,0,0,.35);max-height:92vh;overflow:auto;animation:pop .15s ease}
.modal.modal-sm{max-width:420px}
.modal.modal-lg{max-width:900px}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}
.modal h3{font-size:1.35rem;margin:0 0 18px;color:var(--cd-ink);font-weight:700}
.modal-body{font-size:1rem;padding:4px 2px}
.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px;padding-top:16px;border-top:1px solid var(--cd-line)}
.modal-actions .btn{padding:.55rem 1.2rem;font-size:1rem}
.switch{display:flex;align-items:center;gap:.5rem;font-weight:500;margin:6px 0;cursor:pointer}
.switch input{width:18px;height:18px}
/* ===== 账号权限左右两栏（管理后台 | 零售下单）===== */
.perm-cols{display:flex;gap:14px;margin-top:2px;align-items:stretch}
.perm-col{flex:1;min-width:0;border:1px solid var(--cd-line);border-radius:14px;padding:12px 16px 14px;background:#fbfcfe}
.perm-col-head{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--cd-ink);font-size:.98rem;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--cd-line)}
.perm-col-head i{color:var(--cd-primary);font-size:1.05rem}
.perm-col .switch{margin:7px 0}
.wb-switch-main{background:#eef4ff;border-radius:8px;padding:6px 10px;margin:4px 0 8px!important;font-weight:700}
.wb-switch-main input{width:16px;height:16px}
.perm-sub{font-size:.76rem;color:var(--cd-muted);margin:-4px 0 8px 26px;line-height:1.45}
.perm-note{font-size:.78rem;color:var(--cd-muted);margin-top:10px;padding-top:10px;border-top:1px dashed var(--cd-line);line-height:1.6}
.perm-note b{color:var(--cd-ink)}
@media (max-width:720px){.perm-cols{flex-direction:column}}

/* ===== Toast ===== */
#toast{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:380px}
.toast-item{background:#fff;border-left:4px solid var(--cd-primary);border-radius:10px;padding:.7rem 1rem;box-shadow:0 8px 24px rgba(0,0,0,.15);font-size:.9rem;animation:slideIn .2s ease}
.toast-item.ok{border-left-color:var(--cd-green)}
.toast-item.err{border-left-color:var(--cd-red)}
@keyframes slideIn{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}

/* ===== 杂项 ===== */
.section-title{font-size:.78rem;font-weight:700;letter-spacing:.5px;color:var(--cd-muted);text-transform:uppercase;margin:1.4rem 0 .7rem}
.empty{text-align:center;color:var(--cd-muted);padding:3rem 1rem;border:1px dashed var(--cd-line);border-radius:14px;background:#fbfcfe}

/* 筛选搜索栏（订单 / 财务通用）—— 整齐排版：标签 + 控件 同行，控件等宽对齐 */
.filter-bar{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-bottom:14px;background:#f7f9fc;border:1px solid var(--cd-line);border-radius:12px;padding:10px 14px}
.fb-group{display:flex;align-items:center;gap:8px}
.fb-label{font-size:.82rem;color:var(--cd-muted);font-weight:500;white-space:nowrap}
.fb-dates{display:flex;align-items:center;gap:6px}
.fb-sep{color:var(--cd-muted);font-size:.82rem;white-space:nowrap}
/* 各控件统一宽度，避免拉伸导致的参差 */
.filter-bar .form-control,.filter-bar .form-select{width:auto}
#os-kw,#fs-kw{width:190px}
.filter-bar input[type=date]{width:142px}
#os-cancel,#os-paid,#fs-cancel,#fs-paid{width:104px}
.fb-actions{display:flex;gap:8px;margin-left:auto;align-items:center}
@media (max-width:760px){
  .filter-bar{gap:12px}
  .fb-actions{margin-left:0}
  #os-kw{width:100%}
  .fb-group{flex:1 1 auto}
}

/* 可搜索单选（合作商等）：输入框 + 搜索按钮 + 浮层候选 */
.ss{position:relative;display:flex;flex-direction:column;gap:6px}
.filter-bar .ss{width:208px;flex:0 0 auto}
.ss .ss-head{display:flex;gap:6px;align-items:center}
.ss .ss-head .form-control{flex:1;min-width:0;max-width:none}
.ss .ss-clearbtn{padding:0 .5rem;line-height:1;color:var(--cd-primary);border-color:transparent;background:transparent}
.ss .ss-clearbtn:hover{background:#eaf1ff}
.ss .ss-panel{position:absolute;top:100%;left:0;right:0;z-index:1200;margin-top:4px;background:#fff;border:1px solid var(--cd-line);border-radius:10px;box-shadow:0 12px 32px rgba(16,30,60,.18);max-height:260px;overflow:auto}
.ss .ss-item{padding:9px 12px;font-size:.92rem;cursor:pointer;border-bottom:1px solid #f0f2f7;display:flex;justify-content:space-between;align-items:center;gap:8px}
.ss .ss-item:last-child{border-bottom:none}
.ss .ss-item:hover{background:#f3f7ff}
.ss .ss-item .ss-sub{color:var(--cd-muted);font-size:.8rem;white-space:nowrap}
.ss .ss-empty{padding:10px 12px;color:var(--cd-muted);font-size:.88rem}
.ss .ss-cur{font-size:.85rem;color:var(--cd-muted)}
.ss .ss-cur b{color:var(--cd-primary)}
/* 筛选栏内合作商已回填名称，状态文案无需再占一行 */
.filter-bar .ss .ss-cur{display:none}
/* 已选中合作商：高亮 + 可清除 */
.ss.ss-active .ss-head .form-control{border-color:var(--cd-primary);box-shadow:0 0 0 1px rgba(10,89,247,.25)}
/* 筛选栏内已生效的筛选条件：输入框高亮提示，表明条件仍在保留 */
.filter-bar .form-control.fb-active,.filter-bar .form-select.fb-active{border-color:var(--cd-primary);box-shadow:0 0 0 1px rgba(10,89,247,.25)}

/* v208：零售锁定账号的合作商只读标签（下单/产品展示/筛选栏统一） */
.partner-lock{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px dashed var(--cd-line);border-radius:10px;background:#f7f9fc;color:var(--cd-text);font-size:.88rem;white-space:nowrap}
.partner-lock i{color:var(--cd-primary)}
.partner-lock b{color:var(--cd-primary)}
.partner-lock .text-muted{font-size:.78rem}

/* 三框产品选择器：酒店（可搜索）→ 房型（可搜索）→ 结算价格 + 库存 */
.prod-picker{margin-bottom:6px}
.prod-picker .pp-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.prod-picker .pp-cell{display:flex;flex-direction:column;gap:5px;flex:1 1 220px;min-width:200px}
.prod-picker .pp-cell .form-label{font-size:.82rem;color:var(--cd-muted);font-weight:500;margin:0}
.prod-picker .pp-price{flex:0 0 210px}
.prod-picker .pp-price .form-control{font-weight:600;color:var(--cd-primary)}
.prod-picker .pp-price .form-control.is-readonly{background:#f5f7fa;color:#555;font-weight:500}
.prod-picker .pp-stock{font-size:.8rem;color:var(--cd-muted);margin-top:2px;line-height:1.3}
.prod-picker .pp-stock:empty{display:none}
@media (max-width:680px){
  .prod-picker .pp-cell,.prod-picker .pp-price{flex:1 1 100%;min-width:0}
}

/* 附加费用逐项表单行 */
.fee-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:nowrap}
.fee-row .form-control{flex:1;min-width:0;padding:.55rem .8rem}
.fee-row .form-control[data-f="name"]{flex:1.2}
.fee-row .form-control[data-f="amount"]{flex:0 0 110px;min-width:90px;text-align:right}
.fee-row .form-control[data-f="note"]{flex:1.6}
.fee-row .policy-del{flex:0 0 auto;font-size:1.15rem;padding:4px}
@media (max-width:600px){
  .fee-row{flex-wrap:wrap}
  .fee-row .form-control[data-f="name"]{flex:1 1 45%}
  .fee-row .form-control[data-f="amount"]{flex:1 1 45%}
  .fee-row .form-control[data-f="note"]{flex:1 1 100%}
}
.kv{display:flex;gap:.6rem;padding:.35rem 0;border-bottom:1px dashed #eef1f6;font-size:.92rem}
.kv .k{color:var(--cd-muted);flex:0 0 70px}
.kv .v{flex:1}
.kv .v.text-end{text-align:right}

/* 客人名单行（两行卡片：第一行 票种+单价，第二行 姓名/身份证/电话） */
.guest-row{display:block;border:1px solid var(--cd-line);border-radius:12px;padding:12px 14px;margin-bottom:8px;background:var(--cd-card);box-shadow:0 1px 4px rgba(16,42,72,.05);transition:border-color .15s}
.guest-row:hover{border-color:#c9d7ee}
.guest-row .gr-line1{display:flex;align-items:center;gap:10px}
.guest-row .gr-line2{display:flex;align-items:center;gap:10px;margin-top:10px}
.guest-row .gr-tag{flex:0 0 auto;min-width:92px;white-space:nowrap;font-size:.74rem;font-weight:600;color:var(--cd-primary);text-align:center;background:#eef4ff;border-radius:6px;padding:.4rem .3rem}
.guest-row .gr-tag.gr-contact{background:var(--cd-primary);color:#fff}
.guest-row .gr-age{flex:0 0 auto;min-width:46px;text-align:center;font-size:.78rem;color:var(--cd-primary-d);background:#f2f5fa;border-radius:20px;padding:.28rem .5rem;white-space:nowrap}
.guest-row .gr-age:empty{display:none}
.guest-row .gr-doc-tag{flex:0 0 auto;min-width:46px;text-align:center;font-size:.72rem;font-weight:600;color:#0a7d4f;background:#e6f7ef;border-radius:20px;padding:.28rem .55rem;white-space:nowrap}
.guest-row .gr-combo-wrap{flex:1 1 auto;min-width:0;position:relative;display:flex;align-items:center}
.guest-row .gr-combo-ico{position:absolute;left:11px;font-size:.9rem;color:var(--cd-muted);pointer-events:none;z-index:1}
.guest-row .gr-combo-wrap .form-control{width:100%;padding-left:32px}
.guest-row .form-control{min-width:0;padding:.55rem .8rem}
.guest-row .form-control[data-g="name"]{flex:1.5}
.guest-row .form-control[data-g="idCard"]{flex:3}
.guest-row .form-control[data-g="phone"]{flex:2}
.guest-row .policy-del{flex:0 0 auto;font-size:1.15rem;padding:4px}
@media (max-width:600px){
  .guest-row .gr-line1,.guest-row .gr-line2{flex-wrap:wrap}
  .guest-row .gr-tag{flex:1 1 100%;text-align:left;padding:.2rem .4rem}
  .guest-row .gr-combo-wrap{flex:1 1 100%}
  .guest-row .form-control[data-g="name"]{flex:1 1 32%}
  .guest-row .form-control[data-g="idCard"]{flex:1 1 100%}
  .guest-row .form-control[data-g="phone"]{flex:1 1 40%}
}

/* 房型替换可选项（库存不足/无此房型时提示并可选） */
.room-opt-list{margin:.3rem 0 .4rem}
.room-opt{display:flex;gap:10px;align-items:center;padding:.6rem .7rem;border:1px solid var(--cd-line);border-radius:10px;margin-bottom:8px;cursor:pointer;transition:.15s;background:#fff}
.room-opt:hover{border-color:var(--cd-primary);background:#f5f8ff}
.room-opt.sel{border-color:var(--cd-primary);background:#eef4ff;box-shadow:0 0 0 2px rgba(10,89,247,.12)}
.room-opt .ro-left{flex:0 0 22px;font-size:1.2rem;display:flex;align-items:center;justify-content:center}
.room-opt .ro-main{flex:1;min-width:0}
.room-opt .ro-name{font-weight:600;font-size:.95rem}
.room-opt .ro-sub{font-size:.8rem;color:var(--cd-muted);margin-top:2px}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
/* v166：看板一行 6 等分，卡片宽度强制一致（不随卡片数量浮动） */
.stat-row.stat-6{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.stat-row.stat-6 .card-stat{border-radius:14px;box-shadow:0 4px 14px rgba(16,30,60,.09)}
.stat-row.stat-6 .card-stat .card-body{padding:.8rem .9rem}
.stat-row.stat-6 .card-stat .cs-label{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-row.stat-6 .card-stat .cs-num{font-size:1.28rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-row.stat-6 .card-stat .cs-sub{font-size:.73rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1250px){.stat-row.stat-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.stat-row.stat-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v168：AI 核对报告 3 等分汇总卡 + AI 核对操作条 */
.stat-row.stat-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat-row.stat-3 .card-stat{border-radius:14px;box-shadow:0 4px 14px rgba(16,30,60,.09)}
.stat-row.stat-3 .card-stat .card-body{padding:.8rem .9rem}
.stat-row.stat-3 .card-stat .cs-label{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-row.stat-3 .card-stat .cs-num{font-size:1.28rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-row.stat-3 .card-stat .cs-sub{font-size:.73rem;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:680px){.stat-row.stat-3{grid-template-columns:1fr}}
.ai-check-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(90deg,rgba(13,110,253,.08),rgba(13,110,253,.02));border:1px solid rgba(13,110,253,.25);border-radius:14px;padding:.55rem .9rem;margin-bottom:.9rem}
.ai-check-title{font-weight:700;color:var(--cd-primary,#0d6efd);display:flex;align-items:center;gap:6px;white-space:nowrap}
.ai-check-desc{font-size:.8rem;color:var(--cd-muted);flex:1;min-width:180px}
/* 供应链财务 v169：票种可搜索多选 */
.filter-bar #ss-sccombo{width:300px}
.sc-combo-chips{display:flex;flex-wrap:wrap;gap:4px;font-size:.8rem;line-height:1.9;max-width:300px}
.sc-combo-chips .chip{margin:0;font-size:.78rem}
.sc-combo-chips.sc-combo-empty{color:var(--cd-muted)}
#ss-sccombo .ss-item input[type=checkbox]{flex:0 0 auto}
/* 分项改价编辑器 */
.bill-edit-table{width:100%;border-collapse:collapse;margin-bottom:.6rem}
.bill-edit-table th,.bill-edit-table td{padding:6px 8px;border-bottom:1px solid #eef0f3;vertical-align:middle}
.bill-edit-table td.be-label{font-size:.9rem}
.bill-edit-table .be-price{width:130px}
.bill-edit-total{font-weight:700;font-size:1.1rem;display:flex;align-items:center;gap:8px;margin-top:.4rem}
.bill-edit-total input{font-weight:700;max-width:160px}
.text-end{text-align:right}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:1rem;padding-bottom:1rem}
.border-danger{border-color:var(--cd-red)!important}
.border-success{border-color:var(--cd-green)!important}
.border-primary{border-color:var(--cd-primary)!important}
.border-warning{border-color:var(--cd-orange)!important}

/* 下单：选产品 + 详情 两栏 */
.order-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}
.prod-pick{border:1px solid var(--cd-line);border-radius:12px;padding:.7rem .85rem;margin-bottom:.55rem;cursor:pointer;transition:.15s;background:#fff}
.prod-pick:hover{border-color:var(--cd-primary-2);background:#f5f9ff}
.prod-pick.active{border-color:var(--cd-primary);background:rgba(10,89,247,.06);box-shadow:0 0 0 2px rgba(10,89,247,.15)}
.prod-pick .pp-title{font-weight:600;color:#2c3e50;font-size:.95rem}
.prod-pick .pp-sub{color:#7f8c8d;font-size:.85rem;margin-top:2px}

@media (max-width:880px){
  .order-layout{grid-template-columns:1fr}
}

/* ===== 退改政策行 ===== */
.policy-row{display:flex;gap:10px;align-items:flex-end;padding:8px;margin-bottom:8px;background:#f7f9fc;border:1px solid var(--cd-line);border-radius:12px}
.policy-row .pr-f1{flex:1;min-width:90px}
.policy-row .pr-f2{flex:0 0 120px;min-width:110px}
.policy-row .pr-f3{flex:1.4;min-width:120px}
.policy-row .pr-dur{flex:0 0 168px;min-width:150px}
.policy-row .dur-inputs{display:flex;align-items:center;gap:4px}
.policy-row .dur-inputs input{width:64px;min-width:54px;text-align:center}
.policy-row .dur-inputs span{color:var(--cd-muted);font-size:.9rem}
.policy-row .form-control,.policy-row .form-select{padding:.5rem .7rem;font-size:.95rem}
.policy-del{flex:0 0 auto;align-self:center;background:none;border:none;color:var(--cd-red);font-size:1.2rem;cursor:pointer;padding:6px;line-height:1}
.policy-del:hover{opacity:.7}
/* 退改区间规则（含「提前起/提前止」两个时间段）允许换行，避免窄屏溢出 */
.pol-rule{flex-wrap:wrap}

/* ===== 日历库存 ===== */
.stock-range{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:#f7f9fc;border:1px solid var(--cd-line);border-radius:12px;padding:12px;margin-bottom:10px}
.stock-range .form-group{margin-bottom:0}
.stock-list-head{display:flex;justify-content:space-between;align-items:center;font-size:.92rem;font-weight:600;color:#475569;margin:.3rem 0 .5rem}
.stock-list{display:flex;flex-wrap:wrap;gap:8px}
.stock-chip{display:inline-flex;align-items:center;gap:8px;background:#eef4ff;border:1px solid #cfe0ff;color:#1f4fb0;border-radius:8px;padding:4px 8px;font-size:.88rem}
.stock-chip b{color:#0A59F7}
.stock-chip i{cursor:pointer;font-size:.95rem}
.stock-chip i:hover{color:var(--cd-red)}

/* ===== 退改政策展示（下单页） ===== */
.pol-list{display:flex;flex-direction:column;gap:4px;margin-top:2px}
.pol-item{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem;padding:3px 8px;background:#f7f9fc;border-radius:8px}
.pol-item .pol-h{font-weight:600;color:#33414f}
.pol-item .pol-fee{color:var(--cd-orange);font-weight:600}
.pol-item .pol-label{color:var(--cd-muted)}
#policyErr{display:none}
#policyErr:not(:empty){display:block}

/* ===== 响应式：窄屏侧栏转顶部（取消左右独立滚动，恢复整页滚动） ===== */
@media (max-width:767px){
  .container-fluid > .row{flex-wrap:wrap;height:auto;overflow:visible}
  .sidebar{width:100%;flex-basis:100%;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 8px;height:auto;overflow:visible}
  .sidebar .brand{padding:8px 12px 8px;font-size:1.1rem}
  .sidebar .brand-sub,.sidebar .nav-section{display:none}
  .sidebar .nav{flex-direction:row;flex-wrap:wrap;gap:4px;flex:none;min-height:auto;overflow:visible;scrollbar-width:auto}
  .sidebar .nav-link{margin:2px 4px;padding:8px 12px;font-size:.95rem}
  .sidebar .nav-link span.label{display:none}
  .sidebar .user-box{margin:6px 8px;margin-left:auto;padding:8px 10px}
  .main{height:auto;overflow:visible}
  .cd-content{padding:14px 14px 32px}
  .modal{max-width:95vw;padding:18px}
}

/* ===== 库存看板（预定日历） ===== */
.cd-card{background:#fff;border:1px solid var(--cd-line);border-radius:14px;padding:16px 18px;margin-bottom:18px;box-shadow:0 2px 10px rgba(16,30,60,.04)}
.cd-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.cd-title{font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:8px}
.cd-sub{font-size:.8rem;font-weight:400;color:var(--cd-muted);margin-left:4px}
.cd-head-actions{display:flex;align-items:center;gap:8px}
.cd-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;background:#f7f9fc;border:1px solid var(--cd-line);border-radius:10px;padding:12px 14px;margin-bottom:16px}
.filter-item{display:flex;flex-direction:column;gap:5px}
.filter-item .fl-label{font-size:.72rem;font-weight:600;color:var(--cd-muted);letter-spacing:.04em}
.filter-item .fl-sel{min-width:104px}
.cal-nav{display:flex;align-items:center;gap:10px}
.cal-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cal-mlabel{font-weight:700;font-size:1.05rem;min-width:92px;text-align:center}
.cal-legend{display:flex;gap:8px;margin-left:auto;font-size:.76rem;color:var(--cd-muted);flex-wrap:wrap}
.cal-legend .lg{padding:1px 9px;border-radius:20px}
.lg-ok{background:#e8f7ee;color:#1a8a4a}
.lg-low{background:#fff3e0;color:#c77400}
.lg-full{background:#fdecec;color:#d33}
.lg-na{background:#eef1f6;color:#6b7280}
/* ===== 预定日历 ===== */
/* 周几配色：表头与对应列同色，便于区分（日一二三四五六 各一色） */
.board-cal .w0{--wc:#e0556b;--wbg:#fdeef0}
.board-cal .w1{--wc:#3f7bf0;--wbg:#eef4fe}
.board-cal .w2{--wc:#1f9d6b;--wbg:#eafaf2}
.board-cal .w3{--wc:#8e5fd1;--wbg:#f4eefc}
.board-cal .w4{--wc:#e89a2b;--wbg:#fef5e9}
.board-cal .w5{--wc:#1fa6b4;--wbg:#e9f8fa}
.board-cal .w6{--wc:#6b73e0;--wbg:#eef0fc}
.board-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
/* 表头：轻巧彩色细条——收缩不抢眼、字清晰可读（仅此一行，不影响日期格） */
.board-cal .cal-wd{background:transparent;border:none;min-height:0;height:26px;font-weight:700;color:var(--wc,#9aa3b2);padding:0;margin:0;line-height:1;font-size:.82rem;letter-spacing:.02em;display:flex;align-items:center;justify-content:center}
/* 日期列底色（按周几淡色），排除表头 */
.board-cal .cal-cell.w0,.board-cal .cal-cell.w1,.board-cal .cal-cell.w2,.board-cal .cal-cell.w3,.board-cal .cal-cell.w4,.board-cal .cal-cell.w5,.board-cal .cal-cell.w6{background:var(--wbg,#fff)}
.board-cal .cal-cell.cal-wd{background:transparent}
.board-cal .cal-cell{min-height:140px;background:#fff;border:1px solid var(--cd-line);border-radius:12px;padding:7px 9px;display:flex;flex-direction:column;gap:5px;font-size:.82rem;overflow:hidden;transition:box-shadow .15s,border-color .15s}
.board-cal .cal-cell:hover{box-shadow:0 6px 18px rgba(16,30,60,.09);border-color:#c7d2ea}
.board-cal .cal-cell.cal-empty{background:transparent;border:none;box-shadow:none;min-height:auto;pointer-events:none}
.board-cal .cal-cell.today{border-color:var(--cd-primary);box-shadow:0 0 0 2px rgba(40,98,240,.18);background:#f5f8ff}
.cal-top{display:flex;align-items:flex-start;justify-content:space-between;line-height:1}
.cal-dnum{font-weight:800;font-size:1.14rem;color:var(--wc,#1f2d4d);line-height:1}
.cal-today{background:var(--cd-primary);color:#fff;font-size:.6rem;font-weight:700;border-radius:6px;padding:1px 6px;line-height:1.5;align-self:flex-start}
.cal-rts{display:flex;flex-direction:column;gap:2px;overflow:auto;margin-top:1px}
/* 房型行：房名完整显示（可换行），库存右对齐成整齐一列，整体窄一些减少留白 */
.rt-row{display:flex;align-items:baseline;justify-content:space-between;gap:3px;padding:1px 5px;border-radius:4px;background:#eef9f1;border-left:3px solid #34b27b;line-height:1.15}
.rt-row .rt-name{color:#33405e;flex:1 1 auto;min-width:0;font-size:.76rem;line-height:1.15;word-break:break-word}
.rt-row .rt-stat{flex:0 0 auto;text-align:right;font-weight:700;font-size:.72rem;white-space:nowrap}
.rt-row.rt-low{background:#fff6e9;border-left-color:#f0a93b}
.rt-row.rt-low .rt-stat{color:#c77400}
.rt-row.rt-full{background:#fdeeee;border-left-color:#ef6b6b}
.rt-row.rt-full .rt-stat{color:#d33}
.rt-row.rt-na{background:#f1f3f7;border-left-color:#c2c9d6}
.rt-row.rt-na .rt-stat{color:#6b7280}
.rt-empty{color:var(--cd-muted);text-align:center;padding:8px 0;font-size:.72rem}
.cd-empty{padding:40px 16px;text-align:center;color:var(--cd-muted);background:#fafbfe;border:1px dashed var(--cd-line);border-radius:10px}

@media (max-width:680px){
  .board-cal{gap:4px}
  .board-cal .cal-cell{min-height:112px;padding:6px 6px;font-size:.72rem;gap:4px;border-radius:9px}
  .board-cal .cal-wd{font-size:.72rem;height:22px;padding:0;line-height:1;display:flex;align-items:center;justify-content:center}
  .cal-dnum{font-size:.92rem}
  .rt-row .rt-name{font-size:.66rem;line-height:1.1}
  .rt-row .rt-stat{font-size:.62rem}
  .rt-row{padding:1px 3px;gap:2px;border-radius:3px}
  .cd-head-actions{width:100%}
  .cd-head-actions .ss{width:100% !important;flex:1 1 auto}
  .cal-legend{margin-left:0;width:100%}
  .cd-filters{gap:10px 12px;padding:10px 12px}
  .cd-filters .filter-item{flex:1 1 140px}
  .cd-filters [style*="width:200px"]{width:100% !important}
}

/* ===== 工作台切换 + 零售端界面 ===== */
.wb-switch{display:flex;align-items:center;gap:6px;margin:10px 10px 6px;padding:6px 8px;background:rgba(255,255,255,.08);border-radius:8px;color:rgba(255,255,255,.85);font-size:.82rem}
.wb-switch select{max-width:130px;cursor:pointer;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.25)}
.wb-switch select:focus{background:rgba(255,255,255,.2);color:#fff}
.wb-switch i{font-size:.9rem;color:rgba(255,255,255,.7)}

.rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:14px}
.rp-card{background:#fff;border:1px solid #e6e9f0;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 3px rgba(20,30,60,.04)}
.rp-card:hover{border-color:#b9c4dc}
.rp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.rp-name{font-weight:700;color:#1f2a44;line-height:1.3}
.rp-price{color:#e8374a;font-weight:800;white-space:nowrap}
.rp-price small{font-weight:500;color:#9aa3b2;font-size:.7rem}
.rp-meta{font-size:.8rem;color:#7a869f}

.rec-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.rec-item{background:#fff;border:1px solid #e6e9f0;border-radius:12px;padding:16px;text-align:center}
.rec-num{font-size:1.4rem;font-weight:800;color:#1f2a44}
.rec-lbl{font-size:.8rem;color:#7a869f;margin-top:4px}

.cd-modal-mask{position:fixed;inset:0;background:rgba(20,28,50,.45);display:none;align-items:center;justify-content:center;z-index:1080}
.cd-modal{background:#fff;border-radius:14px;width:min(460px,92vw);max-height:90vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.cd-modal .modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #eef0f5;font-size:1rem}
.cd-modal .modal-head .btn-close{border:none;background:transparent;font-size:1.3rem;line-height:1;cursor:pointer;color:#7a869f}
.cd-modal .modal-body{padding:16px}
.cd-modal .modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #eef0f5}
.cd-modal .form-group{margin-bottom:10px}
.cd-modal .form-group label{display:block;font-size:.82rem;color:#5b6680;margin-bottom:4px}

/* ===== 门票套餐：主套餐卡片 + 可折叠子套餐 ===== */
.combo-cards{display:flex;flex-direction:column;gap:12px}
.combo-card{border:1px solid var(--cd-line);border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(16,30,60,.05);overflow:hidden}
.combo-card-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(90deg,#f4f8ff,#eef4ff)}
.combo-toggle{border:none;background:transparent;color:#33414f;font-size:1.15rem;line-height:1;cursor:pointer;padding:4px 6px;border-radius:8px;flex:0 0 auto}
.combo-toggle:hover{background:rgba(10,89,247,.1);color:var(--cd-primary)}
.combo-name{font-weight:700;font-size:1.05rem;color:var(--cd-ink)}
.combo-card-head .head-btns{display:flex;gap:8px;flex-wrap:wrap}
.combo-card-body{padding:8px 14px 14px;border-top:1px solid var(--cd-line);background:#fff}
.sub-combo-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--cd-line);border-radius:10px;margin-top:8px;background:#fbfcfe}
.sub-combo-row .scr-main{flex:1;min-width:0}
.sub-combo-row .scr-name{font-weight:600;color:#2c3e50;font-size:.96rem}
.sub-combo-row .scr-items{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}
.sub-combo-row .scr-price{flex:0 0 auto;font-weight:700;color:var(--cd-primary);font-variant-numeric:tabular-nums;font-size:1rem}
.sub-combo-row .scr-actions{display:flex;gap:6px;flex:0 0 auto}
@media (max-width:600px){
  .combo-card-head{flex-wrap:wrap}
  .combo-card-head .head-btns{width:100%;margin-left:0;margin-top:4px}
  .sub-combo-row{flex-wrap:wrap}
  .sub-combo-row .scr-actions{width:100%}
}

/* ===== 订单：套餐勾选批量区 / 单价可改 / 合作商差值设置 ===== */
.guest-row .gr-price{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}
.guest-row .gr-price .gr-price-label{font-size:.74rem;color:var(--cd-muted);white-space:nowrap}
.guest-row .gr-price .form-control{width:92px;flex:0 0 auto;padding:.55rem .6rem;text-align:right}
.guest-row .gr-pricehint{color:var(--cd-muted);font-size:.8rem;white-space:nowrap}
.combo-pick{background:#fafbfe;border:1px solid var(--cd-line);border-radius:10px;padding:10px 12px;margin:8px 0}
.combo-pick .cp-main{margin-bottom:8px}
.combo-pick .cp-main-name{font-weight:600;font-size:.86rem;margin-bottom:4px;color:var(--cd-primary)}
.combo-pick .cp-sub{display:flex;align-items:center;gap:8px;margin:4px 0}
.combo-pick .cp-sub .cp-chk{flex:0 0 auto;width:16px;height:16px}
.combo-pick .cp-sub-name{flex:1;font-size:.86rem}
.combo-pick .cp-sub .cp-price{color:var(--cd-muted);font-size:.8rem;margin-left:4px}
.combo-pick .cp-qty{flex:0 0 auto;width:64px}
.cp-diff-box{max-height:300px;overflow:auto;border:1px solid var(--cd-line);border-radius:10px;padding:8px 10px;background:#fafbfe}
.cp-diff-prod{margin-bottom:8px}
.cp-diff-prod-name{font-weight:600;font-size:.84rem;margin-bottom:4px;color:var(--cd-ink)}
.cp-diff-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:3px 0}
.cp-diff-sub{flex:1;font-size:.82rem}
.cp-diff-input{flex:0 0 90px}
.cp-diff-toolbar{margin:6px 0 8px}
.cp-diff-main{border:1px solid var(--cd-line);border-radius:8px;margin:6px 0;background:#fff;overflow:hidden}
.cp-diff-main-head{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;user-select:none;background:#f4f6fb}
.cp-diff-main-head:hover{background:#eef1f8}
.cp-diff-main-name{font-weight:600;font-size:.86rem;color:var(--cd-ink)}
.cp-toggle{display:inline-block;width:14px;text-align:center;color:var(--cd-muted);transition:transform .15s}
.cp-diff-main-body{padding:6px 12px 8px;background:#fafbfe}
.combo-search-bar{margin:.7rem 0 1rem}
.ss-hit{display:block;font-size:.76rem;color:var(--cd-primary);margin-top:2px;font-weight:400}
/* 订单套餐选择：产品归属头 */
.cp-product-head{font-weight:700;font-size:.92rem;color:var(--cd-primary);background:#eef3ff;border:1px solid #d7e3ff;border-radius:8px;padding:7px 10px;margin:8px 0 6px;display:flex;align-items:center;gap:6px}
/* 合作商差值：按产品分组 */
.cp-diff-product{border:1px solid var(--cd-line);border-radius:10px;margin:8px 0;background:#fff;overflow:hidden}
.cp-diff-product-head{display:flex;align-items:center;gap:6px;padding:9px 12px;cursor:default;background:#eaf0ff;font-weight:700;color:var(--cd-primary);font-size:.9rem;border-bottom:1px solid var(--cd-line)}
.cp-diff-product-body{padding:6px 8px}
.cp-diff-prod{margin-bottom:8px}
.cp-diff-prod-name{font-weight:600;font-size:.84rem;margin-bottom:4px;color:var(--cd-ink)}

/* 订单管理：套餐分行（成人一行/儿童一行）；默认容纳3行，超出自动撑高 */
.pkg-cell{vertical-align:top}
.pkg-list{display:flex;flex-direction:column;gap:2px;min-height:calc(3 * 1.55rem)}
.pkg-row{display:flex;align-items:center;gap:8px;line-height:1.55rem;white-space:nowrap}
.pkg-name{flex:1;font-size:.82rem;color:var(--cd-ink);overflow:hidden;text-overflow:ellipsis}
.pkg-qty{font-weight:700;font-size:.8rem;color:var(--cd-primary);min-width:30px;text-align:right}
.pkg-amt{font-weight:600;font-size:.8rem;color:var(--cd-ink);min-width:64px;text-align:right}
.pkg-names{font-size:.74rem;color:var(--cd-muted);padding-left:2px;margin:-1px 0 2px;line-height:1.35rem}

/* 套餐行：金额跟随每个套餐，显示「单价 × 数量」 */
.pkg-amt{font-weight:600;font-size:.8rem;color:var(--cd-ink);min-width:72px;text-align:right;white-space:nowrap}
.pkg-x{font-weight:700;color:var(--cd-primary);margin-left:1px}
/* 订单表头/状态列对齐修正（提高特异性以覆盖 Bootstrap 的 .table 单元格规则） */
.table .th-center{text-align:center;vertical-align:middle}
.table .td-center{text-align:center;vertical-align:middle}
.table .status-cell{text-align:center;vertical-align:middle;min-width:96px}
.status-cell .badge{min-width:0;font-size:.72rem;font-weight:600;padding:.32em .6em;display:block;width:fit-content;margin:2px auto;white-space:nowrap}
.status-cell .badge-sub{min-width:0;font-size:.72rem;font-weight:600;padding:.32em .6em;margin:2px auto;display:block;width:fit-content;white-space:nowrap}
.status-cell .status-time{display:block;margin-top:3px;font-size:.72rem;line-height:1.1;color:var(--cd-muted)}

/* 订单表：操作列改为竖直紧凑堆叠，并固定右侧，避免横排过宽需往后拖 */
.orders-table thead th{background:#f5f7fa;color:#334;font-weight:600;font-size:.82rem;white-space:nowrap;border-bottom:2px solid #e6eaf0}
.orders-table tbody td{vertical-align:middle;font-size:.85rem}
.actions-col{width:88px;min-width:88px}
.actions-col .btn{padding:.18rem .3rem;font-size:.78rem;line-height:1.3;white-space:nowrap}
/* sticky 右侧操作列：即使表格横向滚动，操作也始终黏在右边可见 */
.table .sticky-col{position:sticky;right:0;background:#fff;z-index:2}
.table thead .sticky-col{background:#f5f7fa;z-index:3}
.table .sticky-col::before{content:'';position:absolute;top:0;bottom:0;left:-1px;width:1px;background:#e6eaf0;box-shadow:-3px 0 6px -4px rgba(0,0,0,.18)}

/* 财务：需要付款（红色）高亮 tab */
.tab-danger{color:#dc3545;font-weight:600}
.tab-danger.active{background:#dc3545;color:#fff;border-color:#dc3545}

/* 结算单模块 */
.page-subhead{font-weight:600;color:var(--cd-ink);margin-bottom:.5rem}
/* 合并付款入口条 */
.pay-action-bar{background:#f0f7ff;border:1px solid #cfe2ff;border-radius:8px;padding:.55rem .75rem}
/* 合并付款：勾选行高亮 + 结算单文字版付款信息 */
.row-selected{background:#eef5ff !important}
.bill-pinfo{font-size:.7rem;color:#555;margin-top:3px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 操作日志（订单/结算单详情） */
.log-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;padding:2px 0}
.log-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.78rem;padding:4px 8px;background:#f8f9fa;border-radius:6px;border-left:3px solid var(--cd-primary, #0d6efd)}
.log-time{color:#888;font-size:.7rem;white-space:nowrap}
.log-by{font-weight:600;color:var(--cd-ink)}
.log-action{color:#333;font-weight:600}
.log-note{color:#888;font-size:.74rem}
.bill-pinfo-pre{white-space:pre-wrap;font-size:.8rem;background:#f8f9fa;padding:8px 10px;border-radius:6px;margin:0;line-height:1.6}
/* AI 改单 */
.ai-chg{color:#dc3545;font-weight:600;font-size:.85rem;margin-top:3px}
/* 合作商绑定多账号 */
.pt-bind-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px 10px;margin-bottom:.4rem}
.pt-bind-item{font-size:.8rem}
/* 导出模板字段选择 */
.ex-fields-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 10px;max-height:240px;overflow:auto;padding:2px}
.ex-item{font-size:.8rem}
.ai-new{color:#dc3545;font-weight:700}
.bill-proof-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;border:1px solid #dee2e6;cursor:pointer}
.bill-proof-prev{max-width:160px;max-height:160px;border-radius:6px;border:1px solid #dee2e6}
.bill-reject-row{background:#fff5f5}
.bill-reject{font-size:.8rem;color:#dc3545}
.bill-reject-more{color:#0d6efd;cursor:pointer;margin-left:2px}
.bill-reject-prev{color:#dc3545}

/* ===== 财务：结算应付款预警（超时未付 / 今天应付款） ===== */
.fin-alerts{margin-bottom:1rem}
.fin-alert-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:.6rem .9rem;border:1px solid #f5c6cb;background:#fff5f5;border-radius:12px;margin-bottom:.6rem}
.fin-alert-card{border-radius:12px;margin-bottom:.6rem;overflow:hidden;border:1px solid}
.fin-alert-overdue{border-color:#f5c6cb;background:#fff5f5}
.fin-alert-today{border-color:#ffe0a3;background:#fffaf0}
.fin-alert-head{display:flex;justify-content:space-between;align-items:center;padding:.65rem 1rem;cursor:pointer;user-select:none}
.fin-alert-overdue .fin-alert-head{background:#fdecea;color:#b02a37}
.fin-alert-today .fin-alert-head{background:#fff3e0;color:#b45309}
.fin-alert-title{font-weight:700;display:flex;align-items:center;gap:8px}
.fin-alert-tip{font-weight:400;font-size:.78rem;color:#8a8a8a}
.fin-alert-toggle{font-size:.82rem;color:#8a8a8a}
.fin-alert-body{padding:.25rem .5rem}
.fin-alert-body .table{margin:0}
.fin-alert-body .td-center{width:36px}

/* ============ 公告模块（票务 / 景区公告）============ */
.empty-tip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:#9aa6b2;text-align:center}
.empty-tip i{font-size:3rem;opacity:.5}
/* 公告表格（与订单/产品等 PC 板块同规格） */
.an-table{font-size:.95rem}
.an-table thead th{font-size:.85rem;color:#5b6b7e;font-weight:600;background:#f4f7fb;white-space:nowrap}
.an-title-cell{font-weight:600;color:var(--cd-ink);min-width:180px;max-width:320px;word-break:break-word;line-height:1.45}
.an-content-cell{color:#3a4250;line-height:1.6;max-width:360px;max-height:3.2em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.an-thumb{width:96px;height:60px;object-fit:cover;border-radius:8px;cursor:zoom-in;border:1px solid var(--cd-line);background:#eef1f5;display:block}
.an-thumb:hover{box-shadow:0 2px 10px rgba(16,30,60,.18)}
.an-table td{vertical-align:middle}
/* 公告富文本编辑器 */
.an-editor-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border:1px solid var(--cd-line);border-bottom:none;border-radius:10px 10px 0 0;background:#f4f7fb}
.an-editor-toolbar .btn-ghost{padding:.25rem .5rem;font-size:.9rem}
.an-editor{min-height:180px;max-height:420px;overflow:auto;border-radius:0 0 10px 10px;padding:.8rem 1rem;line-height:1.7;font-size:1rem;color:#1f2733}
.an-editor:empty:before{content:attr(data-placeholder);color:#9aa6b2}
.an-editor:focus{outline:none;border-color:var(--cd-primary)}
.an-editor img{max-width:100%;border-radius:10px;display:block;margin:8px auto}
.an-editor h2,.an-editor h3{margin:.4em 0 .3em;font-weight:700;color:var(--cd-ink)}
.an-editor h3{font-size:1.15rem}
.an-editor h2{font-size:1.3rem}
.an-editor ul,.an-editor ol{margin:.3em 0 .3em 1.4em;padding-left:.2em}
.an-editor li{margin:.15em 0}
.an-editor p{margin:.4em 0}
.an-prev-box{display:flex;justify-content:center}
.an-prev-box img.an-prev{max-width:100%;max-height:200px;border-radius:8px;border:1px solid var(--cd-line)}
.an-prev-box{margin-top:6px}
/* 公告渲染区（列表/详情）排版 */
.an-rich{color:#3a4250;line-height:1.75;word-break:break-word}
.an-rich img{max-width:100%;border-radius:10px;display:block;margin:8px auto;cursor:zoom-in}
.an-rich h2,.an-rich h3{margin:.3em 0 .25em;font-weight:700;color:var(--cd-ink)}
.an-rich h3{font-size:1.05rem}
.an-rich h2{font-size:1.2rem}
.an-rich ul,.an-rich ol{margin:.25em 0 .25em 1.4em}
.an-rich p{margin:.35em 0}
.an-content-cell{max-width:420px}
.an-title-link{color:var(--cd-ink);font-weight:600;text-decoration:none;cursor:pointer}
.an-title-link:hover{color:var(--cd-primary);text-decoration:underline}
.an-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.an-detail-body{font-size:1.05rem;line-height:1.85}
.an-detail-body img{max-width:100%;border-radius:12px;display:block;margin:12px auto}
.an-detail-body h3{font-size:1.2rem}
.an-detail-body h2{font-size:1.35rem}

/* ============ 导游录入 ============ */
.an-guide-row{display:grid;grid-template-columns:1.2fr .7fr 1.5fr 1.1fr 1.1fr auto;gap:.4rem;align-items:center;margin:.3rem 0}
.an-guide-row .form-control-sm{padding:.25rem .5rem;width:100%}
@media (max-width:720px){.an-guide-row{grid-template-columns:1fr 1fr}}

/* ============ 表格导入预览 ============ */
.imp-order-card{border:1px solid var(--cd-line,#e5e9f0);border-radius:12px;padding:.7rem .9rem;margin:.6rem 0;background:#fafbfd}
.imp-order-card .imp-order-head{font-size:.95rem;margin-bottom:.25rem}

/* ============ 产品展示（同业报价单 · PC 排版 / A4 打印） ============ */
.showcase-doc{background:#fff;border:1px solid #e5e9f0;border-radius:12px;padding:18px 20px;margin-top:.8rem}
.showcase-doc-head{border-bottom:2px solid #1c2333;padding-bottom:8px;margin-bottom:10px}
.showcase-doc-head .doc-title{font-size:1.35rem;font-weight:800;color:#1c2333;letter-spacing:1px}
.showcase-doc-head .doc-sub{font-size:.82rem;color:#8a97a6;margin-top:2px}
.showcase-table{width:100%;border-collapse:collapse;font-size:.88rem}
.showcase-table th{background:#f2f4f7;color:#1c2333;font-weight:700;border:1px solid #d5dbe3;padding:7px 8px;text-align:center;white-space:nowrap}
.showcase-table td{border:1px solid #d5dbe3;padding:6px 8px;vertical-align:middle}
.showcase-table tbody tr:hover{background:#f7f9fb}
.showcase-table .sc-prod{min-width:110px}
.showcase-table .sc-sess{color:#5b6b7c;min-width:120px}
.showcase-table .sc-sess-line{display:flex;align-items:center;gap:4px;flex-wrap:wrap;line-height:1.7}
.showcase-table .sc-sess-period{color:#0d6efd;font-weight:700;font-size:.72rem;margin-right:2px}
.showcase-table .sc-sess-chip{background:#f2f6fc;border:1px solid #d8e2f0;border-radius:4px;padding:1px 6px;font-size:.72rem;color:#33507a;white-space:nowrap}
.showcase-table .sc-dates{color:#5b6b7c;min-width:120px;white-space:nowrap}
.showcase-table .sc-combo{font-weight:600}
.showcase-table .sc-items{color:#5b6b7c}
.showcase-table .sc-price{font-weight:800;color:#0d6efd;text-align:right;white-space:nowrap}
.showcase-table .sc-price-cell{display:flex;align-items:baseline;justify-content:flex-end;gap:6px}
.showcase-table .sc-final{color:#dc3545;font-size:1.02rem}
.showcase-table .sc-base{color:#9aa7b4;font-size:.78rem;font-weight:500}
.showcase-table .sc-discount{color:#dc3545;font-size:.72rem;font-weight:600;text-align:right}
.showcase-table .sc-markup{color:#b8860b}
.showcase-table .sc-disc-col{text-align:center;white-space:nowrap}
.showcase-table .sc-disc-col .sc-discount{text-align:center}
.showcase-table .sc-status{color:#b02a37;white-space:nowrap}
@media print{
  body{background:#fff}
  .sidebar,.topbar,.filter-bar,.alert,.page-head .head-actions,.btn{display:none !important}
  .cd-content{padding:0;margin:0}
  .showcase-doc{border:none;padding:0;margin:0;box-shadow:none}
  .showcase-table{font-size:10pt}
  .showcase-table th,.showcase-table td{border:1px solid #333;padding:4px 6px}
  @page{size:A4;margin:12mm}
}

/* ============ 附加套餐（主商品之外可加购项） ============ */
.addon-block{margin-top:.55rem;border:1px solid #f0e3cd;border-radius:12px;background:#fffdf7;overflow:hidden}
.addon-block-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:.45rem .7rem;background:linear-gradient(90deg,#fff7e8,#fffdf5);border-bottom:1px solid #f0e3cd}
.addon-block-title{font-weight:700;color:#a06a1a;font-size:.85rem}
.addon-block-note{color:#b99768;font-size:.74rem}
.addon-row{background:#fffdf7}
.addon-row:hover{background:#fff7e8}
.addon-row .scr-tag{flex:0 0 auto;width:46px}
.addon-row .scr-name{color:#8a5a1a}
.addon-row .scr-price{color:#e0840c}
/* 下单游客行附加项 */
.gr-addon-row{margin:-2px 0 10px 0}
.gr-addon-opts{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;background:#f6f9fc;border:1px dashed #cfe0f3;border-radius:10px}
.gr-addon{font-size:.78rem;color:#33507a}
.gr-addon .tt-price{color:#0d6efd;font-weight:600}
.gr-addon-hint{color:#9aa7b4;padding:2px 2px 4px}
@media(max-width:768px){
  .gr-addon-row{margin-left:0}
}

/* ============ 导游订单（同一导游同一天多订单合并） ============ */
.go-order{border:1px solid #e6e9ef;border-radius:10px;padding:.6rem .8rem;margin-bottom:.6rem;background:#fbfcfe}
.go-order-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:.4rem}
.go-order-guests{background:#fff;border:1px dashed #dde3ea;border-radius:8px;padding:.4rem .6rem;margin-bottom:.5rem}
.go-guest{font-size:.85rem;padding:2px 0}
.go-guest a{text-decoration:none;margin-left:6px}
.go-order-actions{display:flex;gap:6px}
@media(max-width:768px){.go-order-head{flex-direction:column;align-items:flex-start}}

/* ============ 导游信息三态 + 导游订单全订单视图 ============ */
.guide-need-opts{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:.45rem}
.guide-need-opt{display:inline-flex;align-items:center;gap:5px;font-size:.9rem;color:#33507a;cursor:pointer}
.guide-need-opt input{accent-color:var(--cd-primary)}
/* 未挂导游红色提醒区 */
.go-remind{background:#fdecec;border:1px solid #f5c2c2;border-radius:12px;padding:.7rem .9rem;margin-bottom:.9rem}
.go-remind-title{color:#b02a2a;font-weight:700;font-size:.95rem;margin-bottom:.5rem}
.go-remind-title i{color:#d9534f}
.go-remind-list{display:flex;flex-direction:column;gap:6px}
.go-remind-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #f0c9c9;border-radius:8px;padding:.45rem .7rem}
.go-remind-no{font-family:monospace;font-weight:700;color:#b02a2a;font-size:.88rem}
.go-remind-info{flex:1;font-size:.88rem;color:#333}
.go-remind-acts{display:flex;gap:6px;flex-wrap:wrap}
.go-remind-acts .btn{border-color:#d9a0a0;color:#a03030;font-size:.8rem}
/* 提醒块：子标题 / 紧急行 / 黄色预警(提前一天) / 完成态 */
.go-remind-sub{font-size:.82rem;color:#a06b6b;margin-bottom:.5rem}
.go-remind-urgent{border-color:#e07979!important;background:#fff5f5!important}
.go-remind-warn{background:#fff8e6;border-color:#f0d98a}
.go-remind-warn .go-remind-title{color:#9a6b00}
.go-remind-warn .go-remind-title i{color:#e0a800}
.go-remind-warn .go-remind-no{color:#9a6b00}
.go-remind-warn .go-remind-acts .btn{border-color:#d9c089;color:#8a6500}
.go-remind-ok{background:#eaf7ee;border-color:#bfe3cb;color:#2e7d4f;font-weight:600;padding:.6rem .9rem;border-radius:10px}
.go-remind-ok i{color:#3aa76d;margin-right:4px}
/* 所有导游状态总览卡片 */
.go-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem}
.go-card{border:1px solid #e6e9ef;border-left:5px solid #ccc;border-radius:12px;padding:.7rem .85rem;background:#fbfcfe}
.go-card-today{border-left-color:#dc3545;background:#fff5f5}
.go-card-tomorrow{border-left-color:#ff9f1c;background:#fff8ec}
.go-card-soon{border-left-color:#0d6efd;background:#f3f8ff}
.go-card-idle{border-left-color:#adb5bd;background:#f6f7f9}
.go-card-head{font-size:.95rem;margin-bottom:.3rem}
.go-card-meta{font-size:.85rem;color:#555;margin-bottom:.45rem}
.go-card-status .badge{font-size:.78rem}
/* 已形成的导游订单摘要 */
.go-summary-list{display:flex;flex-direction:column;gap:8px}
.go-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid #e6e9ef;border-radius:10px;padding:.55rem .8rem;background:#fbfcfe}
.go-summary-acts{display:flex;gap:6px}
@media(max-width:768px){.go-remind-row{align-items:flex-start}.go-summary{flex-direction:column;align-items:flex-start}}

/* 待处理事项操作列：按钮等距排列 */
.acts-inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.acts-inline .btn{white-space:nowrap}

/* ============ 多选筛选 chips ============ */
.chips-multi{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;background:#f1f3f5;border:1px solid #dee2e6;font-size:.82rem;color:#495057;transition:all .15s}
.chip:hover{border-color:#b8c4d1;background:#e9ecef}
.chip-active{background:var(--cd-primary,#2f6fed);border-color:var(--cd-primary,#2f6fed);color:#fff}
.chip-active:hover{background:#2560d6;border-color:#2560d6;color:#fff}
.chip-cnt{font-style:normal;font-size:.72rem;background:rgba(0,0,0,.12);border-radius:999px;padding:0 5px;margin-left:2px}
.chip-active .chip-cnt{background:rgba(255,255,255,.25)}
.chip-cnt-red{font-style:normal;font-size:.74rem;font-weight:800;color:#d62828;background:rgba(214,40,40,.12);border-radius:999px;padding:0 6px;margin-left:3px;border:1px solid rgba(214,40,40,.3)}
.chip-active .chip-cnt-red{color:#d62828;background:#fff;border-color:#fff}
.chips-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:.2rem 0 .5rem}
.chips-row-label{font-size:.8rem;color:#6c757d;font-weight:600;white-space:nowrap}

/* ============ 票种搜索式多选下拉（v200） ============ */
.tss{position:relative;min-width:220px;max-width:340px;flex:1 1 240px}
.tss-selected{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}
.tss-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:#e8f0fe;color:#1a56db;font-size:.78rem;border:1px solid #c7dcff}
.tss-tag i{cursor:pointer;opacity:.55;font-size:.75rem}
.tss-tag i:hover{opacity:1}
.tss-hint{font-size:.78rem;color:#adb5bd}
.tss-inputwrap{display:flex;align-items:center;gap:6px;border:1px solid #dee2e6;border-radius:8px;padding:4px 10px;background:#fff;transition:border-color .15s}
.tss-inputwrap:focus-within{border-color:var(--cd-primary,#2f6fed)}
.tss-inputwrap i{color:#adb5bd;font-size:.85rem}
.tss-input{border:none;outline:none;background:transparent;font-size:.82rem;width:100%;padding:2px 0;box-shadow:none}
.tss-drop{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.12);max-height:240px;overflow:auto;z-index:60}
.tss-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:.82rem;margin:0}
.tss-item:hover{background:#f5f7fa}
.tss-item input{margin:0;flex:0 0 auto}
.tss-item.on{background:#e8f0fe}
.tss-item .tss-check{margin-left:auto;color:var(--cd-primary,#2f6fed)}
.tss-empty{padding:10px 12px;font-size:.8rem;color:#adb5bd}

/* ============ 供应链模块 ============ */
.sc-item-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sc-item-row .form-select,.sc-item-row .form-control{margin-bottom:0}

/* ============ 供应链 v2：主套餐→子套餐底价 ============ */
.sc-item-card{background:#fbfcfe}
.sc-item-card .sc-item-subs{margin-left:.4rem}
.sc-sub-row label{font-size:.85rem}
.sc-prod{border-bottom:1px dashed #eef0f3;padding:2px 0}
.sc-prod:last-child{border-bottom:none}

/* 导航待处理徽标（红色圆圈数字） */
.sidebar .nav-link{position:relative}
.nav-badge{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#e74c3c;color:#fff;border-radius:999px;min-width:20px;height:20px;line-height:20px;font-size:.72rem;font-weight:700;text-align:center;padding:0 6px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.nav-link.active .nav-badge{background:#fff;color:#e74c3c}

/* ============ 积分充值选账号 ============ */
.pt-acct-list{max-height:220px;overflow-y:auto;border:1px solid #e6e9ef;border-radius:8px;padding:6px}
.pt-acct-opt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 8px;border-radius:6px;cursor:pointer}
.pt-acct-opt:hover{background:#f0f4fa}
.pt-acct-opt input{accent-color:var(--cd-primary)}
.pt-acct-main{flex:1;min-width:120px}
.pt-acct-bal{margin-left:auto;color:#6c757d;font-size:.8rem;white-space:nowrap}

/* 积分管理：可搜索合作商下拉 */
.pt-search-box{position:relative}
.pt-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1px solid #dde3ea;border-radius:8px;max-height:220px;overflow:auto;box-shadow:0 4px 12px rgba(0,0,0,.08);display:none;margin-top:2px}
.pt-search-item{padding:8px 10px;font-size:.85rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px}
.pt-search-item:hover{background:#f0f4fa}
.pt-search-clear{color:#2f6fed;font-weight:600;border-bottom:1px dashed #e6e9ef}
.pt-search-cnt{color:#8a94a6;font-size:.75rem;white-space:nowrap}
.pt-search-empty{padding:8px 10px;color:#8a94a6;font-size:.82rem}

/* ============ 待处理计时列 ============ */
.td-timer{white-space:nowrap;min-width:108px;text-align:center}
.pd-timer{font-weight:600;color:#e8590c;font-variant-numeric:tabular-nums}
.pd-timer[data-active="0"]{color:#6c757d;font-weight:500}

/* ============ 待处理项搜索框 ============ */
.search-row{display:flex;align-items:center;gap:8px;margin:0 0 .6rem}
.search-row>i{color:#8a94a6;font-size:1rem}
.search-row .form-control{flex:1;border-radius:8px;border:1px solid #dde3ea;padding:.45rem .7rem}
.search-row .form-control:focus{outline:none;border-color:#2f6fed;box-shadow:0 0 0 2px rgba(47,111,237,.12)}

/* ============ 操作日志时间线（清晰化） ============ */
.log-list{position:relative;max-height:320px;overflow:auto;padding:.4rem .2rem .4rem .2rem;margin-top:.2rem;border-left:2px solid #e6e9ef;margin-left:6px}
.log-item{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:.4rem .6rem .4rem 1.1rem;border-radius:6px}
.log-item::before{content:"";position:absolute;left:-7px;top:14px;width:10px;height:10px;border-radius:50%;background:#2f6fed;border:2px solid #fff;box-shadow:0 0 0 1px #cfd8e3}
.log-time{font-size:.78rem;color:#8a94a6;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:118px}
.log-by{font-size:.82rem;color:#495057;font-weight:600}
.log-action{font-weight:500}
.log-note{font-size:.82rem;color:#495057;flex-basis:100%;padding-left:0;line-height:1.4;margin-top:-2px}
.log-item .badge{font-size:.75rem;font-weight:600}

/* ============ 待处理状态栏（催处理 / 待确认修改 等操作标记） ============ */
.td-status{white-space:nowrap;min-width:120px;vertical-align:middle}
.td-status .badge{font-size:.72rem;font-weight:600;margin:1px 0}

/* ============ 订单详情：修改摘要（自动记录改了什么） ============ */
.edit-summary-box{margin:.6rem 0;padding:.7rem .9rem;border:1px solid #ffe0b2;border-left:4px solid #ff9f1c;border-radius:8px;background:#fff8ec}
.edit-summary-box .es-title{font-size:.82rem;font-weight:700;color:#b5651d;margin-bottom:.25rem}
.edit-summary-box .es-body{font-size:.9rem;color:#7a4a16;line-height:1.5}
.acts-inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ============ 待处理项：统一操作列（清爽按钮布局，管理后台/零售一致） ============ */
.th-actions{text-align:center}
.td-actions{text-align:center}
.act-col{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;align-items:center}
.act-col .btn{margin:0}
/* 订单管理「操作 ▾」下拉：收敛多按钮；菜单为 body 级固定浮层，向左展开并浮于最上层，不遮挡 */
.act-dropdown{position:relative;display:inline-block}
.act-toggle{padding:.2rem .55rem;font-size:.78rem;line-height:1.4;display:inline-flex;align-items:center;gap:.25rem;color:#46566a;border-color:#cfd8e3}
.act-toggle:hover{background:#f1f5fb;color:#2b3a4b}
.act-pop{position:fixed;min-width:172px;background:#fff;border:1px solid #e6eaf0;border-radius:12px;box-shadow:0 16px 44px rgba(20,30,50,.18);padding:6px;z-index:2000;text-align:left;animation:actPop .12s ease-out}
@keyframes actPop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.act-pop .dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .65rem;font-size:.86rem;border:none;background:none;border-radius:9px;color:#2b3a4b;text-align:left;cursor:pointer;white-space:nowrap}
.act-pop .dropdown-item:hover{background:#f1f5fb}
.act-pop .dropdown-item i{font-size:.98rem;width:1.15rem;text-align:center}
.act-pop .dropdown-item.text-success{color:#1a9d5a}
.act-pop .dropdown-item.text-danger{color:#d94a4a}
.act-pop .dropdown-divider{height:1px;background:#eef1f5;margin:5px 4px}
/* 图标型幽灵按钮：仅用于次要操作（详情 / 催处理 / 删除），低存在感、统一尺寸 */
.btn-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:7px;border:1px solid #dee2e6;background:#fff;color:#495057;font-size:.95rem;line-height:1;position:relative;transition:background .12s,border-color .12s}
.btn-ico:hover{background:#f1f3f5;border-color:#ced4da}
.btn-ico:disabled{opacity:.4;cursor:not-allowed}
.btn-ico-danger{color:#dc3545;border-color:#f1c4c4}
.btn-ico-danger:hover{background:#fdeaea;border-color:#f1a1a1}
.btn-ico-warning{color:#b5651d;border-color:#f0d9b5}
.btn-ico-warning:hover{background:#fff8ec;border-color:#f0c896}
.btn-ico-info{color:#2f6fed;border-color:#c5d8fb}
.btn-ico-info:hover{background:#eef4ff;border-color:#a9c5fb}
/* 催处理次数小角标 */
.ico-badge{position:absolute;top:-5px;right:-5px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#dc3545;color:#fff;font-size:.62rem;font-weight:700;line-height:15px;text-align:center}

/* ============ 全局悬停提示（图标按钮：查看 / 催促 / 删除 等，显示在光标上方） ============ */
#globalTip{position:fixed;z-index:3000;pointer-events:none;background:#212529;color:#fff;font-size:.74rem;font-weight:600;line-height:1.3;padding:4px 9px;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.22);transform:translate(-50%,-100%);white-space:nowrap;opacity:0;transition:opacity .1s;max-width:240px}
#globalTip.show{opacity:1}
#globalTip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#212529}

/* ============ 管理后台待处理项：合作商多选筛选下拉 ============ */
.pd-partner-wrap{position:relative;display:inline-block}
.pd-partner-dd{position:absolute;left:0;top:100%;margin-top:5px;z-index:60;background:#fff;border:1px solid #dde3ea;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:.5rem;min-width:210px}
.pd-partner-opts{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.pd-partner-opt{display:flex;align-items:center;gap:7px;padding:.35rem .5rem;border-radius:6px;cursor:pointer;font-size:.88rem;white-space:nowrap}
.pd-partner-opt:hover{background:#f5f7fa}
.pd-partner-opt input{margin:0}
.pd-partner-search{display:flex;align-items:center;gap:6px;padding:0 .5rem;margin-bottom:.45rem;background:#f5f7fa;border:1px solid #e3e8ee;border-radius:7px}
.pd-partner-search i{color:#9aa6b2;font-size:.85rem}
.pd-partner-search input{border:0;background:transparent;box-shadow:none;padding-left:0}
.pd-partner-search input:focus{box-shadow:none}
.pd-partner-foot{display:flex;justify-content:space-between;align-items:center;margin-top:.45rem;padding-top:.45rem;border-top:1px solid #eee}
.pd-partner-empty{color:#999;font-size:.85rem;padding:.4rem .2rem}
.pd-partner-nomatch{color:#999;font-size:.85rem;padding:.4rem .2rem;display:none}

/* ===== 导游订单（两界面：未挂/已挂） ===== */
.go-tabs{display:flex;gap:.5rem;margin:.4rem 0 .8rem;flex-wrap:wrap}
.go-tab{border:1px solid #dee2e6;background:#fff;color:#495057;border-radius:8px;padding:.4rem .95rem;font-size:.9rem;cursor:pointer;transition:.15s}
.go-tab:hover{border-color:#adb5bd}
.go-tab.active{background:#0d6efd;color:#fff;border-color:#0d6efd;font-weight:600}
.go-search{border:1px solid #eee;border-radius:10px;padding:.7rem;background:#fff}
.go-search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;align-items:end}
.go-sf-dates{grid-column:span 2;display:flex;gap:.3rem;align-items:center;white-space:nowrap}
.go-sf-dates span{color:#888}
.go-search-acts{margin-top:.6rem;display:flex;gap:.5rem}
.go-alert{background:#fff3cd;border:1px solid #ffe69c;color:#664d03;border-radius:10px;padding:.6rem .8rem;display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}
.go-alert-label{font-weight:600;white-space:nowrap}
.go-alert-nos{display:flex;flex-wrap:wrap;gap:.3rem}
.go-no-chip{background:#f1f3f5;border:1px solid #dee2e6;border-radius:20px;padding:.1rem .6rem;font-size:.8rem;font-family:ui-monospace,Menlo,Consolas,monospace}
.go-no-chip-danger{background:#f8d7da;border-color:#f5c2c7;color:#842029}
.go-urgent{background:#f8d7da;border:1px solid #f5c2c7;color:#842029;border-radius:10px;padding:.7rem .8rem;margin-bottom:.6rem}
.go-urgent-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}
.go-urgent-toggle{border:0;background:transparent;color:#842029;cursor:pointer;font-size:1.15rem;line-height:1;padding:.1rem .25rem;transition:transform .15s}
.go-urgent-toggle i{transition:transform .15s;display:inline-block}
.go-urgent-title{font-weight:700}
.go-toolbar-urgent{background:rgba(255,255,255,.55);border-radius:8px;padding:.4rem .5rem;margin-bottom:.4rem}
.go-urgent-table{max-height:360px;overflow:auto;border-radius:8px}
.go-urgent-table table{margin-bottom:0}
.go-urgent-table .table{background:rgba(255,255,255,.35)}
.go-toolbar{display:flex;align-items:center;gap:.7rem;margin:.4rem 0 .3rem;flex-wrap:wrap}
.go-panel{background:#eef4fb;border:1px solid #cfe0f3;color:#13335c;border-radius:10px;padding:.7rem .8rem;margin-top:.6rem}
.go-panel-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}
.go-panel-toggle{border:0;background:transparent;color:#13335c;cursor:pointer;font-size:1.15rem;line-height:1;padding:.1rem .25rem;transition:transform .15s}
.go-panel-toggle i{transition:transform .15s;display:inline-block}
.go-panel-title{font-weight:700}
.go-panel-body .table{background:rgba(255,255,255,.55)}
.go-toolbar-main{background:rgba(255,255,255,.6);border-radius:8px;padding:.4rem .5rem;margin-bottom:.4rem}
/* 已挂导游：电脑版表格排版（与 未挂导游 表格风格统一） */
.go-table th,.go-table td{vertical-align:middle}
.go-table .go-td-no{white-space:nowrap}
.go-table .go-td-meta{line-height:1.45;white-space:nowrap}
.go-table td.br-acts{white-space:nowrap}
/* 侧边栏「合作商角」：显示账号所属合作商的负责人 / 电话 / 工作时间 */
.partner-corner{background:#fff8e6;border:1px solid #f0d9a8;border-radius:10px;padding:.55rem .7rem;margin:.5rem .6rem}
.pc-head{font-size:.78rem;font-weight:700;color:#9a6b14;margin-bottom:.35rem}
.pc-item{padding:.3rem 0;border-top:1px dashed #ecd9b0}
.pc-item:first-of-type{border-top:0}
.pc-name{font-weight:700;color:#7a4f08;margin-bottom:.15rem}
.pc-line{font-size:.8rem;color:#5b4a23;line-height:1.5}
.pc-k{display:inline-block;min-width:3.4em;color:#a07a2e;font-weight:600}
/* 用户表单：多合作商勾选 */
.partner-multi{display:flex;flex-wrap:wrap;gap:.4rem;max-height:160px;overflow:auto;border:1px solid #dee2e6;border-radius:8px;padding:.5rem}
.pm-chk{display:inline-flex;align-items:center;gap:.3rem;background:#f1f3f5;border:1px solid #dee2e6;border-radius:20px;padding:.25rem .6rem;font-size:.85rem;cursor:pointer}
.pm-chk input{margin:0}
.go-table .go-td-persons{white-space:nowrap}
.go-combo-break{display:flex;flex-direction:column;gap:.18rem;margin-top:.35rem;align-items:center}
.go-combo-chip{display:inline-block;background:#eef2ff;border:1px solid #dbe3ff;color:#334155;border-radius:6px;padding:.05rem .5rem;font-size:.76rem;white-space:nowrap}
.go-grow-list{display:flex;flex-direction:column;gap:.5rem}
.go-grow-row{display:grid;grid-template-columns:1.2fr .8fr 1.2fr 1fr 1fr auto;gap:.4rem;align-items:center}
.go-grow-orders{background:#f8f9fa;border:1px solid #eee;border-radius:8px;padding:.5rem;max-height:160px;overflow:auto;margin-top:.3rem}
@media (max-width:640px){.go-grow-row{grid-template-columns:1fr 1fr}.go-sf-dates{grid-column:span 1}}

/* ============ 产品展示：按主套餐分组折叠 ============ */
.sc-group-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin:.5rem 0 .2rem}
.sc-group-meta{font-size:.82rem;color:#5b6776}
.sc-group-meta b{color:#0d6efd}
.sc-group-acts{display:flex;gap:.4rem}
.sc-group{border:1px solid #e3e8ee;border-radius:10px;margin-bottom:.7rem;background:#fff;overflow:hidden}
.sc-group-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;background:linear-gradient(180deg,#f7faff,#eef4fb);border-bottom:1px solid transparent;user-select:none;transition:background .12s}
.sc-group.open>.sc-group-sum{border-bottom-color:#e3e8ee}
.sc-group-sum:hover{background:linear-gradient(180deg,#eef4ff,#e6f0fb)}
/* 主套餐前的小勾选框 */
.sc-g-chkwrap{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-right:.1rem}
.sc-g-chk{width:16px;height:16px;cursor:pointer;accent-color:#0d6efd}
.sc-g-caret{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:#0d6efd;font-size:.8rem;transition:transform .15s}
.sc-group:not(.open) .sc-g-caret{transform:rotate(-90deg)}
.sc-g-name{font-weight:700;font-size:1.02rem;color:#13335c}
.sc-g-count{font-size:.76rem;color:#6c757d;background:#eef2f7;border:1px solid #e2e8ef;border-radius:20px;padding:.08rem .55rem;white-space:nowrap}
.sc-g-price{font-size:.85rem;color:#0d6efd;font-weight:600;margin-left:auto}
.sc-group-body{display:none;padding:.5rem .7rem}
.sc-group.open>.sc-group-body{display:block}
.sc-group-body .showcase-table{margin-bottom:0}
.sc-group-body .showcase-table thead th{background:#f3f6fa}

/* ============ 产品展示：打印 / A4 排版 ============ */
@media print {
  @page { size: A4; margin: 12mm; }
  html, body { background:#fff !important; }
  /* 只显示产品展示区，隐藏其余界面（侧边栏/顶栏/筛选/按钮） */
  body * { visibility: hidden; }
  .showcase-doc, .showcase-doc * { visibility: visible; }
  .showcase-doc { position:absolute; left:0; top:0; width:100%; padding:0; margin:0; }
  /* 打印时隐藏控件：勾选框 / 箭头 / 工具条 */
  .sc-g-chkwrap, .sc-g-caret, .sc-group-bar, .head-actions, .filter-bar { display:none !important; }
  /* 强制展开所有主套餐，保证内容完整打印 */
  .sc-group, .sc-group-body { display:block !important; }
  /* 未选中的主套餐组：用 .sc-group.sc-hide-print（特指度高于上面的 .sc-group）确保隐藏生效 */
  .sc-group.sc-hide-print { display:none !important; }
  .sc-group { break-inside: avoid; page-break-inside: avoid; border:1px solid #c9d3df; border-radius:6px; margin-bottom:8px; overflow:hidden; }
  .sc-group-sum { background:#eef3f9 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; cursor:default; }
  .showcase-table { width:100%; border-collapse:collapse; font-size:9pt; }
  .showcase-table th, .showcase-table td { border:1px solid #444; padding:3px 5px; }
  .showcase-table thead th { background:#e9eef5 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .doc-title { font-size:16pt; text-align:center; margin:0 0 4px; }
  .doc-sub { text-align:center; font-size:9pt; color:#555; margin-bottom:10px; }
}

/* ============ 产品中心（合并 产品管理/门票套餐/场次管理） ============ */
.pc-wrap{display:flex;gap:16px;align-items:flex-start;min-height:60vh}
.pc-list{width:280px;flex:0 0 280px;background:#fff;border:1px solid var(--cd-line);border-radius:12px;padding:12px;align-self:stretch}
.pc-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.pc-list-title{font-weight:700;color:#13335c}
.pc-search{margin-bottom:8px}
.pc-list-items{display:flex;flex-direction:column;gap:6px;max-height:62vh;overflow:auto}
.pc-list-item{border:1px solid var(--cd-line);border-radius:10px;padding:8px 10px;cursor:pointer;transition:.12s;background:#fff}
.pc-list-item:hover{border-color:#bcd2f6;background:#f5f9ff}
.pc-list-item.active{border-color:#0d6efd;background:#eef4ff;box-shadow:0 0 0 1px rgba(13,110,253,.25)}
.pc-li-name{font-weight:600;color:#1f2733}
.pc-li-meta{font-size:.76rem;color:#6c757d;margin-top:2px}
.pc-detail{flex:1;min-width:0}
.pc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9aa7b8;min-height:50vh;font-size:1.05rem}
.pc-empty i{font-size:2.4rem}
.pc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.pc-title{font-size:1.35rem;font-weight:800;color:#13335c}
.pc-sub{color:#5b6776;font-size:.85rem;margin-top:2px}
.pc-head-acts{display:flex;gap:8px;flex-wrap:wrap}
.pc-sections{display:flex;flex-direction:column;gap:14px}
.pc-section{border:1px solid var(--cd-line);border-radius:12px;background:#fff;overflow:hidden}
.pc-sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:linear-gradient(180deg,#f7faff,#eef4fb);border-bottom:1px solid var(--cd-line);font-weight:700;color:#13335c}
.pc-sec-acts{display:flex;gap:6px;flex-wrap:wrap}
.pc-sec-body{padding:12px 14px}
.pc-kv{display:flex;gap:10px;padding:4px 0;font-size:.92rem;border-bottom:1px dashed #eef1f6}
.pc-kv:last-child{border-bottom:none}
.pc-kv span{color:#6c757d;width:110px;flex:0 0 110px}
.pc-kv b{color:#1f2733;font-weight:600}
.pc-sub-h{font-size:.82rem;font-weight:700;color:#0d6efd;margin:10px 0 6px}
.pc-sub-h:first-child{margin-top:0}
.pc-combo{border:1px solid #eef1f6;border-radius:10px;padding:8px 10px;margin-bottom:8px;background:#fbfdff}
.pc-combo-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pc-combo-top b{font-weight:700;color:#1f2733}
.combo-rule-badges{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
.combo-rule-badges .badge{font-size:.72rem}
.pc-price{color:#e8541e;font-weight:700}
.pc-combo-acts{margin-left:auto;display:flex;gap:6px}
.pc-combo-items{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.pc-item{background:#eef4fb;border:1px solid #dde8f7;border-radius:20px;padding:2px 10px;font-size:.8rem;color:#33445c}
.pc-item em{font-style:normal;color:#0d6efd;font-weight:600}
.pc-sess-list{display:flex;flex-wrap:wrap;gap:8px}
.pc-sess-chip{display:inline-flex;align-items:center;gap:6px;background:#f1f5fb;border:1px solid #e1e8f1;border-radius:20px;padding:4px 12px;font-size:.88rem;color:#33445c}
.pc-sess-chip i{cursor:pointer;color:#8a97a8}
.pc-sess-chip i:hover{color:#0d6efd}
.pc-date-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto}
.pc-date-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border:1px solid #eef1f6;border-radius:8px;background:#fbfdff}
.pc-date-row.pc-closed{background:#fff5f5;border-color:#f6d6d6;opacity:.85}
.pc-d-name{width:120px;flex:0 0 120px;font-size:.88rem;color:#33445c}
.pc-date-row.pc-closed .pc-d-name{text-decoration:line-through;color:#c0392b}
.pc-lib-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto}
.pc-lib-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--cd-line);border-radius:10px;padding:8px 12px}
.pc-lib-acts{display:flex;gap:6px;flex-wrap:wrap}
.switch.sm{font-size:.8rem}
@media (max-width:880px){.pc-wrap{flex-direction:column}.pc-list{width:100%;flex:1 1 auto}.pc-list-items{max-height:none}}

/* ============ 产品中心：批量上架 / AI 上架 ============ */
.pc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.8rem;padding:.6rem .8rem;background:linear-gradient(180deg,#f3f8ff,#eaf2fc);border:1px solid #d8e6fb;border-radius:12px}
.pc-tools{display:flex;gap:.6rem;flex-wrap:wrap}
.pc-upload .pc-up-tip{font-size:.82rem;color:#5b6776;background:#f6f9fc;border:1px dashed #cdd9e8;border-radius:8px;padding:.5rem .7rem;margin-bottom:.7rem;line-height:1.6}
.pc-upload .pc-up-tip code{background:#eef2f7;padding:1px 5px;border-radius:4px;color:#0d6efd;font-size:.78rem}
.pc-prev{max-height:42vh;overflow:auto;border:1px solid #eef1f6;border-radius:10px;padding:.6rem;background:#fbfdff}
.pc-prev-list{display:flex;flex-direction:column;gap:.5rem}
.pc-prev-item{border:1px solid #e3e8ee;border-radius:8px;padding:.5rem .7rem;background:#fff}
.pc-prev-h{font-weight:700;color:#13335c;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.pc-prev-sub{font-size:.82rem;color:#5b6776;margin-top:.2rem}
.pc-ai-sum .form-label.sm{font-size:.78rem;color:#6c757d;margin-bottom:.15rem}
.pc-ai-combos{margin:.2rem 0 .4rem 1.1rem;font-size:.9rem;color:#1f2733}
.pc-ai-combos li{margin-bottom:.2rem}

/* ============ 产品中心 ④ 库存与关单：日历 ============ */
.pc-cal{max-width:440px;margin-bottom:.6rem}
.pc-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}
.pc-cal-title{font-weight:600;font-size:.95rem;color:#1f2d3d}
.pc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.pc-cal-dow{text-align:center;font-size:12px;color:#9aa6b2;padding:2px 0}
.pc-cal-cell{position:relative;aspect-ratio:1/1;border:1px solid #e9edf2;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;color:#33445c;cursor:pointer;background:#fff;transition:background .12s,border-color .12s;user-select:none}
.pc-cal-cell:hover:not(.is-out):not(.is-blank){border-color:#0d6efd;background:#f3f8ff}
.pc-cal-cell.is-blank{border:none;background:transparent;cursor:default}
.pc-cal-cell.is-out{color:#c2c9d2;background:#fafbfc;cursor:not-allowed;border-style:dashed}
.pc-cal-d{line-height:1;font-variant-numeric:tabular-nums}
.pc-cal-badge{margin-top:3px;font-size:10px;padding:0 5px;border-radius:7px;line-height:1.5;font-weight:600}
.bad-closed{background:#fde2e2;color:#d23b3b}
.bad-custom{background:#e3f6e8;color:#1f9d55}
.pc-cal-cell.is-closed{background:#fff5f5;border-color:#f3c2c2}
.pc-cal-cell.is-custom{background:#f4fbf6;border-color:#bfe9cd}
.pc-cal-cell.is-sel{background:#e7f0ff;border-color:#0d6efd}
.pc-cal-cell.is-start,.pc-cal-cell.is-end{background:#0d6efd;border-color:#0d6efd;color:#fff}
.pc-cal-cell.is-start .pc-cal-badge,.pc-cal-cell.is-end .pc-cal-badge{filter:brightness(1.15)}
.pc-stock-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin-top:.5rem}
.pc-stock-dates{display:flex;gap:.6rem}
.pc-sd{display:flex;flex-direction:column;font-size:12px;color:#6c757d;gap:3px}
.pc-stock-dates input{width:158px}
.pc-stock-mode{display:flex;gap:.6rem;align-items:center}
.pc-stock-qty{display:flex;align-items:center;gap:.35rem;font-size:13px;color:#555}
.pc-stock-qty input{width:120px}
.pc-stock-summary{margin-top:.55rem;font-size:13px;color:#1f2d3d}
.pc-stock-summary b{color:#0d6efd}
.pc-stock-help{margin-top:.3rem;font-size:12px;color:#9aa6b2;line-height:1.5}
/* ---- 两维度澄清：售卖期 vs 库存/出行日 ---- */
.pc-dim-note{margin:2px 0 .55rem;padding:.5rem .65rem;background:#f4f8ff;border:1px solid #dbe7ff;border-radius:9px;font-size:12.5px;color:#3a4a63;line-height:1.6}
.pc-dim-note b{color:#13335c}
.pc-dim-note.sm{font-size:12px;margin-top:.5rem}
.pc-sw-badge{display:inline-block;margin:.1rem 0 .5rem;padding:.25rem .6rem;border-radius:999px;font-size:12px;font-weight:600}
.pc-sw-badge.sw-open{background:#e3f6e8;color:#1f9d55}
.pc-sw-badge.sw-presale{background:#fff4e0;color:#c47d00}
.pc-sw-badge.sw-ended{background:#fde2e2;color:#d23b3b}
.pc-sw-badge.sw-none{background:#eef1f6;color:#8a97a8}
/* 下单 / AI 预览：库存提示与售卖期说明 */
.ord-stock-hint{margin:.1rem 0 .35rem;font-size:12.5px;line-height:1.5;min-height:1.1rem}
.ord-stock-hint.ok{color:#1f9d55}
.ord-stock-hint.bad{color:#d23b3b;font-weight:600}
.ord-sw-hint{font-size:12px;color:#8a97a8;margin-bottom:.3rem}
.sw-inline{padding:0 6px;border-radius:999px;font-weight:600}
.sw-inline.sw-open{background:#e3f6e8;color:#1f9d55}
.sw-inline.sw-presale{background:#fff4e0;color:#c47d00}
.sw-inline.sw-ended{background:#fde2e2;color:#d23b3b}
.sw-inline.sw-none{background:#eef1f6;color:#8a97a8}
/* 库存日历：过去日期弱化但仍可点（用于补/改历史库存） */
.pc-cal-cell.is-past{background:#fafbfc;color:#b7bfca}

/* ============ 订单状态栏归类（v153 / 紧凑化 v156）：主 pill 独占一行 + 次标签收进下方小字组 ============ */
.status-cell{text-align:left}
/* 状态列定宽，徽标不撑宽表格，避免「下单人」等列被挤出屏幕需横向滚动 */
.th-status{width:120px;max-width:120px}
.st-line{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.15}
.st-sub{display:flex;flex-wrap:wrap;gap:3px;margin-top:1px}
.st-sep{display:none}
/* 主状态 pill：实心填充 + 白字 + 图标，最大区分度（v159） */
.st-pill{display:inline-flex;align-items:center;gap:.32em;font-size:.74rem;font-weight:700;line-height:1.2;padding:.36em .72em;border-radius:999px;white-space:nowrap;border:1px solid transparent;color:#fff}
.st-pill i{font-size:.95em;line-height:1}
/* 次标签：描边、弱化 */
.st-tag{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;line-height:1.2;padding:.28em .6em;border-radius:999px;white-space:nowrap;background:#fff}
.st-tag i{font-size:.82em}
/* —— 主状态配色：9 个语义色，互不相同（v159） —— */
.st-pill-await{background:#2563eb}      /* 待出票：蓝 = 进行中 */
.st-pill-confirmed{background:#16a34a}  /* 已出票：绿 = 成功 */
.st-pill-fail{background:#dc2626}       /* 无法出票：红 = 异常 */
.st-pill-timeout{background:#7c3aed}    /* 超时无法取消：紫 = 超时异常 */
.st-pill-part{background:#ea580c}       /* 部分取消：橙 = 部分终止 */
.st-pill-cancel{background:#94a3b8}     /* 已取消：灰 = 终态 */
.st-pill-full{background:#475569}      /* 全取消：深灰 = 完全终态 */
.st-pill-pending{background:#d97706}    /* 待付款：琥珀 = 待收款 */
.st-pill-paid{background:#0d9488}      /* 已收款：青 = 收款完成 */
.st-pill-muted{background:#64748b;color:#fff}
/* —— 收款标签配色（描边） —— */
.st-tag-pay-ok{color:#15803d;border:1px solid #9fdcbd}
.st-tag-pay-due{color:#dc2626;border:1px solid #efb4b4}
.st-tag-pay-wait{color:#b45309;border:1px solid #eccb9c}
.st-tag-pay-none{color:#64748b;border:1px solid #cfd6df}
/* —— 流程标签配色（描边，更弱） —— */
.st-tag-flow{color:#475569;border:1px solid #cdd5df}
.st-tag-flow-pending{color:#b45309;border:1px solid #eccb9c}
.st-tag-flow-reject{color:#dc2626;border:1px solid #efb4b4}
.st-tag-flow-ok{color:#15803d;border:1px solid #9fdcbd}
/* —— 最新操作标签（v195）：状态栏最下面一行，描边色按语义区分 —— */
.st-act-line{display:block;margin-top:3px}
.st-act{display:inline-flex;align-items:center;gap:.32em;font-size:.7rem;font-weight:600;line-height:1.2;padding:.3em .6em;border-radius:999px;white-space:nowrap;background:#fff}
.st-act i{font-size:.85em}
.st-act-flow{color:#2563eb;border:1px solid #bcd3fb}   /* 出票中/待出票：蓝 */
.st-act-warn{color:#b45309;border:1px solid #eccb9c}   /* 质疑/申请修改：琥珀 */
.st-act-danger{color:#dc2626;border:1px solid #efb4b4} /* 申请取消：红 */
.st-act-ok{color:#15803d;border:1px solid #9fdcbd}     /* 已出票：绿 */

/* ============ 订单状态筛选：按 出票/取消/收款 分组 ============ */
.st-filter{margin:.4rem 0 .6rem;align-items:flex-start}
.st-filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.st-filter-group + .st-filter-group{margin-top:6px}
.st-filter-cat{flex:0 0 auto;font-size:.78rem;font-weight:700;color:#fff;padding:.18em .6em;border-radius:6px;line-height:1.4;white-space:nowrap}
.st-cat-issue{background:#2563eb}
.st-cat-cancel{background:#475569}
.st-cat-pay{background:#0d9488}
.st-filter .chips-multi{margin:0}
/* 状态图例（v159）：一眼对照“颜色怎么分” */
/* 状态子标签与后台确认：独立成行，避免挤在一起（v160） */
.st-sub{display:block;margin-top:4px}
.st-adm-line{display:block;margin-top:5px}
/* 后台确认：独立醒目色块（v160）；品红=待确认，不与任何主状态撞色 */
.st-adm{display:inline-flex;align-items:center;gap:.32em;font-size:.72rem;font-weight:700;line-height:1.2;padding:.36em .66em;border-radius:8px;white-space:nowrap;color:#fff}
.st-adm i{font-size:.95em}
.st-adm-pending{background:#db2777}
.st-adm-reject{background:#dc2626}
.st-adm-ok{background:#16a34a}
/* 零售端后台确认：与「待我确认」品红区分（v161），天蓝=已提交等待 / 橙=被驳回可重提 / 绿=已生效 */
.st-adm-retail{background:#0ea5e9}
.st-adm-reject-retail{background:#ea580c}
.st-adm-ok-retail{background:#16a34a}
/* 管理后台「待我确认」工具栏（v163）：独立一行，左说明右按钮，可点筛选 */
.st-pending-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin:.5rem 0 .35rem;padding:.55rem .85rem;background:#fdf2f8;border:1px solid #fbcfe8;border-radius:10px}
.st-pending-stat{display:inline-flex;align-items:center;gap:.42em;font-size:.85rem;font-weight:600;color:#be185d}
.st-pending-stat i{font-size:1.1em;color:#db2777}
.st-pending-stat b{color:#db2777;font-size:1.1rem;font-weight:800}
.st-pending-btn{display:inline-flex;align-items:center;gap:.35em;font-size:.82rem;font-weight:700;padding:.42em .95em;border-radius:8px;border:1.5px solid #db2777;background:#fff;color:#db2777;cursor:pointer;transition:.15s;white-space:nowrap}
.st-pending-btn:hover{background:#db2777;color:#fff}
.st-pending-btn.is-active{background:#db2777;color:#fff;box-shadow:0 0 0 3px rgba(219,39,119,.18)}
/* 零售端「待后台确认」提示横幅（v161） */
.st-banner{display:flex;align-items:center;gap:.45em;font-size:.84rem;font-weight:600;padding:.55rem .8rem;border-radius:10px;margin:.3rem 0 .2rem}
.st-banner i{font-size:1.05em}
.st-banner-retail{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}
.st-banner-retail b{color:#0ea5e9}


/* v170：供应链财务筛选栏网格化——标签在上、控件满宽，2行4列等宽对齐 */
.filter-bar.scf-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;align-items:start}
.filter-bar.scf-filter .fb-group{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0}
.filter-bar.scf-filter .fb-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* ===== v173：通用分页条（每页 30 条；‹ 页码 … › + 共N条/N页） ===== */
.pager{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--cd-line)}
.pager-btn{min-width:32px;height:32px;padding:0 10px;border:1px solid var(--cd-line);background:#fff;color:var(--cd-ink);border-radius:8px;font-size:.88rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.12s;font-family:inherit}
.pager-btn:hover:not(.active):not(.disabled){border-color:var(--cd-primary);color:var(--cd-primary)}
.pager-btn.active{background:var(--cd-primary);border-color:var(--cd-primary);color:#fff;font-weight:700;box-shadow:0 3px 10px rgba(10,89,247,.28)}
.pager-btn.disabled{opacity:.35;cursor:default;pointer-events:none}
.pager-ellipsis{color:var(--cd-muted);padding:0 2px;user-select:none}
.pager-info{color:var(--cd-muted);font-size:.8rem;margin-left:8px;white-space:nowrap}
.filter-bar.scf-filter .fb-group>.form-control,.filter-bar.scf-filter .fb-group>.form-select{width:100%!important}
.filter-bar.scf-filter .fb-dates{width:100%}
.filter-bar.scf-filter .fb-dates input[type=date]{flex:1;min-width:0;width:auto!important}
.filter-bar.scf-filter .fb-group .ss{width:100%!important;flex:1 1 auto}
.filter-bar.scf-filter #ss-sccombo{width:100%}
.filter-bar.scf-filter .sc-combo-chips{max-width:none;width:100%}
.filter-bar.scf-filter .fb-actions{grid-column:1/-1;justify-content:flex-end;margin-left:0;padding-top:2px}
@media(max-width:1250px){.filter-bar.scf-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.filter-bar.scf-filter{grid-template-columns:1fr}}

/* v180：供应链账单表对齐零售财务排版——直接用全局 pkg 组件（同零售 ttSummary）与标准表格，去掉 scf 专属紧凑化/折叠/小字样式；
   供应链名小字保留（显示资源方），全局样式正常换行 */
.scf-scnames{font-size:.74rem;color:var(--cd-muted);margin-top:2px;line-height:1.4}


/* ---------- 供应链库（v174）：搜索 + 套餐勾选卡片 ---------- */
.sc-search-bar{display:flex;align-items:center;gap:8px;border:1px solid var(--cd-line);border-radius:10px;padding:6px 10px;background:#fff;margin-bottom:.6rem}
.sc-search-bar .bi{color:var(--cd-muted)}
.sc-search-bar input{border:none;outline:none;box-shadow:none}
.sc-item-head{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:.4rem;flex-wrap:wrap}
.sc-group-all{display:flex;gap:8px;align-items:center;margin:0;cursor:pointer;flex:1 1 auto;min-width:0}
.sc-group-all input{flex-shrink:0}
.sc-group-all strong{white-space:nowrap}
.sc-sub-row{display:flex;gap:8px;align-items:center;margin-bottom:.3rem;cursor:pointer}
.sc-sub-row input{flex-shrink:0}
.sc-sub-row .sc-item-name{min-width:150px}
.sc-addon-row{background:rgba(10,89,247,.05);border-radius:8px;padding:.15rem .3rem;margin-left:.5rem}
.sc-addon-title{font-size:.78rem;color:var(--cd-muted);margin:.4rem 0 .2rem;padding-left:.4rem;border-left:3px solid var(--cd-primary)}
.sc-items{max-height:52vh;overflow-y:auto;padding-right:4px}
.sc-items::-webkit-scrollbar{width:6px}
.sc-items::-webkit-scrollbar-thumb{background:rgba(120,130,150,.35);border-radius:3px}

/* ===== 供应链库筛选栏（v145）===== */
.scf-pick{position:relative;min-width:200px}
.scf-pick .form-control{width:200px}
.scf-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:#fff;border:1px solid var(--cd-line);border-radius:10px;box-shadow:0 6px 18px rgba(20,30,60,.12);max-height:220px;overflow-y:auto;display:none;padding:4px}
.scf-list.open{display:block}
.scf-list::-webkit-scrollbar{width:6px}
.scf-list::-webkit-scrollbar-thumb{background:rgba(120,130,150,.35);border-radius:3px}
.scf-item{padding:6px 10px;cursor:pointer;font-size:.88rem;display:flex;justify-content:space-between;gap:10px;align-items:center;border-radius:7px;white-space:nowrap}
.scf-item:hover{background:#f2f6fc;color:var(--cd-primary)}
.scf-item .text-muted{font-size:.75rem;flex-shrink:0}
.scf-chip{display:inline-flex;align-items:center;gap:6px;background:#eaf1ff;border:1px solid #c9d9ff;color:#0A4AD6;border-radius:20px;padding:3px 8px 3px 12px;font-size:.85rem;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:31px}
.scf-chip .bi{color:var(--cd-muted);cursor:pointer;flex-shrink:0}
.scf-chip .bi:hover{color:var(--cd-red)}
.scf-count{color:var(--cd-muted);font-size:.83rem;align-self:center}
@media (max-width:767px){
  .scf-pick,.scf-pick .form-control{width:100%;min-width:0}
  .scf-count{width:100%;margin-left:0}
}

/* ===== 订单列表票号统计条（v148）===== */
.ticketno-stat{text-align:right;margin-top:.5rem;padding:0 .25rem}
.ticketno-stat b{color:var(--cd-primary)}

/* ===== 取消申请（v150）：零售发起 / 后台确认 —— 名单与附加项勾选 ===== */
.rc-pick-list{max-height:320px;overflow-y:auto;border:1px solid var(--cd-line);border-radius:10px;padding:.4rem}
.rc-pick-list::-webkit-scrollbar{width:6px}
.rc-pick-list::-webkit-scrollbar-thumb{background:rgba(120,130,150,.35);border-radius:3px}
.rc-pick-item{display:flex;align-items:center;padding:.45rem .6rem;border-radius:8px;cursor:pointer;border-bottom:1px dashed #eef0f4;font-size:.9rem}
.rc-pick-item:last-child{border-bottom:none}
.rc-pick-item:hover{background:rgba(64,112,244,.05)}
.rc-pick-item .form-check-input{margin-top:0;flex-shrink:0}
.rc-addon-group{border:1px solid var(--cd-line);border-radius:10px;margin-bottom:.5rem;padding:.4rem .5rem}
.rc-addon-group-title{padding:.25rem .5rem .4rem;font-size:.85rem;color:var(--cd-primary);display:flex;gap:.5rem;align-items:baseline}
.rc-tabs .rc-tab-btn{white-space:nowrap}
.rc-admin-pick{max-height:280px}
/* ===== v187：零售申请修改（单人/单项目）样式 ===== */
.rc-mod-item{border:1px solid var(--cd-line);border-radius:10px;margin-bottom:.45rem;padding:.35rem .45rem}
.rc-mod-item .rc-pick-item{border-bottom:none;padding:.35rem .4rem}
.rc-mod-toggle{white-space:nowrap;flex-shrink:0}
.rc-mod-fields{border-top:1px dashed #eef0f4;margin-top:.3rem;padding:.55rem .4rem .35rem;background:rgba(64,112,244,.03);border-radius:0 0 8px 8px}
.rc-mod-summary{display:flex;flex-direction:column;gap:.35rem;background:#fffbea;border:1px solid #f3e2a9;border-radius:10px;padding:.6rem .7rem}
.rc-mod-sum-line{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.rc-mod-sum-line .badge{white-space:normal;text-align:left;line-height:1.4}

/* ===== v212：梵净山修改模块（线下审核退改票） ===== */
.nav-badge-danger{background:#e74c3c!important;color:#fff!important;animation:fjsPulse 1.6s ease-in-out infinite}
@keyframes fjsPulse{0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,.5)}50%{box-shadow:0 0 0 6px rgba(231,76,60,0)}}
/* 顶部到期提醒区（红色、可折叠） */
.fjs-due-block{border:1px solid #f3c2bd;border-radius:14px;background:#fdf3f2;margin-bottom:14px;overflow:hidden}
.fjs-due-head{display:flex;align-items:center;gap:10px;padding:.7rem 1rem;cursor:pointer;background:linear-gradient(90deg,#fff5f4,#fdecea)}
.fjs-due-head:hover{background:#fdecea}
.fjs-due-title{flex:1;color:#c0392b;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:6px}
.fjs-due-title b{font-size:1.05rem}
.fjs-due-hint{color:#c0392b;font-size:.8rem;white-space:nowrap}
.fjs-due-list{padding:.5rem .7rem;border-top:1px solid #f3c2bd;max-height:360px;overflow-y:auto}
.fjs-due-item{display:flex;align-items:center;gap:10px;padding:.5rem .4rem;border-bottom:1px dashed #f3c2bd;flex-wrap:wrap}
.fjs-due-item:last-child{border-bottom:none}
.fjs-due-main{flex:1;min-width:220px}
.fjs-due-order{font-size:.92rem}
.fjs-due-acts{display:flex;gap:6px;flex-shrink:0}
/* 详情：票种前后对比 */
.fjs-diff-row{border:1px solid var(--cd-line);border-radius:10px;padding:.5rem .6rem;margin-bottom:.45rem}
.fjs-diff-name{margin-bottom:.3rem;font-size:.92rem}
.fjs-diff-cmp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.9rem}
.fjs-old{color:#8a94a6;text-decoration:line-through}
.fjs-new{color:var(--cd-primary);font-weight:600}
.fjs-img-wrap{margin-top:.3rem}
.fjs-img{max-width:100%;max-height:420px;border-radius:10px;border:1px solid var(--cd-line);display:block}
.fjs-img-sm{max-width:220px;max-height:180px;border-radius:8px;border:1px solid var(--cd-line);display:block;margin-top:.4rem}
/* 零售申请：选游客 + 改票种 */
.fjs-req-list{max-height:340px;overflow-y:auto;border:1px solid var(--cd-line);border-radius:10px;padding:.4rem}
.fjs-req-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:.45rem .5rem;border-bottom:1px dashed #eef0f4;flex-wrap:wrap}
.fjs-req-row:last-child{border-bottom:none}
.fjs-upload{border:1.5px dashed var(--cd-line);border-radius:10px;padding:.6rem;text-align:center;cursor:pointer;background:#fafbfd}
.fjs-upload input[type=file]{display:none}
.fjs-upload-hint{color:var(--cd-muted);font-size:.88rem;padding:.5rem 0}
.fjs-upload:hover{border-color:var(--cd-primary)}
/* 新增订单板块：下单按钮列 */
.sc-order-cell{text-align:center;vertical-align:middle}
.sc-order-cell .btn{white-space:nowrap}
/* 身份证输入有误：红框提示 */
.guest-row .form-control.gr-id-invalid{border-color:#dc3545 !important;background:#fff5f5 !important;box-shadow:0 0 0 2px rgba(220,53,69,.15) !important}
/* v231：年龄规则板块 */
.ar-search{position:relative;display:flex;align-items:center;flex:1;min-width:220px}
.ar-search i{position:absolute;left:11px;color:var(--cd-muted);font-size:.9rem}
.ar-search .form-control{padding-left:32px}
.ar-gate{background:#eef4ff;color:var(--cd-primary);font-weight:600}
.badge.ar-gate{font-size:.72rem}

/* v252：AI 多行程核对下单卡片 */
.ai-trip-card{border:1px solid var(--cd-line);border-radius:14px;padding:14px 16px;margin-bottom:14px;background:var(--cd-card);box-shadow:0 1px 6px rgba(16,42,72,.06)}
.ai-trip-head{font-size:.92rem;font-weight:600;color:var(--cd-text,#1f2733);display:flex;align-items:center;gap:6px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed var(--cd-line)}
.ai-trip-head i{color:var(--cd-primary)}
.ai-trip-guests{margin:.2rem 0}
.ai-trip-guests .guest-row{background:#fff}
.ai-trip-guests .guest-row:last-child{margin-bottom:0}

/* v254：AI 多日下单逐行区域 */
.ai-multi-row{border:1px solid var(--cd-line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--cd-card)}
.ai-multi-fields{display:flex;gap:8px;align-items:center}
.ai-multi-date{flex:0 0 150px}
.ai-multi-scenic{flex:1}
.ai-multi-act{flex:0 0 auto;display:flex;gap:4px;align-items:center}
.ai-multi-row .form-control{font-size:.88rem;padding:.35rem .5rem}
.ai-multi-row .badge{margin-right:4px}
