/* 荣尚 v3 基础样式 · 2026 现代审美（秩序 · 克制色 · 大圆角 · 软阴影 · 8px 间距系统） */
:root{
  --navy:#33475E; --gold:#B5893A;
  --red:#c0392b; --red-bg:#FCEBEB; --green:#1F8A4C; --green-bg:#EAF3DE;
  --amber:#b7791f; --amber-bg:#FAEEDA; --blue:#3A6EA5; --blue-bg:#E6F1FB;
  --gray:#64748B; --gray-bg:#F1F5F9; --border:#E7EAF0; --cream:#FAFBFC;
  --shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --shadow-md:0 4px 16px rgba(15,23,42,.07);
  --shadow-lg:0 12px 32px rgba(15,23,42,.10);
  --radius:14px; --radius-sm:9px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:"Inter","Noto Sans SC","Microsoft YaHei",sans-serif;background:#F7F8FA;color:var(--navy);font-size:14px;letter-spacing:0.1px;}

/* ═══ 顶部导航（v2.15 风格） ═══ */
.topbar{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;}
.topbar-inner{max-width:1280px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;flex:none;}
.brand-logo{width:36px;height:36px;border-radius:9px;background:#0B1F3A;color:#C9922D;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;flex:none;} /* 品牌区锁定·原色 */
.brand-logo svg{width:36px;height:36px;display:block;}
.brand-text{display:flex;flex-direction:column;line-height:1.2;}
.brand-text b{font-size:17px;font-weight:800;letter-spacing:-0.3px;color:#0B1F3A;} /* 品牌区锁定·原色 */
.brand-text i{font-style:normal;font-size:11px;color:#C9922D;letter-spacing:2.5px;font-weight:600;} /* 品牌区锁定·原色 */
.main-nav{display:flex;gap:2px;flex:none;}
.nav-item{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--gray);font-size:14px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .15s;}
.nav-item:hover{background:var(--gray-bg);color:var(--navy);}
.nav-item.active{background:var(--navy);color:#fff;font-weight:600;}
.nav-item .ico{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
/* B 件：导航「收款」红点（未收逾期客户数） */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;margin-left:2px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:700;line-height:1;}
.nav-item.active .nav-badge{background:#fff;color:var(--navy);}
/* B 件：收款页客户行 */
.rt-row{cursor:pointer;transition:background .12s;}
.rt-row:hover{background:var(--gray-bg);}
.rt-row.rt-overdue>td:first-child{box-shadow:inset 3px 0 0 var(--red);}
.rt-row .rt-caret{color:var(--gray);font-size:11px;}
.amt-due{color:var(--red);font-weight:600;}
/* 全局搜索 */
.search-wrap{position:relative;margin-left:auto;display:flex;align-items:center;min-width:220px;}
.search-wrap .ico{position:absolute;left:10px;width:15px;height:15px;color:var(--gray);pointer-events:none;}
#global-search{width:100%;padding:7px 12px 7px 32px;border:1px solid var(--border);border-radius:12px;background:var(--gray-bg);font-size:14px;color:var(--navy);outline:none;transition:all .2s;}
#global-search:focus{background:#fff;border-color:var(--gold);box-shadow:0 0 0 2px rgba(181,137,58,.15);}
#search-results{display:none;position:absolute;top:42px;right:0;width:380px;max-height:420px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.15);z-index:99;font-size:13px;}
#search-results .sr-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--gray-bg);}
#search-results .sr-item:hover{background:var(--gray-bg);}
#search-results .sr-item b{font-size:13px;}
#search-results .sr-item .src{display:block;margin-top:2px;}

/* ═══ 主体 ═══ */
.main{max-width:1280px;margin:0 auto;padding:20px 24px 60px;}

/* 图标通用 */
.ico{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.125em;flex-shrink:0;}

/* 克制色彩系统（低饱和 · 半透明 · 高级不素） */
.c-navy  {background:rgba(11,31,58,.07); border-color:rgba(11,31,58,.16);  color:#1b3a5e;}
.c-blue  {background:rgba(44,110,155,.12);border-color:rgba(44,110,155,.26);color:#235a82;}
.c-amber {background:rgba(201,146,45,.13);border-color:rgba(201,146,45,.30);color:#9c6f18;}
.c-emerald{background:rgba(46,139,111,.12);border-color:rgba(46,139,111,.26);color:#1d6b52;}
.c-violet{background:rgba(108,91,158,.12);border-color:rgba(108,91,158,.26);color:#4f3f7d;}
.c-steel {background:rgba(78,124,161,.12);border-color:rgba(78,124,161,.26);color:#3a6485;}
.c-slate {background:rgba(70,86,106,.07); border-color:rgba(70,86,106,.16); color:#46566a;}

/* 页头 */
.page-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.page-h h2{font-size:19px;font-weight:600;}
.page-h .sub{color:var(--gray);font-size:13px;}

/* ═══ 新建业务卡片区（v2.15 风格 biz-hero） ═══ */
.biz-hero{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:14px;}
.biz-new-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .18s;box-shadow:var(--shadow-sm);}
.biz-new-card:hover{border-color:#D4DAE2;box-shadow:var(--shadow-md);transform:translateY(-2px);}
.biz-new-card .bc-ico{width:40px;height:40px;border-radius:10px;background:rgba(11,31,58,.05);border:1px solid rgba(11,31,58,.10);color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none;}
.biz-new-card .bc-ico svg{width:20px;height:20px;}
.biz-new-card b{font-size:14px;display:block;color:#3F546B;}
.biz-new-card .src{font-size:12px;color:var(--gray);}
.biz-new-card .stats{display:flex;gap:14px;margin-top:6px;font-size:13px;color:var(--navy);}
.biz-new-card .stats b{font-size:15px;color:var(--gold);display:inline;}
.biz-new-card .stats span{white-space:nowrap;}

/* Tab */
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:14px;flex-wrap:wrap;align-items:center;}
.tab{padding:8px 18px;cursor:pointer;color:var(--gray);border-bottom:2px solid transparent;margin-bottom:-2px;font-size:14px;}
.tab.active{color:var(--navy);font-weight:600;border-bottom-color:var(--gold);}
.tab .cnt{background:var(--gray-bg);border-radius:10px;padding:0 7px;font-size:12px;margin-left:4px;}
.tab-new{margin-left:auto;}
/* 主维度 Tab（胶囊按钮风格，区别于订单子Tab的下划线） */
.tab.tab-primary{padding:6px 16px;border-radius:18px;border:1px solid var(--border);margin-bottom:0;background:#fff;color:var(--gray);font-weight:500;}
.tab.tab-primary:hover:not(.active){background:var(--cream);color:var(--navy);}
.tab.tab-primary.active{background:#fff;color:var(--navy);border-color:var(--navy);font-weight:700;}

/* 卡片/表格 */
.card{background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.06);}
.card-h{background:#fff;color:var(--navy);padding:12px 16px;font-size:15px;font-weight:600;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);}
.card-h.ch1{background:#fff;border-left:4px solid var(--navy);padding-left:12px;}
.card-h.ch2{background:#fff;border-left:4px solid #8A6320;padding-left:12px;}
.card-h.ch3{background:#fff;border-left:4px solid #2E7D5B;padding-left:12px;}
.card-b{padding:14px 16px;}
table{border-collapse:collapse;width:100%;font-size:13px;}
th{background:var(--cream);color:var(--navy);padding:8px;text-align:left;font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border);}
td{padding:8px;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:#F8FAFC;}

/* 箱源批次表（紧凑主行 + 展开行，对齐 L2 标准样子） */
.batch-tbl{margin:8px 0;border:1px solid var(--border);border-radius:9px;overflow:hidden;}
.batch-tbl th{background:var(--gray-bg);color:var(--navy);font-size:12px;padding:5px 8px;text-align:left;}
.batch-tbl td{padding:7px 8px;border-bottom:1px solid var(--border);}
.batch-tbl tr:last-child td{border-bottom:none;}
.batch-tbl .w-idx{width:32px;}
.batch-tbl .batch-detail td{background:#F8FAFC;padding:10px 12px;border-top:1px dashed #C7CDD6;white-space:normal;}

/* 标签 */
.pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;}
.pill-gray{background:var(--gray-bg);color:var(--gray);border:1px solid #D9DEE6;}
.pill-blue{background:var(--blue-bg);color:var(--blue);border:1px solid #b5d4f4;}
.pill-green{background:var(--green-bg);color:var(--green);border:1px solid #b9d99a;}
.pill-red{background:var(--red-bg);color:var(--red);border:1px solid #f0b4ad;}
.pill-gold{background:var(--amber-bg);color:var(--amber);border:1px solid #e8cf9a;}

/* 按钮 */
.btn{display:inline-block;padding:8px 20px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;text-transform:none;transition:all .18s;letter-spacing:0.2px;}
.btn-p{background:linear-gradient(135deg,#3F546B,#33475E);color:#fff;box-shadow:0 2px 8px rgba(15,23,42,.18);}
.btn-p:hover{background:linear-gradient(135deg,#3F546B,#27384A);box-shadow:0 6px 18px rgba(15,23,42,.24);}
.btn-gold{background:linear-gradient(135deg,#C9A85C,#B5893A);color:#fff;box-shadow:0 2px 8px rgba(181,137,58,.20);}
.btn-gold:hover{background:linear-gradient(135deg,#e0b24f,#c69b33);}
.btn-s{background:#fff;border-color:#E2E6EC;color:var(--navy);}
.btn-s:hover{background:#F7F8FA;border-color:#D2D8E0;}
.btn-danger{background:var(--red-bg);color:var(--red);}
.btn-danger:hover{background:#f8dcd9;}
.btn:hover{transform:translateY(-2px);}
.btn + .btn{margin-left:6px;}

/* 表单 */
.form-row{display:flex;align-items:center;gap:10px;margin:9px 0;flex-wrap:wrap;}
.form-row .lb{width:84px;font-size:13px;color:#64748B;flex:none;font-weight:500;}
.form-row .lb.req::after{content:" *";color:#C0392B;}
.inp{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:10px;padding:0 12px;height:34px;font-size:14px;color:var(--navy);gap:5px;transition:border-color .15s,box-shadow .15s;}
.inp:hover{border-color:#D2D8E0;}
.inp:focus-within{border-color:#3A6EA5;box-shadow:0 0 0 3px rgba(58,110,165,.10);}
.inp input,.inp select{border:none;outline:none;background:transparent;font-size:14px;color:var(--navy);width:100%;}
.inp.s{flex:0 0 120px;}
.inp.m{flex:0 0 160px;}
.inp.l{flex:1;min-width:160px;}
.inp.editable{border-style:dashed;background:#fffbea;cursor:pointer;position:relative;}
.inp.editable .ed-ico{width:10px;height:10px;opacity:.5;flex:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.121 2.121 0 1 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/></svg>") center/contain no-repeat;}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;}
.modal{background:#fff;border-radius:16px;width:720px;max-width:94vw;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid #EEF1F6;}
.modal-h{background:linear-gradient(180deg,#FAFBFC,#F4F6F9);border-bottom:1px solid #EEF1F6;}
.modal-sm{width:440px;}
.modal-lg{width:900px;}
/* 弹窗内垂直字段块（label 上 + 控件全宽独立 · 不被容器挤压） */
.bf-v{display:flex;flex-direction:column;gap:4px;margin:10px 0;}
.bf-v .lb{font-size:13px;color:#14324f;font-weight:600;}
.bf-v .lb.req::after{content:" *";color:#C0392B;}
.bf-v .src{font-size:12px;color:#9AA4B2;margin-top:1px;}
.bf-v .full-input{width:100%;height:34px;padding:4px 10px;font-size:14px;border:1px solid #D9DEE6;border-radius:6px;background:#fff;color:#14324f;outline:none;box-sizing:border-box;font-family:inherit;}
.bf-v .full-input:focus{border-color:#3A6EA5;box-shadow:0 0 0 2px rgba(58,110,165,.12);}
.bf-v .full-textarea{width:100%;min-height:120px;padding:8px 10px;font-size:14px;border:1px solid #D9DEE6;border-radius:6px;background:#fff;color:#14324f;outline:none;box-sizing:border-box;font-family:inherit;resize:vertical;line-height:1.5;}
.bf-v .full-textarea:focus{border-color:#3A6EA5;box-shadow:0 0 0 2px rgba(58,110,165,.12);}
.modal-h{background:linear-gradient(180deg,#FAFBFC,#F4F6F9);border-bottom:1px solid #EEF1F6;color:var(--navy);padding:14px 18px;font-size:16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.modal-h .info{width:22px;height:22px;border-radius:11px;background:var(--gray-bg);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-style:italic;font-size:12px;cursor:pointer;margin-right:8px;border:1px solid #E2E6EC;}
.modal-h .x{cursor:pointer;opacity:.55;font-size:18px;color:var(--gray);transition:all .15s;width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;}
.modal-h .x:hover{opacity:1;background:#EDEFF3;color:var(--navy);}
.modal-b{padding:18px 20px;}
.modal-f{background:var(--gray-bg);padding:12px 18px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);}
.modal-detail{margin-top:10px;border-top:1px dashed #C7CDD6;padding-top:8px;}
.modal-detail summary{cursor:pointer;color:var(--gray);font-size:12px;list-style:none;}
.modal-detail[open] summary{color:var(--navy);font-weight:600;}
.detail-body{margin-top:8px;padding:10px 12px;background:var(--gray-bg);border-radius:8px;font-size:12px;line-height:1.8;color:#475569;}

/* 详情弹窗内部布局 */
.frow{display:flex;align-items:center;gap:8px;margin:7px 0;flex-wrap:wrap;}
.frow .lb{width:66px;font-size:13px;color:var(--gray);flex:none;}
.frow .lb.req::after{content:" *";color:var(--red);}
.frow .k{font-size:13px;font-weight:500;background:var(--gray-bg);padding:2px 8px;border-radius:5px;white-space:nowrap;}
.subsub{font-size:13px;font-weight:700;color:var(--navy);margin:12px 0 6px;padding-left:8px;border-left:4px solid var(--navy);}

/* 状态 */
.src{font-size:12px;color:var(--gray);}
/* 板块一字段分组（分类小标题 + 组内横排 · 秩序感） */
.fld-group{margin:2px 0;}
.fld-group-t{font-size:12px;color:#5A6678;font-weight:700;margin:12px 0 6px;padding:4px 12px 4px 12px;background:linear-gradient(90deg,rgba(15,23,42,.06),rgba(181,137,58,.04));border-radius:6px;display:flex;align-items:center;gap:8px;letter-spacing:0.4px;text-transform:none;}
.fld-group-t::before{content:"";width:8px;height:8px;border-radius:2px;background:linear-gradient(135deg,#3F546B,#B5893A);flex:none;box-shadow:0 1px 2px rgba(15,23,42,.2);}
.fld-group-b{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-left:8px;}
/* 二级子卡：模组级（板块内嵌的子区域 · 如收付款模组 · L3 强化：navy 加粗 + 深底） */
.sub-card{background:#fff;border:1px solid #E7EAF0;border-radius:12px;margin:14px 0;overflow:hidden;box-shadow:var(--shadow-sm);}
.sub-card-h{padding:11px 16px;font-size:15px;font-weight:700;color:#33475E;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#EAF2FB,#DEEAF6);border-bottom:1px solid #D2E0F0;border-left:4px solid #3A6EA5;}
.sub-card-h .sub-tag{width:22px;height:22px;border-radius:7px;background:rgba(11,31,58,.08);border:1px solid rgba(11,31,58,.14);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none;}
.sub-card-b{padding:14px 16px;}
/* 资金子模组 · 嵌套弱化（嵌入订单 · 视觉从属 · 字号对齐订单录入字段） */
.sub-card.sub-card-nested{background:transparent;border:none;box-shadow:none;margin:12px 0;}
.sub-card.sub-card-nested > .well{background:rgba(11,31,58,.035);border:1px solid rgba(11,31,58,.06);border-radius:10px;padding:11px 12px 12px;box-shadow:inset 0 1px 3px rgba(15,23,42,.05);}
.sub-card-nested .nest{display:flex;gap:10px;}
.sub-card-nested .tree-col{width:14px;flex:none;display:flex;flex-direction:column;align-items:center;}
.sub-card-nested .tree-dot{width:9px;height:9px;border-radius:50%;background:#3a6485;border:2px solid #fff;box-shadow:0 0 0 1px #C7D0DC;flex:none;margin-top:2px;}
.sub-card-nested .tree-line{flex:1;width:2px;background:#C7D0DC;margin-top:3px;}
.sub-card-nested .sub-card-h{background:transparent;border:none;padding:0 0 5px;font-size:12px;font-weight:600;color:#5A6678;gap:8px;}
.sub-card-nested .sub-card-h .sub-tag{width:18px;height:18px;border-radius:5px;background:rgba(11,31,58,.06);border:1px solid rgba(11,31,58,.12);color:#5A6678;font-size:11px;font-weight:800;}
.sub-card-nested .sub-card-h .fold-caret{margin-left:auto;font-size:10px;}
.sub-card-nested .sub-card-h .fold-sum{margin-left:8px;font-size:11px;}
.sub-card-nested .sub-card-b{padding:6px 0 0;}
.sub-card-nested .pay-attach{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 2px;padding:7px 10px;background:rgba(24,95,165,.05);border:1px dashed rgba(24,95,165,.35);border-radius:8px;}
.sub-card-nested .pay-attach .batch-bill-att{display:inline-flex;gap:8px;}
/* 资金内层级标题 / 记录表 / 加按钮 · 统一到订单字段尺度（12px 级 · 浅色 · 不抢） */
.sub-card-nested .pay-layer{border:1px solid #E7EAF0;border-radius:8px;padding:6px 10px;margin:7px 0 0;background:#FCFDFE;}
.sub-card-nested .pay-layer .layer-title{font-size:12px;font-weight:600;color:#5A6678;margin:2px 0 5px;padding-left:8px;border-left:3px solid #C7D0DC;}
.sub-card-nested .pay-layer table{font-size:12px;}
.sub-card-nested .pay-layer table th{font-size:11.5px;padding:5px 6px;font-weight:600;color:#5A6678;}
.sub-card-nested .pay-layer table td{padding:5px 6px;}
.sub-card-nested .btn-ghost{font-size:12px;padding:5px 13px;}
.sub-card-nested .fund-hint{font-size:10.5px;padding:1px 0 3px;}

/* v109（2026-08-23）：资金子卡 inline 化 + 紧凑单行 · 方案A（仅给资金子卡加 .fund-compact 类，零结构改动，不影响箱源/关联箱/弹窗等其他模块） */
.sub-card.sub-card-nested.fund-compact > .well{margin:6px 12px 8px;padding:5px 10px;}
.fund-compact .sub-card-h{padding:0 0 4px;}
.fund-compact .sub-card-b{padding:4px 0 2px;}
.fund-compact .tree-dot{margin-top:1px;}
.fund-compact .tree-line{margin-top:3px;}
.fund-compact .pay-layer .layer-title{margin:1px 0 4px;line-height:1.3;}
.fund-compact .btn-ghost{font-size:12px;padding:4px 11px;}
.fund-compact .fund-hint{font-size:10.5px;padding:1px 0 2px;}
.fund-compact .fund-note{font-size:10.5px;color:#8A93A3;font-style:italic;padding:1px 0 3px;line-height:1.5;}
.fund-compact .fold-sum{font-feature-settings:"tnum";letter-spacing:.3px;}
/* v110b · 资金层一行 toolbar + 可收起说明 */
.layer-toolbar{display:flex;align-items:center;gap:8px;margin:2px 0 3px;min-height:24px;flex-wrap:nowrap;white-space:nowrap;}
.layer-toolbar .layer-title{margin:0;flex:0 0 auto;display:flex;align-items:center;gap:5px;line-height:1.3;font-size:12px;white-space:nowrap;}
.sub-card-nested .pay-layer .layer-toolbar .layer-title{border-left:none;padding-left:0;margin:0;}
.layer-toolbar .layer-mid{flex:1 1 auto;text-align:center;font-size:11px;color:#8A93A3;font-variant-numeric:tabular-nums;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px;}
.layer-toolbar .layer-mid b{color:#3F546B;font-weight:600;}
.layer-toolbar .layer-mid .sep{color:#C7D0DC;margin:0 3px;}
.layer-toolbar .layer-actions{flex:0 0 auto;display:flex;gap:5px;margin-left:6px;}
.layer-toolbar .layer-actions .btn{padding:3px 9px;font-size:11.5px;white-space:nowrap;}
.info-i-btn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:rgba(11,31,58,.07);color:#5A6678;font-size:9px;font-style:normal;user-select:none;cursor:pointer;flex:none;margin-left:2px;transition:background .15s,color .15s;}
.info-i-btn:hover{background:rgba(11,31,58,.14);}
.info-i-btn.open{background:#0B1F3A;color:#fff;}
.layer-explain{display:none;font-size:11px;color:#5E6878;line-height:1.65;background:#F7F9FC;border-radius:7px;padding:7px 10px;margin:3px 0 7px;border-left:2px solid #B9C4D2;}
.layer-explain b{color:#33475E;font-weight:600;}
.pay-layer.open .layer-explain{display:block;}
/* v111c · 板块折叠头绝对对齐 + 可收起说明 */
.bh-title{display:inline-block;min-width:80px;}
.board-head .fold-caret{margin-left:auto;order:5;color:#8A93A3;font-size:11px;flex:none;}
.board-head .fold-sum{margin-left:6px;font-size:12px;font-weight:500;background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:2px 10px;flex:none;}
.board-explain{display:none;font-size:11px;color:#5E6878;line-height:1.65;padding:7px 18px 9px;background:#F7F9FC;border-bottom:1px solid #EEF1F6;border-left:4px solid #3a6485;}
.board-card.b2 .board-explain{border-left-color:#B5893A;}
.board-card.b3 .board-explain{border-left-color:#1d6b52;}
.board-explain b{color:#33475E;font-weight:600;}
.board-card.explain-open .board-explain{display:block;}
/* 资金四功能选项 chip（应收/应付/实收/实付 + 两个汇总 · 复用汇总ID，逻辑零改动） */
.fund-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px;}
.fund-chip{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:7px;background:rgba(11,31,58,.035);border:1px solid rgba(11,31,58,.07);border-left-width:3px;line-height:1.25;}
.fund-chip .fc-lab{font-size:10.5px;color:#8A93A3;letter-spacing:.3px;}
.fund-chip b{font-size:13px;font-weight:700;color:var(--navy);}
.fc-recv{border-left:3px solid #2E8B6F;background:rgba(46,139,111,.07);}
.fc-pay{border-left:3px solid #C9922D;background:rgba(201,146,45,.08);}
.fc-arecv{border-left:3px solid #2C6E9B;background:rgba(44,110,155,.07);}
.fc-apay{border-left:3px solid #6E7A8A;background:rgba(110,122,138,.07);}
.fc-meta{background:rgba(11,31,58,.025);border-color:rgba(11,31,58,.05);}
/* 资金 chip 值为 0 时隐藏（录入为主 · 空单不显示 0 噪音；录入后逐格出现）· specificity 压过彩色类 */
.fund-chips .fund-chip.is-hidden{display:none!important;}
/* （保留）旧版弱化样式，供回退 */
.fund-chips .fund-chip.is-zero{border-style:dashed;border-color:rgba(70,86,106,.18);background:rgba(70,86,106,.045);opacity:.58;filter:grayscale(.55);}
.fund-chips .fund-chip.is-zero .fc-lab{color:#9aa3af;}
.fund-chips .fund-chip.is-zero b{color:#9aa3af;font-weight:600;transition:color .2s;}
/* 空单提示（仅当全部 chip 隐藏时显示） */
.fund-hint{font-size:11px;color:#8A93A3;font-style:italic;padding:1px 0 7px;}
/* 三级标签：层1/层2 等子层标题（L4 · 小字浅色） */
.layer-title{font-size:13px;color:#3F546B;font-weight:700;margin:10px 0 6px;padding-left:10px;border-left:3px solid #B5893A;display:flex;align-items:center;line-height:1.4;}
/* Ghost 描边按钮（L5 弱 · 主色细边框白底 · hover 填充 · 不抢模组标题） */
.btn-ghost{display:inline-block;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;background:#fff;border:1px solid #B9C6D6;color:#3d5a7d;text-decoration:none;transition:all .18s;letter-spacing:0.2px;}
.btn-ghost:hover{background:#F1F5FA;border-color:#3A6EA5;color:#3A6EA5;}
.btn-ghost-blue{border-color:#9DC0E4;color:#3A6EA5;background:#fff;}
.btn-ghost-blue:hover{background:#EAF3FC;border-color:#3A6EA5;}
.btn-ghost-gold{border-color:#E0C9A0;color:#8A6320;background:#fff;}
.btn-ghost-gold:hover{background:#FAF3E6;border-color:#B8912E;}
/* 批次级收付款子卡（买箱/租入批次内 · 与主收付款视觉统一 · 有视觉中心） */
.batch-pay-card{background:#fff;border:1px solid #E4E8EE;border-radius:10px;padding:10px 12px;margin:8px 0;box-shadow:var(--shadow-sm);border-left:3px solid #B5893A;}
.batch-pay-card .layer-title{font-size:13px;color:#3F546B;font-weight:700;margin:2px 0 8px;padding-left:8px;border-left:3px solid #B5893A;}

/* 业务页：列表入口网格（点进去才显示列表） */
.list-entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:14px;}
.list-entry-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .18s;box-shadow:var(--shadow-sm);}
.list-entry-card:hover{border-color:#D4DAE2;box-shadow:var(--shadow-md);transform:translateY(-2px);}
.list-entry-card .le-ico{width:40px;height:40px;border-radius:10px;background:rgba(11,31,58,.05);border:1px solid rgba(11,31,58,.10);color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none;}
.list-entry-card .le-ico svg{width:20px;height:20px;}
.list-entry-card b{font-size:14px;display:block;color:#3F546B;}
.list-entry-card .src{font-size:12px;color:var(--gray);}

/* 步骤条（新建表单顶部 · ①订单→⑤保存 · 当前步高亮 · 点击滚动） */
.stepper{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #E7EAF0;border-radius:12px;padding:10px 16px;margin:12px 0 2px;box-shadow:var(--shadow-sm);flex-wrap:wrap;}
.stepper-step{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;color:#8A93A3;cursor:pointer;transition:all .15s;border:1px solid transparent;}
.stepper-step:hover{background:#F1F4F8;color:#3F546B;}
.stepper-step.active{background:transparent;color:#33475E;box-shadow:none;font-weight:700;}
.stepper-step.done{color:#1F8A4C;}
.stepper-step.done::before{content:"✓";color:#1F8A4C;font-weight:800;}
.stepper-step .st-num{width:18px;height:18px;border-radius:50%;background:#E6E9EF;color:#64748B;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none;}
.stepper-step.active .st-num{background:#33475E;color:#fff;}
.stepper-step.done .st-num{background:#E5F4EA;color:#1F8A4C;}
.stepper-step.end{color:#1F8A4C;}
.stepper-step.end .st-num{background:#E5F4EA;color:#1F8A4C;}
.stepper-arrow{color:#C7CDD6;font-size:13px;}

/* 折叠板块（默认折叠 · 点标题展开 · 摘要显示待办） */
.fold-card .board-head,.fold-card .sub-card-h{cursor:pointer;user-select:none;}
.fold-caret{font-size:11px;color:#8A93A3;transition:transform .15s;}
.fold-sum{font-size:12px;color:#8A93A3;font-weight:500;background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:2px 10px;margin-left:auto;}

/* 新建业务：一二三板块区域卡（同色系颜色有差别：蓝/金/绿 · 板头色条+边框框起） */
.board-card{background:#fff;border:1px solid var(--border);border-radius:16px;margin:14px 0;overflow:hidden;box-shadow:var(--shadow-sm);}
.board-head{padding:11px 18px;font-size:15px;font-weight:700;color:#3F546B;display:flex;align-items:center;gap:10px;border-bottom:1px solid #EEF1F6;position:relative;}
.board-head .board-tag{width:22px;height:22px;border-radius:7px;background:rgba(11,31,58,.08);border:1px solid rgba(11,31,58,.14);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none;}
.board-body{padding:12px 18px 16px;}
.board-card.b1 .board-head{background:rgba(78,124,161,.07);border-left:4px solid #3a6485;}
.board-card.b1 .board-tag{background:rgba(78,124,161,.16);border:1px solid rgba(78,124,161,.28);color:#3a6485;}
.board-card.b2 .board-head{background:rgba(201,146,45,.07);border-left:4px solid #B5893A;}
.board-card.b2 .board-tag{background:rgba(201,146,45,.16);border:1px solid rgba(201,146,45,.30);color:#9c6f18;}
.board-card.b3 .board-head{background:rgba(46,139,111,.07);border-left:4px solid #1d6b52;}
.board-card.b3 .board-tag{background:rgba(46,139,111,.16);border:1px solid rgba(46,139,111,.28);color:#1d6b52;}

/* 板块三：按提单分组（组卡 + 批量录入 + 单箱单行管理） */
.bl-group{background:#fff;border:1px solid #EEF1F6;border-radius:12px;margin:10px 0;padding:12px 14px;box-shadow:var(--shadow-sm);}
.bl-group-h{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#14324f;margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed #E6EAEF;}
.bl-group-h .bl-no{background:#e7f0fb;color:#3A6EA5;border-radius:5px;padding:2px 9px;font-size:12px;font-weight:600;}
.bl-group-h .bl-count{margin-left:auto;color:#8A93A3;font-size:12px;font-weight:500;background:var(--gray-bg);border-radius:10px;padding:2px 9px;}
.bl-batch{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px;background:linear-gradient(180deg,#F8FAFC,#F8FAFC);border:1px dashed #D8DDE5;border-radius:9px;margin-bottom:10px;}
.bl-batch .bf{display:flex;flex-direction:column;gap:3px;}
.bl-batch .bf .lb{font-size:12px;color:#7A8699;}
.bl-batch .bf.grow{flex:1;min-width:260px;}
.bl-batch .inp-c{border:1px solid #D9DEE6;border-radius:6px;padding:4px 8px;height:26px;font-size:13px;color:#14324f;outline:none;background:#fff;font-family:inherit;min-width:150px;}
.bl-batch .bl-batch-ta{width:100%;border:1px solid #D9DEE6;border-radius:6px;padding:5px 8px;font-size:13px;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box;}
.bl-batch .btn-gen{height:26px;padding:0 14px;}
/* 单箱一行小文字单证上传框 */
.box-attach-sm{display:inline-flex;align-items:center;justify-content:center;gap:3px;border:1px dashed #C7CDD6;border-radius:5px;background:#F8FAFC;color:#7A8699;font-size:12px;padding:2px 8px;height:22px;flex:none;cursor:pointer;transition:border-color .15s,background .15s;}
.box-attach-sm:hover{border-color:#3A6EA5;background:#EDF4FC;}

/* 板块三 箱子行卡片（每行一个箱子 · 字段全展示 · 单证图片附件占位） */
.box-card{border:1px solid #EBEEF3;border-radius:10px;padding:8px 12px;margin:6px 0;background:#fff;transition:box-shadow .15s,border-color .15s;}
.box-card:hover{box-shadow:var(--shadow-sm);border-color:#D4DAE2;}
/* 一个箱子严格一行（紧凑单行布局 · 美学版） */
.box-card.box-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 11px;cursor:default;}
.box-card.box-row .box-no{max-width:150px;}
.box-card.box-row .fld{display:inline-flex;align-items:center;gap:4px;}
.box-card.box-row .fld .lb{color:#9AA4B2;font-size:12px;font-weight:500;}
.box-card.box-row .vl{color:#14324f;font-weight:600;font-size:13px;}
.box-card.box-row .vl.muted{color:#A8AEB8;font-weight:500;}
.box-card.box-row .tag{display:inline-flex;align-items:center;background:#eef1f5;color:#4A5A6E;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;flex:none;}
.box-card.box-row .tag.blue{background:#e7f0fb;color:#3A6EA5;}
.box-card.box-row .tag.gold{background:#faf3e2;color:#8A6320;}
.box-card.box-row .tag.violet{background:#f1ecfa;color:#6d4fb0;}
.box-card.box-row .tag.green{background:#e5f4ea;color:#1E7D3E;}
.box-card.box-row .box-attach-mini{width:26px;height:22px;border:1px dashed #C7CDD6;border-radius:5px;background:#F8FAFC;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none;cursor:pointer;transition:border-color .15s,background .15s;}
.box-card.box-row .box-attach-mini:hover{border-color:#3A6EA5;background:#EDF4FC;}
.box-card .row1{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;font-size:13px;color:#14324f;}
.box-card .row1 .no{color:var(--navy);font-weight:800;}
.box-card .row1 .lb{color:#7A8699;font-size:12px;}
.box-card .row1 .vl{color:#14324f;font-weight:600;}
.box-card .row1 .vl.pending{color:#8A6320;font-weight:600;}
.box-card .attachs{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;align-items:center;}
.box-attach{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px dashed #C7CDD6;border-radius:6px;background:#F8FAFC;color:#7A8699;font-size:12px;padding:5px 10px;min-width:80px;}
.box-attach img{max-height:30px;border-radius:4px;display:block;}
.box-card .more{margin-left:auto;color:#3A6EA5;font-size:13px;font-weight:600;}
/* 箱号 = 核心标识（强调：加宽加粗 + 蓝边 + 浅蓝底） */
.box-card.box-row .box-no-strong{max-width:200px;min-width:170px;font-size:15px;font-weight:700;color:#3F546B;border:1.5px solid #5B86B0;background:#F2F7FD;height:30px;padding:2px 10px;border-radius:7px;font-family:inherit;outline:none;box-sizing:border-box;margin-left:4px;letter-spacing:0.3px;}
.box-card.box-row .box-no-strong::placeholder{color:#9FB4CC;font-weight:500;}
.box-card.box-row .box-no-strong:focus{border-color:#3A6EA5;box-shadow:0 0 0 3px rgba(58,110,165,.15);}
/* 提箱/还箱日期（次重要 · 保持普通紧凑） */
/* 板块三 箱子行 input（箱号/日期 紧凑样式：小圆角+细边+不高 · 替换浏览器默认大圆角深边框） */
.box-card .box-no,.box-card input[type=date]{
  background:#fff;border:1px solid #D9DEE6;border-radius:6px;padding:2px 8px;height:24px;font-size:13px;color:var(--navy);
  outline:none;width:auto;max-width:170px;font-family:inherit;margin-left:4px;
}
.box-card .box-no::placeholder{color:#a8a395;}
.box-card .box-no:focus,.box-card input[type=date]:focus{border-color:#3A6EA5;box-shadow:0 0 0 2px rgba(58,110,165,.12);}
/* 提单模块 input/select 同样紧凑风格（替换浏览器默认大圆角） */
.bl-summary input,.bl-summary input[type=date],.bl-summary select{
  background:#fff;border:1px solid #D9DEE6;border-radius:6px;padding:2px 8px;height:24px;font-size:13px;color:var(--navy);
  outline:none;width:auto;min-width:120px;font-family:inherit;
}
.bl-summary input.bl-notes{min-width:280px;}
.bl-summary input:focus,.bl-summary input[type=date]:focus,.bl-summary select:focus{border-color:#3A6EA5;box-shadow:0 0 0 2px rgba(58,110,165,.12);}
/* 解释细字显隐开关（页面 i 按钮控制：默认隐藏，点 i 显示；弹窗内不受影响） */
body.help-off #page-content .src:not(.src-on){display:none !important;}   /* 总关时藏说明 · 单点 [i] 开启的 .src-on 保持显示 */
body.help-off #page-content .page-help{display:none !important;}
body.help-off #page-content .page-h .sub{display:none !important;}   /* 页面头副标题（如"选业务类型→..."）也归解释细字 */
/* 每个说明点旁的 [i] 局部开关 + 总开关（toggleSrcHelp）控制全部 */
.src-i{display:inline-block;width:14px;height:14px;border-radius:50%;background:#EEF1F5;color:#9AA4B2;font-size:9px;font-style:normal;text-align:center;line-height:14px;cursor:pointer;margin-left:4px;vertical-align:middle;user-select:none;transition:all .15s;}
.src-i:hover{background:#E1ECFC;color:#3A6EA5;}
.src-i.active{background:#EAF3FC;color:#3A6EA5;box-shadow:inset 0 0 0 1px #3A6EA5;}

/* ═══════════════════════════════════════════════════════════
   关联箱板块重构 (v98.1) · 纸感/墨色/克制
   ══════════════════ 不可改 ═════════════════════════════════ */
/* 工具条：关联提单 + 批量粘贴 + 单个添加（三者统一 34px 高） */
.cb-toolbar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid #EEF1F6;background:#F8FAFC;}
.cb-toolbar .field{display:flex;align-items:center;gap:8px;}
.cb-toolbar label{font-size:13px;color:#5A6678;font-weight:500;white-space:nowrap;}
.cb-sel{height:34px;border:1px solid #D9DEE6;border-radius:6px;background:#fff;padding:0 10px;font-size:12.5px;color:#27384A;font-family:inherit;outline:none;min-width:210px;}
.cb-sel:hover{border-color:#9AA4B2;}
.cb-btn{height:34px;padding:0 14px;border-radius:6px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.cb-btn-ghost{background:#fff;border-color:#D9DEE6;color:#4A5F77;}
.cb-btn-ghost:hover{border-color:#9AA4B2;background:#F8FAFC;}
.cb-btn-p{background:#27384A;color:#fff;}
.cb-btn-p:hover{background:#27384A;}
.cb-toolbar .spacer{margin-left:auto;}

/* 批次组头（细 hairline · 无大色块） */
.cb-group-h{display:flex;align-items:center;gap:10px;padding:9px 18px;background:#F8FAFC;border-bottom:1px solid #EEF1F6;font-size:12px;color:#5A6678;letter-spacing:.3px;}
.cb-group-h .g-name{font-weight:600;color:#4A5F77;}
.cb-group-h .g-count{margin-left:auto;color:#9AA4B2;font-variant-numeric:tabular-nums;}

/* 箱子行（只读展示 · 箱号+状态优先 · 待录提示在外） */
.cb-box-row{display:flex;align-items:center;gap:14px;padding:11px 18px;border-bottom:1px solid #EEF1F6;}
.cb-box-row:last-child{border-bottom:none;}
.cb-box-row:hover{background:#F8FAFC;}
.cb-cno{font-family:"JetBrains Mono",Menlo,Consolas,monospace;font-size:15px;font-weight:700;color:#27384A;letter-spacing:.5px;font-variant-numeric:tabular-nums;border-bottom:1.5px solid #27384A;padding-bottom:1px;min-width:128px;}
.cb-cno.empty{color:#9AA4B2;border-bottom:1.5px dashed #C9C4B6;}
.cb-chip{font-size:12px;font-weight:600;padding:2px 9px;border-radius:4px;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;}
.cb-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.cb-chip.wait{color:#5A6678;background:#F8FAFC;border:1px solid #D9DEE6;}
.cb-chip.pick{color:#2F5FA8;background:#EEF1FB;}
.cb-chip.ret{color:#1F7A4D;background:#E9F3EE;}
.cb-chip.over{color:#C0392B;background:#FBEAE8;border:1px solid #E8B4AC;}
.cb-pend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.cb-pend .it{font-size:13px;color:#5A6678;}
.cb-pend .it .lab{color:#9AA4B2;margin-right:5px;font-size:12px;}
.cb-pend .it.done{color:#27384A;}
.cb-pend .it.todo{color:#8A6320;}
.cb-pend .it.todo .val{font-weight:600;border-bottom:1px dashed #8A6320;padding-bottom:1px;}
.cb-detail{margin-left:auto;font-size:13px;font-weight:600;color:#4A5F77;background:transparent;border:1px solid #D9DEE6;border-radius:6px;padding:5px 12px;cursor:pointer;white-space:nowrap;flex:none;}
.cb-detail:hover{border-color:#9AA4B2;background:#F8FAFC;}

/* 批量粘贴弹窗（对齐表单 · 关联提单已上提至工具条） */
.cb-frow{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;}
.cb-frow:last-child{margin-bottom:0;}
.cb-frow .lab{width:96px;flex:none;text-align:right;font-size:13px;color:#5A6678;padding-top:8px;font-weight:500;}
.cb-frow .ctl{flex:1;display:flex;flex-direction:column;gap:4px;}
.cb-frow .hint{font-size:12px;color:#9AA4B2;}
.cb-ta{width:100%;border:1px solid #D9DEE6;border-radius:6px;padding:8px 10px;font-size:12.5px;font-family:"JetBrains Mono",Menlo,Consolas,monospace;color:#27384A;outline:none;resize:vertical;min-height:96px;line-height:1.5;}
.cb-ta:hover{border-color:#9AA4B2;}
.cb-ta:focus{border-color:#27384A;box-shadow:0 0 0 3px rgba(15,23,41,.06);}
.cb-dt{height:34px;border:1px solid #D9DEE6;border-radius:6px;padding:0 10px;font-size:12.5px;font-family:"JetBrains Mono",Menlo,Consolas,monospace;color:#27384A;outline:none;width:200px;font-variant-numeric:tabular-nums;}
.cb-dt:hover{border-color:#9AA4B2;}
.cb-dt:focus{border-color:#27384A;box-shadow:0 0 0 3px rgba(15,23,41,.06);}
/* 关联箱行内录入控件（v145：每行一个箱子的录入字段） */
.cb-seq{flex:none;width:22px;text-align:center;color:#9AA4B2;font-size:13px;font-weight:600;}
.cb-f{flex:0 0 auto;display:inline-flex;align-items:center;}
.cb-inp{height:34px;border:1px solid #D9DEE6;border-radius:6px;padding:0 9px;font-size:13px;color:#27384A;background:#fff;outline:none;font-family:inherit;}
.cb-inp:hover{border-color:#9AA4B2;}
.cb-inp:focus{border-color:#27384A;box-shadow:0 0 0 3px rgba(15,23,41,.06);}
.cb-inp.cb-cno{font-family:"JetBrains Mono",Menlo,Consolas,monospace;font-weight:700;letter-spacing:.5px;width:142px;border-bottom:none;}
.cb-inp.cb-bl{width:150px;background:#F8FAFC;}
.cb-inp.cb-dt{width:138px;font-family:"JetBrains Mono",Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;padding:0 7px;}
.cb-up{flex:none;height:34px;min-width:34px;padding:0 9px;border:1px solid #D9DEE6;border-radius:6px;background:#F8FAFC;color:#5A6678;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:3px;justify-content:center;white-space:nowrap;}
.cb-up:hover{border-color:#3A6EA5;background:#EDF4FC;color:#2F5FA8;}
.cb-up.on{border-color:#1F7A4D;background:#E9F3EE;color:#1F7A4D;}
/* v146：关联箱行内 label / 单框箱号 / 行尾上传组 */
.cb-lbl{font-size:12px;color:#5A6678;font-weight:500;margin-right:5px;white-space:nowrap;flex:none;}
.cb-dt-f{display:inline-flex;align-items:center;}
.cb-cno-f{flex:0 0 auto;}
.cb-ups{display:inline-flex;gap:6px;margin-left:10px;flex:none;}
.box-attach.up{border-color:#1F7A4D;background:#E9F3EE;color:#1F7A4D;border-style:solid;}
.amount{font-variant-numeric:tabular-nums;font-weight:600;}
.fee{color:var(--red);}
/* 「自动算」标签（可自动可手填格子旁） */
.auto-mark{display:inline-flex;align-items:center;background:var(--amber-bg);color:var(--amber);padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;flex:none;}
/* 表格单元格可编辑视觉（对齐 L2 标准样子：虚线+铅笔） */
.editable{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border:1px dashed #C7CDD6;border-radius:6px;background:#fffbea;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;}
.editable .ed-ico{width:10px;height:10px;opacity:.5;flex:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'><path d='M12 20h9'/><path d='M16.5 3.5a2.121 2.121 0 1 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/></svg>") center/contain no-repeat;}
.upd{display:inline-flex;align-items:center;background:var(--green-bg);color:var(--green);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap;}
.upload-cell{display:inline-flex;align-items:center;gap:4px;border:1px dashed #C7CDD6;border-radius:6px;padding:2px 8px;font-size:12px;color:var(--gray);cursor:pointer;white-space:nowrap;}
.empty{text-align:center;color:var(--gray);padding:40px 0;font-size:14px;}
/* [i] 功能详情按钮（规格书 A13：所有页面+弹窗通用） */
.info{display:inline-flex;width:20px;height:20px;border-radius:10px;background:var(--gray-bg);border:1px solid #D9DEE6;color:var(--gray);align-items:center;justify-content:center;font-style:italic;font-size:11px;cursor:pointer;font-weight:600;flex:none;}
.info:hover{background:var(--navy);color:#fff;border-color:var(--navy);}

/* 校验错误 */
.validate-err{background:var(--red-bg);color:var(--red);border-radius:8px;padding:10px 14px;font-size:13px;margin:10px 0;}
.validate-ok{background:var(--green-bg);color:var(--green);border-radius:8px;padding:10px 14px;font-size:13px;margin:10px 0;}

/* [i] 展开式字段说明（规格书 A13：浅灰小字、标题虚线分隔、可记忆） */
.page-help{background:var(--gray-bg);border:1px dashed #C7CDD6;border-radius:8px;padding:10px 14px;margin:-4px 0 14px;font-size:12px;line-height:1.8;color:#475569;}
.page-help .ph-title{font-weight:700;color:var(--navy);border-bottom:1px dashed #B7BDC6;padding-bottom:4px;margin-bottom:6px;}
.page-help .ph-body{white-space:pre-wrap;}

/* 业务列表 · 多选下拉组件（业务类型筛选） */
.multi-select{position:relative;display:inline-block;}
.ms-btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--navy);font-size:14px;cursor:pointer;font-weight:500;transition:all .15s;}
.ms-btn:hover{border-color:var(--navy);box-shadow:0 2px 8px rgba(15,23,42,.06);}
.ms-btn .ms-count{color:var(--gray);font-weight:400;font-size:13px;}
.ms-btn .arr{font-size:11px;margin-left:2px;color:var(--gray);}
.ms-panel{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.10);padding:10px 14px;z-index:50;min-width:200px;}
.ms-actions{display:flex;gap:6px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.ms-actions button{padding:3px 10px;font-size:13px;border-radius:6px;border:1px solid var(--border);background:#fff;color:var(--navy);cursor:pointer;font-weight:500;}
.ms-actions button:hover{background:var(--cream);}
.ms-panel label{display:flex;align-items:center;gap:8px;padding:6px 6px;font-size:14px;color:var(--navy);cursor:pointer;border-radius:6px;}
.ms-panel label:hover{background:var(--cream);}
.ms-panel input[type=checkbox]{width:14px;height:14px;accent-color:var(--navy);flex:none;}

/* 业务列表 · 筛选区（紧凑 form-row 风格） */
.biz-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;background:var(--cream);border-radius:12px;}
.biz-filter .lb{font-size:14px;color:var(--navy);font-weight:600;flex:none;width:auto;}
.biz-filter select,.biz-filter input[type=date]{height:34px;border-radius:10px;border:1px solid var(--border);padding:0 12px;font-size:14px;color:var(--navy);background:#fff;outline:none;}
.biz-filter select:focus,.biz-filter input[type=date]:focus{border-color:var(--navy);}
/* 日期 input 完全重置浏览器原生外观（去掉 Win Chrome 那个竖排 "FEB 06 2024"） */
.biz-filter .fdate{font-family:"Inter","Noto Sans SC",sans-serif;letter-spacing:0;min-width:140px;text-align:left;}
.biz-filter .fdate::-webkit-datetime-edit-fields-wrapper{display:flex;gap:2px;align-items:center;}
.biz-filter .fdate::-webkit-datetime-edit{color:var(--navy);font-weight:500;padding:0 2px;}
.biz-filter .fdate::-webkit-datetime-edit-text{padding:0 3px;color:var(--gray);font-weight:400;}
.biz-filter .fdate::-webkit-datetime-edit-month-field,.fdate::-webkit-datetime-edit-day-field,.fdate::-webkit-datetime-edit-year-field{font-weight:500;}
.biz-filter .fdate::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;padding:0 4px;filter:invert(15%);}
.biz-filter .fdate::-webkit-calendar-picker-indicator:hover{opacity:.9;}
.biz-filter .fdate::-webkit-inner-spin-button,.fdate::-webkit-clear-button{display:none;}
.biz-filter .fdate-sep{color:var(--gray);font-size:15px;font-weight:600;padding:0 2px;}

/* 业务详情页 · 业务汇总统计行 */
.biz-stats-row{display:flex;gap:24px;align-items:center;padding:6px 4px;}
.biz-stats-row .stat-item{display:inline-flex;align-items:center;gap:8px;}
.biz-stats-row .stat-item .k{font-size:14px;color:var(--gray);}
.biz-stats-row .stat-item b{font-size:19px;color:var(--navy);font-weight:700;}

/* 多选下拉面板内的「时间/日期范围」行（横排两个 date + 标签） */
.ms-panel .time-row{display:flex;align-items:center;gap:10px;padding:5px 4px;}
.ms-panel .time-row .src{font-size:14px;color:var(--gray);font-weight:600;flex:none;width:24px;}
.ms-panel .time-row .fdate{flex:1;height:32px;border-radius:8px;border:1px solid var(--border);padding:0 10px;font-size:14px;color:var(--navy);background:#fff;outline:none;min-width:0;}
.ms-panel .time-row .fdate:focus{border-color:var(--navy);}

/* 订单列表 · 收付款总览板块（对齐 L2 应收/应付层视觉） */
.payroll-panel{padding:6px 4px;}
.payroll-panel .form-row{margin:6px 0;}
.payroll-panel .form-row .lb{width:96px;font-size:14px;color:var(--gray);flex:none;}

/* 新建订单 · 收付款模组两层 + 提单汇总（组件化复用） */
.pay-layer{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:6px 0;background:#F8FAFC;}
.pay-layer .layer-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px;letter-spacing:.3px;}
.bl-summary{border:1px dashed var(--navy);border-radius:8px;padding:8px 10px;margin:6px 0;background:#F8FAFC;}
.bl-summary .layer-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px;}

/* 批次卡片头（序号 + 来源徽章 + 颜色点 · v142） */
.batch-card-h{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:0 0 7px;border-bottom:1px solid #EEF1F6;}
.batch-card-h .bc-idx{font-size:13px;font-weight:700;color:#0B1F3A;letter-spacing:.3px;}
.batch-card-h .bc-dot{width:9px;height:9px;border-radius:50%;margin-left:auto;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(11,31,58,.08);}
.src-pill{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:2px 11px;border-radius:20px;line-height:1.4;}
.src-pill.src-own{color:#2E8B6F;background:#E6F4EF;border:1px solid #B9E0D2;}
.src-pill.src-buy{color:#9A6B00;background:#FBF1DD;border:1px solid #E9D09A;}
.src-pill.src-rent_in{color:#2F6F9F;background:#E6F0F8;border:1px solid #B9D2E8;}

/* 自有库存批次 · 内联库存摘要（实时显示对应库存/已锁/剩多少/已锁清单/翻箱费） */
.stock-info{border:1px solid var(--navy);border-left:3px solid var(--navy);border-radius:8px;padding:8px 10px;margin:6px 0;background:#F5F8FC;font-size:14px;line-height:1.7;}
.stock-info b{font-weight:600;color:var(--navy);}
.stock-info .k{display:inline-block;background:#fff;border:1px solid var(--border);border-radius:4px;padding:1px 6px;margin:2px 3px 2px 0;font-size:13px;}

/* 自有库存锁箱 · 批次行入口 + 信息卡升级（v99） */
.own-actions{display:inline-flex;align-items:center;gap:0;flex:none;}
.own-hint{font-size:12px;color:#8A93A3;margin-left:2px;}
.own-btn{height:34px;border-radius:6px;font-size:13px;font-weight:500;padding:0 13px;border:1px solid #D9DEE6;background:#fff;color:#5A6678;margin:0 6px 0 0;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;}
.own-btn:hover{border-color:#5B86B0;color:#3F546B;background:#F8FAFC;}
.stock-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.stock-head .src{font-size:12px;}
.stock-clear{margin-left:auto;font-size:12px;color:#8A93A3;cursor:pointer;text-decoration:none;flex:none;}
.stock-clear:hover{color:#B0322B;}
.stock-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#5A6678;margin-bottom:6px;}
.stock-stats b{color:var(--navy);font-weight:700;}

/* 新建表单底部 · 取消 / 保存订单（v101 去胶囊 · 8px 克制） */
.btn-cancel-ghost{background:#fff;border:1px solid #D9DEE6;color:#5A6678;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s;}
.btn-cancel-ghost:hover{border-color:#5B86B0;color:#3F546B;background:#F8FAFC;}
.btn-save-cta{background:#33475E;color:#fff;padding:10px 22px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;border:none;font-family:inherit;display:inline-flex;align-items:center;gap:6px;transition:background .15s;}
.btn-save-cta:hover{background:#27384A;}
.btn-save-cta svg{flex:none;}

/* 图标色彩类（作用于 chip 容器 · 复合选择器确保压过基类） */
.bc-ico.c-navy,.le-ico.c-navy{background:rgba(11,31,58,.07);border-color:rgba(11,31,58,.16);color:#1b3a5e;}
.bc-ico.c-blue,.le-ico.c-blue{background:rgba(44,110,155,.12);border-color:rgba(44,110,155,.26);color:#235a82;}
.bc-ico.c-amber,.le-ico.c-amber{background:rgba(201,146,45,.13);border-color:rgba(201,146,45,.30);color:#9c6f18;}
.bc-ico.c-emerald,.le-ico.c-emerald{background:rgba(46,139,111,.12);border-color:rgba(46,139,111,.26);color:#1d6b52;}
.bc-ico.c-violet,.le-ico.c-violet{background:rgba(108,91,158,.12);border-color:rgba(108,91,158,.26);color:#4f3f7d;}
.bc-ico.c-steel,.le-ico.c-steel{background:rgba(78,124,161,.12);border-color:rgba(78,124,161,.26);color:#3a6485;}
.bc-ico.c-slate,.le-ico.c-slate{background:rgba(70,86,106,.07);border-color:rgba(70,86,106,.16);color:#46566a;}

/* v137：提单录入组件现代美学（卡片+网格字段+精致输入） */
.bl-card-modern{border-radius:14px;border:1px solid #e8e4d8;box-shadow:0 1px 3px rgba(0,0,0,.04);background:#fff;overflow:hidden}
.bl-card-modern .sub-card-h{border-radius:14px 14px 0 0;background:linear-gradient(180deg,#f7f5ef,#f0ede4);border-bottom:1px solid #e8e4d8;padding:14px 18px}
.bl-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.8fr;gap:14px;padding:14px 18px;background:#fdfcf8}
.bl-grid label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:#6a6353;letter-spacing:.3px}
.bl-grid .inp-modern{padding:9px 12px;border:1px solid #e2ddcd;border-radius:8px;font-size:13px;color:#0B1F3A;background:#fff;transition:all .15s ease;outline:none;font-family:inherit}
.bl-grid .inp-modern:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.bl-grid .inp-modern::placeholder{color:#b5b0a2}
.bl-grid .provider-pill{padding:9px 12px;border-radius:8px;background:linear-gradient(180deg,#faf8f1,#f4f0e2);color:#8a8578;font-size:13px;font-weight:500;border:1px dashed #d6d1bf;display:flex;align-items:center;min-height:18px}
.bl-grid .provider-pill.has-val{color:#0B1F3A;border-style:solid;border-color:#C9922D;background:linear-gradient(180deg,#fdf8ea,#f7eccb)}
.bl-grid .date-modern{padding:9px 12px;border:1px solid #e2ddcd;border-radius:8px;font-size:13px;color:#0B1F3A;background:#fff;font-family:inherit;outline:none;transition:all .15s ease}
.bl-grid .date-modern:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}

/* v138：返回按钮铁律 —— 所有层级返回统一放左上角（Donny 2026-08-25 定） */
.page-back{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--navy);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;text-decoration:none}
.page-back:hover{border-color:var(--navy);background:#f7f6f1;box-shadow:0 1px 4px rgba(15,23,42,.08)}
.page-back svg{width:14px;height:14px;flex:none}
.page-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.page-h .page-h-l{display:flex;align-items:center;gap:12px;min-width:0}

/* v157：堆存合作方管理模块 */
.sp-top{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.sp-top-h{font-size:12px;font-weight:700;letter-spacing:1px;color:#8a8578;margin-bottom:10px;text-transform:uppercase}
.sp-list{display:block;border-top:none}
.sp-table{width:100%;border-collapse:collapse;font-size:13px}
.sp-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.5px;color:#8a8578;text-transform:uppercase;padding:8px 12px;border-bottom:2px solid #ece8da;background:#faf8f2;white-space:nowrap}
.sp-table td{padding:9px 12px;border-bottom:1px solid #f0ede6;color:#3a352c;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.sp-table tr.sp-row{cursor:pointer;transition:background .15s}
.sp-table tr.sp-row:hover{background:#faf8f2}
.sp-table tr.sp-row.on{background:#f3f7fc;box-shadow:inset 3px 0 0 var(--navy)}
.sp-c-name{font-weight:700;color:var(--navy)}
.sp-table .num{text-align:center;color:#8a8578;font-weight:600}
.sp-has{color:#1a7f44;font-weight:600}
/* v169：堆存管理总览看板 */
.sp-ov{margin-top:2px}
.sp-ov-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:18px}
.sp-ov-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px}
.sp-ov-card .num{font-size:30px;font-weight:800;color:#3F546B;line-height:1}
.sp-ov-card .ske{font-size:30px;font-weight:800;color:#c2c8d0;line-height:1}
.sp-ov-card .k{font-size:13px;color:var(--gray);font-weight:500}
.sp-ov-card.hl{background:#f3f7fc;border-color:#dbe6f2}
.sp-ov-card.hl .num{color:var(--navy)}
.sp-ov-t{font-size:14px;font-weight:700;color:#3F546B;margin:2px 0 8px}
.sp-ov-table{margin-top:2px}
.sp-ov-table .in{color:#1d6b52;font-weight:800}
.sp-ov-boxes{margin-top:6px}
.sp-ov-sum{font-size:12px;font-weight:500;color:var(--gray);margin-left:10px;white-space:nowrap}
.sp-ov-sum b{font-size:13px;font-weight:800}
.sp-ov-sum .g{color:var(--gray)}
.sp-ov-sum .b{color:var(--blue)}
.sp-ov-sum .g2{color:var(--green)}
.sp-box-table td:first-child{font-weight:600;color:#3F546B}
.sp-ov-entry-cell{white-space:nowrap}
.sp-ov-entry-inp{width:130px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;color:var(--navy);background:#fff}
.sp-ov-entry-inp:focus{outline:none;border-color:var(--gold)}
.sp-ov-entry-btn{margin-left:6px;padding:5px 10px;border:1px solid var(--gold);background:var(--gold);color:#fff;border-radius:6px;font-size:12px;cursor:pointer;font-weight:600}
.sp-ov-entry-btn:hover{background:#b9831f}
.sp-ov-entry-done{font-size:12px;color:var(--blue);font-weight:600}
.sp-ov-exit{font-size:12px;color:var(--green);font-weight:600}
.sp-none{color:#b0a99a}
/* ============ 批量进场弹窗 ============ */
.sp-ov-batch-btn{margin-left:auto;padding:9px 18px;border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:8px;font-size:14px;cursor:pointer;font-weight:700;box-shadow:0 3px 10px rgba(15,28,52,.18)}
.sp-ov-batch-btn:hover{background:#0a1730;transform:translateY(-1px)}
.sp-batch-mask{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(15,28,52,.45);z-index:1200;display:flex;align-items:center;justify-content:center}
.sp-batch-modal{width:720px;max-width:94vw;max-height:90vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.28)}
.sp-batch-modal-lg{width:860px}
.sp-batch-h{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:16px;font-weight:700;color:var(--navy)}
.sp-batch-tabs{display:flex;gap:8px;margin-left:14px}
.sp-batch-tab{border:1px solid #d9d3c2;background:#f6f3ea;color:#5b6679;font-size:13px;font-weight:600;padding:7px 14px;border-radius:8px;cursor:pointer}
.sp-batch-tab.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.sp-batch-x{border:none;background:none;font-size:22px;line-height:1;color:#9aa3b2;cursor:pointer;padding:0 4px}
.sp-batch-x:hover{color:var(--navy)}
.sp-batch-body{padding:16px 18px}
.sp-batch-step{margin-bottom:14px}
.sp-batch-lb{display:inline-block;font-size:12px;color:#5b6679;font-weight:600;margin:0 6px 0 0}
.sp-batch-ta{width:100%;height:110px;resize:vertical;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--navy);font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:8px}
.sp-batch-ta:focus{outline:none;border-color:var(--gold)}
.sp-batch-hint{margin-left:10px;font-size:12px;color:#8b93a3}
.sp-batch-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;background:var(--cream);border-radius:8px}
.sp-batch-table td,.sp-batch-table th{font-size:12px}
.sp-batch-bad{background:#fdf2f2}
.sp-batch-okrow{background:#eef9f1}
.sp-batch-newrow{background:#eef3fc}
.sp-batch-new{color:#185FA5;font-weight:700;background:#e4eefb;padding:2px 8px;border-radius:6px;font-size:11px}
.sp-batch-warnrow{background:#fff6e9}
.sp-batch-match{white-space:nowrap}
.sp-batch-ok{color:#1f9d55;font-weight:700}
.sp-batch-no{color:#d23b3b;font-weight:700}
.sp-batch-actions{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.sp-batch-warn{font-size:12px;color:#8b93a3;margin-right:auto}
.sp-batch-file{display:block;margin-bottom:8px;font-size:13px;color:var(--navy)}
.sp-batch-or{font-size:12px;color:#8b93a3;margin:6px 0 4px;text-align:center}
.sp-report-table td:first-child,.sp-batch-table td:first-child{font-weight:700;color:var(--navy)}
.sp-batch-bad td{color:#b3342f}
.rp-sel{padding:6px 9px;border:1px solid var(--border);border-radius:7px;font-size:13px;color:var(--navy);background:#fff}
.sp-batch-warn.ok{color:#1f9d55;font-weight:600}
.sp-batch-warn.bad{color:#d23b3b;font-weight:600}
/* v178 总览明细标记：还错了 / 无计划 */
.sp-ov-badtag{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#fff;background:#d23b3b;padding:1px 7px;border-radius:6px;vertical-align:middle}
.sp-ov-notag{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#185FA5;background:#e4eefb;padding:1px 7px;border-radius:6px;vertical-align:middle}
.sp-ov-badmark{color:#d23b3b;font-weight:800;margin-left:2px}
.sp-detail{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px;min-height:200px}
.sp-detail-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;background:#f3f7fc;border:1px solid #dbe6f2;border-radius:8px}
.sp-detail-bar .sp-db-name{font-size:13px;font-weight:700;color:var(--navy)}
.sp-detail-bar .btn-ghost{margin-left:auto;padding:4px 12px;font-size:12px}
.sp-detail-h{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.sp-yard{border:1px solid #ece8da;border-radius:8px;padding:12px;margin-bottom:12px;background:#fdfcf8}
.sp-yard-h{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer;user-select:none}
.sp-yard-h:hover .sp-yard-toggle{color:var(--navy)}
.sp-yard-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;color:#8a8578;font-size:10px;transition:all .15s}
.sp-yard-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-yard-body{}
.sp-yard-body.collapsed{display:none}
.sp-yard-b{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.sp-yard-x{display:grid;grid-template-columns:110px 120px 90px 1fr;gap:10px;margin-bottom:10px}
.sp-yard-x select{border:1px solid #e2ddcd;border-radius:6px;padding:6px 8px;font-size:12px;font-family:inherit;color:var(--navy);outline:none;background:#fff}
.sp-f{display:flex;flex-direction:column;gap:4px}
.sp-f label{font-size:11px;color:#8a8578;font-weight:600}
.sp-f input{border:1px solid #e2ddcd;border-radius:6px;padding:6px 8px;font-size:12px;font-family:inherit;color:var(--navy);outline:none}
.sp-f input:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.sp-rates{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}
.sp-rate{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #ece8da;border-radius:6px;padding:6px 10px}
.sp-rate-t{font-size:12px;font-weight:700;color:var(--navy);min-width:46px}
.sp-rate-f{display:flex;align-items:center;gap:4px;font-size:11px;color:#8a8578}
.sp-rate-f input{width:64px;border:1px solid #e2ddcd;border-radius:6px;padding:5px 6px;font-size:12px;font-family:inherit;color:var(--navy);outline:none}
.sp-rate-f input:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.sp-contract{background:#fbfaf5;border:1px solid #ece8da;border-radius:8px;padding:10px 14px;margin-bottom:12px}
.sp-contract-t{font-size:13px;color:#8a8578;margin-bottom:6px}
.sp-contract-t b{color:var(--navy);font-size:14px}
.sp-contract-row{display:flex;align-items:center;gap:10px;font-size:12px}
.sp-cf-link{color:#185FA5;text-decoration:underline;word-break:break-all}
.sp-sup{background:#fff7e8;color:#b07d12;border:1px solid #f0dca8;padding:1px 8px;border-radius:20px;font-weight:600}
.sp-partner-info{background:#fff;border:1px solid var(--bd);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.sp-pi-h{font-weight:600;margin-bottom:8px;display:flex;align-items:center;color:var(--navy)}
.sp-pi-h button{margin-left:auto}
.sp-pi-b{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.sp-f-wide{grid-column:1 / -1}
/* 堆存管理：子 tab + 还箱计划 */
.sp-tabs{display:flex;gap:8px;margin-bottom:14px;border-bottom:2px solid #ece8da}
.sp-tab{padding:9px 18px;border:none;background:transparent;font-size:14px;font-weight:700;color:#8a8578;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s}
.sp-tab:hover{color:var(--navy)}
.sp-tab.on{color:var(--navy);border-bottom-color:var(--navy)}
.btn-save-cta-sm{padding:6px 12px;font-size:12px;margin-left:12px}
.rp-top{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.rp-top-h{font-size:13px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:10px;margin-bottom:10px}
.rp-plan-h{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.rp-plan-h .src{font-weight:400;font-size:12px}
.rp-plan-h button{margin-left:auto}
.rp-bulk{background:#fbfaf5;border:1px solid #ece8da;border-radius:8px;padding:10px 14px;margin-bottom:14px}
.rp-bulk-h{font-size:12px;color:#8a8578;margin-bottom:6px}
.rp-bulk-def{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.rp-bulk-def .lb{font-size:12px;color:#6b6354;font-weight:600}
.rp-bulk-ta{width:100%;min-height:70px;border:1px solid #e2ddcd;border-radius:6px;padding:8px;font-size:13px;font-family:inherit;color:var(--navy);outline:none;resize:vertical}
.rp-bulk-ta:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.rp-bulk .btn{margin-top:8px}
/* ══ v201 批量箱号·粘贴识别预览（复用组件：新建计划弹窗 / 计划详情补录） ══
   铁律：识别 → 给人调整 → 确认录入。异常行整行标红并写明原因，不参与提交。 */
.bp-wrap{background:#fbfaf5;border:1px solid #ece8da;border-radius:8px;padding:10px 14px;margin-top:12px}
.bp-head{font-size:12px;color:#6b6354;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bp-head .src{font-weight:400;color:#8a8578}
.bp-cur{margin-left:auto;font-size:11px;font-weight:600;color:#8a6d2f;background:#f6efdd;border:1px solid #e6d9b4;border-radius:999px;padding:2px 9px;white-space:nowrap}
.bp-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.bp-acts .btn{margin-top:0}
.bp-stat{font-size:12px;color:#6b6354}
.bp-stat b{color:var(--navy)}
.bp-wrap .rp-bulk-ta{background:#fff}
.bp-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12.5px;background:#fff;border:1px solid #ece8da;border-radius:8px;overflow:hidden}
.bp-table th{background:#f6f4ec;color:#8a8578;font-weight:700;font-size:11px;text-align:left;padding:7px 9px;white-space:nowrap;text-transform:uppercase}
.bp-table td{padding:6px 9px;border-top:1px solid #f0ece0;color:var(--navy);vertical-align:middle}
.bp-i{width:34px;color:#a9a294;text-align:center}
.bp-no-cell{width:172px}
.bp-no{width:100%;border:1px solid #e2ddcd;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:12.5px;color:var(--navy);outline:none;text-transform:uppercase}
.bp-no:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.bp-no:disabled{border-color:transparent;background:transparent;color:#b3ac9e;padding-left:0}
.bp-sel{font-family:inherit;font-size:12px;padding:4px 6px;border:1px solid #e2ddcd;border-radius:6px;color:var(--navy);background:#fff;outline:none;max-width:132px}
.bp-ro{color:var(--navy);font-weight:600}
.bp-tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:#eef1f5;color:#6b7686;border:1px solid #dde3ea;white-space:nowrap}
.bp-tag.on{background:#eef9f0;color:#1f8a3b;border-color:#c3e6cb}
.bp-ok{color:#1f8a3b;font-weight:600}
.bp-warn{color:#c0392b;font-weight:600}
.bp-bad td{background:#fff6f4}
.bp-dirty td{background:#fffdf0}
.bp-dirty .bp-no{border-color:#d8a72d}
.rp-boxes-h{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:10px;display:flex;align-items:center;gap:10px}
.rp-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}
.rp-table th{text-align:left;font-size:11px;font-weight:700;color:#8a8578;text-transform:uppercase;padding:7px 9px;border-bottom:2px solid #ece8da;background:#faf8f2;white-space:nowrap}
.rp-table td{padding:7px 9px;border-bottom:1px solid #f0ede6;vertical-align:middle}
.rp-table .num{text-align:right;font-variant-numeric:tabular-nums;color:#3a352c}
.rp-table input[type=date]{border:1px solid #e2ddcd;border-radius:6px;padding:5px 6px;font-size:12px;font-family:inherit;color:var(--navy);outline:none}
.rp-fee{width:70px;border:1px solid #e2ddcd;border-radius:6px;padding:5px 6px;font-size:12px;font-family:inherit;color:var(--navy);outline:none}
.rp-fee:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.rp-rate-preview{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rp-rate-chip{background:#fff7e8;color:#b07d12;border:1px solid #f0dca8;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}
.rp-hint{margin-top:8px;font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px}
.rp-hint-warn{background:#fff3f0;color:#c0392b;border:1px solid #f3c7bd}
.rp-hint:not(.rp-hint-warn){background:#eef9f0;color:#1f8a3b;border:1px solid #c3e6cb}
.rp-frame-grp{background:#f3f0e6}
.rp-frame-grp td{background:#f3f0e6;font-size:12px;color:var(--navy);padding:7px 10px;border-bottom:1px solid #e6e0cf;font-weight:700;letter-spacing:.3px}
.rp-frame-sel{font-family:inherit;font-size:12px;padding:4px 6px;border:1px solid #e2ddcd;border-radius:6px;color:var(--navy);background:#fff;outline:none}
.rp-frame-sel:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.rp-frame-chip{background:#eef2f7;color:#185FA5;border:1px solid #cdddec;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}
/* 选择堆场弹窗 */
.rp-yard-mask{position:fixed;inset:0;background:rgba(11,31,58,.42);z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px}
.rp-yard-modal{background:#fff;border-radius:14px;width:760px;max-width:100%;max-height:84vh;display:flex;flex-direction:column;box-shadow:0 18px 48px rgba(11,31,58,.28);overflow:hidden}
.rp-yard-m-head{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid #ece8da;font-size:15px;font-weight:700;color:var(--navy)}
.rp-yard-m-head .src{font-weight:400;font-size:12px}
.rp-yard-m-head .btn-x{margin-left:auto;border:none;background:#f1ede2;color:#8a8578;width:30px;height:30px;border-radius:8px;font-size:18px;cursor:pointer;line-height:1}
.rp-yard-m-head .btn-x:hover{background:#e7e1d2;color:var(--navy)}
.rp-yard-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 20px;background:#faf8f2;border-bottom:1px solid #ece8da}
.rp-yard-filters .lb{font-size:12px;color:#8a8578;font-weight:600}
.rp-sel{font-family:inherit;font-size:13px;padding:6px 10px;border:1px solid #e2ddcd;border-radius:8px;color:var(--navy);background:#fff;outline:none}
.rp-sel:focus{border-color:#185FA5;box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.rp-yard-cnt{margin-left:auto;font-size:12px;color:#8a8578}
.rp-yard-list{overflow:auto;padding:14px 20px;display:flex;flex-direction:column;gap:12px;max-height:62vh}
.rp-yard-card{border:1px solid #ece8da;border-radius:10px;padding:12px 14px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s}
.rp-yard-card:hover{border-color:#185FA5;box-shadow:0 4px 14px rgba(24,95,165,.12)}
.rp-yard-card.on{border-color:var(--navy);box-shadow:0 0 0 2px rgba(11,31,58,.12)}
.ryf-top{font-size:14px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ryf-sel{background:var(--navy);color:#fff;font-size:11px;font-weight:600;padding:1px 8px;border-radius:20px}
.ryf-partner{font-size:12px;color:#5a554a;margin-bottom:6px}
.ryf-fees{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.ryf-fee{background:#fff7e8;color:#b07d12;border:1px solid #f0dca8;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.ryf-fee-chip{background:#eef2f7;color:#185FA5;border:1px solid #cdddec;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}
.ryf-meta{font-size:12px;color:#5a554a;margin-top:2px;line-height:1.5}
.ryf-act{margin-top:8px}
.btn-mini{font-family:inherit;font-size:12px;font-weight:600;color:var(--navy);background:#fff;border:1px solid #d8d2c2;border-radius:8px;padding:5px 12px;cursor:pointer;margin-left:6px}
.btn-mini:hover{background:#f3f0e6;border-color:var(--navy)}
.rd{border:1px solid #e2ddcd;border-radius:8px;padding:7px 10px;font-size:13px;font-family:inherit;color:var(--navy);background:#faf8f2;cursor:pointer;width:100%}
.rd:focus{outline:none;border-color:#185FA5}

/* ═══ 箱周期（单箱全生命周期时间线） ═══ */
/* 箱周期筛选栏：两行布局（inline / 对齐 / 留白合理 / 不堆方块） */
.cy-filter{display:flex;flex-direction:column;gap:10px;margin:4px 0 14px;}
.cy-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.cy-filter-row-2{position:relative;}
/* 统一控件：高度 / 圆角 / 边框，hover/focus 状态一致 */
.cy-input,.cy-sel,.cy-date{font-family:inherit;font-size:13px;height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--navy);outline:none;box-sizing:border-box;line-height:1.2;}
.cy-input{min-width:220px;}
.cy-date{min-width:150px;}
.cy-input:hover,.cy-sel:hover,.cy-date:hover{border-color:#d4d9e2;}
.cy-input:focus,.cy-sel:focus,.cy-date:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(181,137,58,.15);}
/* 多选下拉 */
.cy-multis{position:relative;display:inline-block;}
.cy-multis-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-align:left;}
.cy-multis-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--blue);color:#fff;font-size:11px;line-height:1;}
.cy-multis-caret{color:var(--gray);font-size:10px;}
.cy-multis-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:142px;background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:0 4px 14px rgba(20,30,50,.10);padding:6px;max-height:248px;overflow:auto;}
.cy-multis-opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--navy);white-space:nowrap;}
.cy-multis-opt:hover{background:var(--gray-bg);}
.cy-multis-opt input[type=checkbox]{accent-color:var(--blue);margin:0;}
/* 重置按钮：白底 / 细灰边 / 深蓝字 / hover 浅灰底 */
.cy-reset{font-family:inherit;font-size:13px;height:36px;padding:0 16px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--navy);cursor:pointer;outline:none;}
.cy-reset:hover{background:var(--gray-bg);}
.cy-reset:active{background:#e9eef4;}
.cy-count{margin-left:auto;font-size:12px;color:var(--gray);}
/* ===== v181 全链路检索中枢（gt-*）：任意线索 → 全链路实体分组 ===== */
.gt-bar{background:var(--cream);border:1px solid var(--border);border-radius:11px;padding:14px 16px;margin:4px 0 12px;}
.gt-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.gt-title{font-size:14px;font-weight:700;color:var(--navy);}
.gt-hint{font-size:12px;color:var(--gray);}
.gt-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.gt-input{font-family:inherit;font-size:13px;height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--navy);outline:none;box-sizing:border-box;flex:1;min-width:260px;}
.gt-input:hover{border-color:#d4d9e2;}
.gt-input:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(181,137,58,.15);}
.gt-btn{font-family:inherit;font-size:13px;height:36px;padding:0 20px;border:1px solid var(--navy);border-radius:9px;background:var(--navy);color:#fff;cursor:pointer;}
.gt-btn:hover{background:#132a4d;}
.gt-btn-ghost{font-family:inherit;font-size:13px;height:36px;padding:0 16px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--navy);cursor:pointer;}
.gt-btn-ghost:hover{background:var(--gray-bg);}
.gt-card{margin:0 0 14px;}
.gt-rhead{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);}
.gt-rhead b{font-size:14px;color:var(--navy);}
.gt-rcount{font-size:12px;color:var(--gray);}
.gt-close{margin-left:auto;font-family:inherit;font-size:12px;height:28px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--navy);cursor:pointer;}
.gt-close:hover{background:var(--gray-bg);}
.gt-groups{padding:6px 16px 14px;}
.gt-group{padding:10px 0 4px;}
.gt-glabel{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--gray);margin-bottom:6px;}
.gt-gcount{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gray-bg);color:var(--navy);font-size:11px;font-weight:600;}
.gt-i{display:flex;align-items:baseline;gap:12px;padding:8px 10px;border-radius:8px;font-size:13px;border:1px solid transparent;}
.gt-i-click{cursor:pointer;}
.gt-i-click:hover{background:var(--gray-bg);border-color:var(--border);}
.gt-i-t{font-weight:600;color:var(--navy);min-width:130px;flex-shrink:0;}
.gt-i-s{color:var(--gray);flex:1;line-height:1.5;}
.gt-i-go{font-size:12px;color:var(--blue);flex-shrink:0;}
/* 结果行内复用 cyAttachHtml 的附件 chip：压掉默认上边距，与行内文字居中对齐 */
.gt-i .cy-ev-attach{margin-top:0;flex-shrink:0;align-self:center;flex-wrap:nowrap;}
.gt-i .cy-chip{font-size:11.5px;padding:2px 10px 2px 8px;}
.cy-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.cy-tbl thead th{text-align:left;font-size:12px;color:var(--gray);font-weight:600;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--cream);}
.cy-row{cursor:pointer;transition:background .12s;}
.cy-row:hover{background:var(--gray-bg);}
.cy-tbl td{padding:9px 12px;border-bottom:1px solid var(--gray-bg);vertical-align:middle;}
.cy-profit-p{color:var(--green);font-weight:700;}
.cy-profit-n{color:var(--red);font-weight:700;}
.cy-mismatch{color:var(--red);font-weight:700;}
.cy-arrow{color:var(--gray);font-size:12px;}
.cy-dim{color:var(--gray);}
/* v205 口径/数据质量标记：均摊估算、箱号重复、未编号箱提示条 —— 克制配色，不与业务色抢眼 */
.cy-tag{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px;white-space:nowrap;vertical-align:middle;}
.cy-tag-split{background:var(--cream);color:var(--amber);border:1px solid var(--amber);}
.cy-tag-dup,.cy-tag-warn{background:var(--red);color:#fff;}
.cy-note{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.cy-note-i{background:var(--cream);border:1px solid var(--border);border-left:3px solid var(--amber);border-radius:6px;
           padding:8px 12px;font-size:12.5px;line-height:1.7;color:var(--ink);}
.cy-note-i .cy-tag{margin-left:0;margin-right:6px;}
.cy-detail-tr{background:var(--cream);}
.cy-detail{padding:16px 18px;}
.cy-head{display:flex;flex-wrap:wrap;gap:28px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px dashed var(--border);}
.cy-h-item{display:flex;flex-direction:column;gap:3px;}
.cy-h-item .k{font-size:11px;color:var(--gray);}
.cy-h-item b{font-size:14px;color:var(--navy);font-weight:700;line-height:1.35;}
/* 集装箱第一视角：箱号作主体略微加重，其余项保持克制，不堆方块、不加卡片 */
.cy-h-main b{font-size:18px;letter-spacing:.4px;color:var(--navy);}
.cy-fin{display:flex;flex-wrap:wrap;gap:14px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:14px;}
.cy-fin-i{display:flex;flex-direction:column;gap:2px;}
.cy-fin-i .k{font-size:11px;color:var(--gray);}
.cy-fin-i b{font-size:15px;font-weight:700;}
/* 押金/保证金流水：仅展示、不计入业务利润，视觉弱化与业务项区分 */
.cy-fin-dep{opacity:.78;}
.cy-fin-dep .k{color:var(--gray);}
.cy-fin-dep b{font-size:13px;font-weight:600;color:#64748B;}
.cy-tl{position:relative;padding-left:22px;}
.cy-tl:before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--border);}
.cy-ev{position:relative;padding:9px 0 9px 14px;}
.cy-dot{position:absolute;left:-19px;top:13px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px var(--border);}
.cy-dot-buy{background:#B5893A;}
.cy-dot-order{background:var(--navy);}
.cy-dot-pick{background:#3A6EA5;}
.cy-dot-ret{background:var(--green);}
.cy-dot-sell{background:#8E44AD;}
.cy-dot-yard{background:#C9922D;}
.cy-dot-fin{background:var(--gray);}
.cy-dot-def{background:var(--gray);}
.cy-ev-b{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 14px;}
.cy-ev-t{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:3px;}
.cy-ev-d{font-size:12.5px;color:#475569;line-height:1.6;}
.cy-ev-warn .cy-ev-b{border-color:var(--red);background:var(--red-bg);}
.cy-warn-tag{display:inline-block;margin-left:6px;background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px;}
.cy-ev-fin .cy-ev-b{background:var(--cream);border-style:dashed;}
/* 箱周期 · 环节对接信息（对接公司/对接同事/金额） */
.cy-ev-meta{font-size:12.5px;color:var(--navy);line-height:1.7;margin-top:3px;}
.cy-ev-meta b{font-weight:700;color:var(--navy);}
.cy-ev-meta .cy-sep{color:var(--border);margin:0 7px;}
.cy-ev-sub{color:var(--gray);font-weight:400;margin-left:5px;}
.cy-dot-pay{background:var(--red);}
.cy-dot-recv{background:var(--green);}
.cy-dir-tag{display:inline-block;margin-left:6px;color:#fff;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px;}
.cy-dir-recv{background:var(--green);}
.cy-dir-pay{background:var(--red);}
.cy-dir-dep{background:#94A3B8;}  /* 押金·不计入：灰，区别于收绿付红 */
.cy-ev-dep{color:var(--gray);font-size:11.5px;margin-top:3px;}
/* 箱周期 · 环节附件 chip（点击新窗打开 /uploads/<file>） */
.cy-ev-attach{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;}
.cy-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--navy);
  background:var(--gray-bg);border:1px solid var(--border);border-radius:20px;padding:3px 11px 3px 9px;
  cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s,color .12s;}
.cy-chip:hover{background:var(--navy);border-color:var(--navy);color:#fff;}
.cy-chip-i{font-size:11.5px;line-height:1;color:var(--red);}
/* 箱周期 · 周期结束收尾节点（绿/完成色，标记本箱生命周期闭环） */
.cy-ev-end .cy-ev-b{background:var(--green-bg);border-color:var(--green);border-style:solid;}
.cy-ev-end .cy-ev-t{color:var(--green);}
.cy-ev-end .cy-ev-sub{font-size:12px;color:var(--gray);line-height:1.5;margin-top:2px;}
.cy-dot-end{background:var(--green);color:#fff;font-size:9px;font-weight:900;line-height:12px;text-align:center;
  display:flex;align-items:center;justify-content:center;}
.cy-chip:hover .cy-chip-i{color:#fff;}

/* ═══ 工作台（v183：待办 / 关键数字 / 快捷入口）═══ */
.wb-todo{display:flex;flex-direction:column;gap:8px;}
.wb-todo-i{display:flex;align-items:center;gap:12px;padding:11px 14px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  cursor:pointer;background:#fff;transition:background .14s,border-color .14s;}
.wb-todo-i:hover{background:var(--cream);border-color:var(--gold);}
.wb-todo-n{min-width:40px;text-align:right;font-size:20px;font-weight:700;line-height:1;
  color:var(--navy);font-variant-numeric:tabular-nums;}
.wb-todo-t{flex:1;font-size:13.5px;color:var(--navy);}
.wb-todo-go{font-size:12.5px;font-weight:600;color:var(--gold);flex-shrink:0;}
.wb-todo-i:hover .wb-todo-go{color:var(--navy);}
.wb-kpi{display:flex;gap:10px;flex-wrap:wrap;}
.wb-kpi-i{flex:1 1 0;min-width:132px;padding:13px 15px;background:var(--gray-bg);border-radius:var(--radius-sm);}
.wb-kpi-i .v{font-size:20px;font-weight:700;line-height:1.25;color:var(--navy);font-variant-numeric:tabular-nums;}
.wb-kpi-i .k{font-size:12px;color:var(--gray);margin-top:4px;}
.wb-go{display:flex;gap:8px;flex-wrap:wrap;}

/* ═══ 顶栏 · 当前登录用户（v183）═══ */
.user-box{display:flex;align-items:center;gap:8px;flex:none;margin-left:6px;}
.user-chip{display:flex;align-items:center;gap:7px;padding:5px 11px 5px 6px;
  border:1px solid var(--border);border-radius:20px;background:#fff;}
.user-ava{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none;}
.user-chip b{font-size:13px;font-weight:600;color:var(--navy);}
.user-chip .role{font-size:11px;color:var(--gold);font-weight:600;}
.user-out{border:none;background:transparent;color:var(--gray);font-size:12.5px;
  cursor:pointer;padding:5px 9px;border-radius:7px;transition:background .14s,color .14s;}
.user-out:hover{background:var(--gray-bg);color:var(--red);}

/* v200 · 免登录模式的顶栏标记（替代「退出」按钮） */
.user-local{display:inline-flex;align-items:center;font-size:12px;color:var(--gray);
  background:var(--gray-bg);border-radius:20px;padding:5px 12px;cursor:default;user-select:none;white-space:nowrap;}

/* ══════════════════ v199 · 移动端适配 ══════════════════
   为什么现在才补：此前 base.css 里 @media **0 处**，桌面版式被直接压进 375px 宽 ——
   顶栏 9 个导航挤成三行、表格右侧被截断、输入框小到点不准。毛英在堆场/码头现场用手机，
   等于这套系统在一线是不可用的。

   三条原则：
   1. 只解决「能用」，不做像素级还原 —— 一线要的是能录能查，不是桌面版式照搬；
   2. 表格一律**横向滚动**，绝不隐藏列 —— 业务表少任何一列都可能导致看错数、记错账；
   3. 输入框字号必须 ≥16px —— 低于 16px 时 iOS Safari 会自动放大整页，
      放大后视野只剩半个字段，是手机端最烦人的体验缺陷（不是美观问题，是功能问题）。 */

@media (max-width:768px){
  /* 顶栏：品牌缩水 → 搜索与用户靠右 → 导航整行横向滑动 */
  .topbar-inner{padding:8px 12px;gap:10px;}
  .brand-text i{display:none;}                        /* 英文副标题在手机上纯占横向空间 */
  .brand-text b{font-size:15px;}
  .brand-logo,.brand-logo svg{width:30px;height:30px;}
  .main-nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
  .main-nav::-webkit-scrollbar{display:none;}         /* 藏滚动条但保留可滑手势 */
  .nav-item{padding:9px 13px;font-size:13px;white-space:nowrap;min-height:40px;}
  .search-wrap{order:2;margin-left:auto;min-width:0;flex:1;}
  .user-box{order:2;}
  .user-chip b{display:none;}                         /* 只留头像+角色 */
  .user-chip{padding:3px 8px 3px 4px;}
  #search-results{width:min(380px,92vw);top:40px;}

  .main{padding:14px 12px 48px;}
  .page-h{margin-bottom:12px;}
  .page-h h2{font-size:17px;}

  /* 表格横向滚动（不隐藏列）。
     注意：不能只写 .card-b —— 堆存页的表格容器是 .sp-list，实测窄屏下溢出 189px。
     逐个类名补容易漏，故：
       ① 先列已知容器（老浏览器也能用）；
       ② 再用 :has() 兜底「任何直接含表格的 div」，把以后新增的容器也罩住
          （不支持 :has 的浏览器只是忽略这条，退回①，不会更差）。 */
  .card-b,.sp-list,.sp-top,.sp-body,.modal-b,.sp-batch-body{
    overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .main div:has(> table){overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .modal,.sp-batch-modal{width:auto;max-width:96vw;margin:0 8px;max-height:92vh;}
  .modal-b,.sp-batch-body{padding:14px;}

  /* 表单：标签不固定宽、输入框可伸缩 */
  .form-row{gap:8px;margin:8px 0;}
  .form-row .lb{width:auto;min-width:64px;}
  .inp,.inp.s,.inp.m,.inp.l{flex:1 1 130px;min-width:0;}

  /* iOS 自动缩放：可聚焦控件字号必须 ≥16px。
     必须用 !important —— 站内输入框样式分散在十多条规则里（.inp input、.sp-batch-ta、
     #global-search…），单靠提高特异性要一条条追，且以后新增输入框又会漏。
     这里是「一票覆盖」，且只在手机断点内生效，不影响桌面。 */
  input,select,textarea{font-size:16px !important;}

  .biz-hero,.list-entry-grid{grid-template-columns:1fr;}
}

@media (max-width:480px){
  .main{padding:12px 10px 44px;}
  .nav-item{padding:6px 10px;font-size:12.5px;min-height:38px;}
  .nav-item .ico{width:14px;height:14px;}
  .inp,.inp.s,.inp.m,.inp.l{flex:1 1 100%;}           /* 窄机上输入框占满整行，不并排挤成渣 */
  .form-row .lb{width:100%;min-width:0;}
  table{font-size:12.5px;}
  th,td{padding:7px 6px;}
  .btn{padding:8px 14px;font-size:13px;min-height:36px;}
  .user-chip .role{display:none;}                     /* 极窄机只留头像 */
}
