/* ===== 鍙傝�冪幇鏈夐」鐩� style.css 鍩鸿皟锛氭繁钃�#1F3BB3 / 鐧藉崱鐗� / 娴呯伆搴� ===== */
/* 鎾戞弧瀹瑰櫒锛氫笌涓嬫柟 .row锛圔ootstrap 鍗＄墖鍖猴級宸﹀彸杈圭晫瀵归綈銆�
   鍘熷厛闄愬 1340px 灞呬腑锛屾瘮涓嬫柟鍗＄墖绐勪竴鎴紝鐜板湪鏀逛负璺熺潃鐖跺鍣ㄨ蛋銆� */
.dc-wrap {
	max-width: none;
	width: 100%;
	margin: 0 auto;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
	overflow: hidden
}

.dc-head {
	background: linear-gradient(135deg, #1F3BB3, #3b5bdb);
	color: #fff;
	padding: 15px 22px
}

.dc-head h1 {
	font-size: 18px;
	font-weight: 700
}

.dc-head .sub {
	font-size: 12px;
	opacity: .92;
	margin-top: 4px
}

.dc-compliance {
	background: #eef4ff;
	border-left: 4px solid #1F3BB3;
	color: #1F3BB3;
	padding: 9px 16px;
	font-size: 12px
}

/* ===== 涓婂崐鍖轰袱濂楀苟鎺掞紙鏈烝 / 鏈烞锛�=====
   椋炲摜 2026-09-06 瀹氾細qbar / open / algos 涓夊潡鍚勫仛涓�濂楋紝宸﹀彸骞舵帓鍋氫袱鏈熷姣旓紱
   涓嬫柟闈㈡澘鍖猴紙鎺掗櫎鏉� + 鈶犫憽鈶⑩懀锛夊浐瀹氬悆鏈烝 鐨勬暟鎹紝涓嶅弬涓庡姣斻�� */
.dc-slots {
	display: flex;
	gap: 14px;
	align-items: stretch;
	margin: 10px 0
}

.dc-slot {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 10px;
	overflow: hidden
}

/* 鍒楀唴寮�濂栧崱锛氬師鏈� margin 鍙湁涓婁笅锛堟暣琛屾椂璐磋竟濂界湅锛夛紝杩涘垪鍚庡洓鍛ㄩ兘瑕佺暀杈癸紝鍚﹀垯璐翠綇鍒楁 */
.dc-slot .dc-open { margin: 10px }

/* 鏈烝 / 鏈烞 瑙掓爣锛氬尯鍒嗕袱鍒楋紝鏈烞 鐢ㄧ惀鐝�鑹插懠搴斻�屽姣斻�嶈涔夈��
   2026-09-06 浜屾敼锛氬師鏉ユ祬搴曟祬瀛楀お寮辩湅涓嶆竻锛屾敼瀹炲簳鐧藉瓧锛�
   鍔� flex:0 0 auto 闃插垪鍐� flex 鍘嬬缉鎶婅鏍囧帇鎴� 0 楂樸�� */
/* 鈿狅笍 绫诲悕涓嶈兘鐢� .b 鈥斺�� 妯℃澘 style.css(23584琛�) 鏈夊叏灞� `.b { border-radius:50%; position:absolute }`锛�
   浼氭妸瑙掓爣鍙樻垚鑴辩鏂囨。娴佺殑灏忓渾鍧椼�佽窡涓嬮潰銆屾湡鍙枫�嶈閲嶅彔銆傛晠鐢� .is-b銆�
   鍙﹀姞 position/radius/float 鏄惧紡褰掗浂锛岄槻妯℃澘鍏跺畠鍏ㄥ眬绫诲啀姹℃煋銆� */
.dc-slot-tag {
	flex: 0 0 auto;
	position: static;
	float: none;
	display: block;
	width: auto;
	border-radius: 0;
	padding: 6px 14px;
	background: #1F3BB3;
	border-bottom: 1px solid #e6e9ef;
	font-size: 12.5px;
	font-weight: 700;
	color: #fff;
	letter-spacing: 1px
}

.dc-slot-tag.is-b { background: #b7791f; border-bottom-color: #e8cf9a }

/* 鏁村垪鍐嶅尯鍒嗕竴灞傦細鏈烞 娣＄惀鐝�搴� + 鐞ョ弨杈规锛岄伩鍏嶅彧闈犺鏍囧垎杈� */
.dc-slot.slot-b {
	background: #fffdf7;
	border-color: #e8cf9a
}

/* 鍒楀唴鍥涘紶绠楁硶鍗★細鍗婂鏀句笉涓嬪洓寮犳í鎺掞紙闇�绾� 962px锛夛紝鏀� 2脳2 缃戞牸锛屾帓甯冩暣榻愪笉浼� 3+1 鎺夐槦 */
.dc-slots .dc-algos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	padding: 10px 12px
}

/* Grid 瀛愰」涓嶉渶瑕佸師 flex 闄愬锛屽惁鍒欏垪瀹戒笉瓒� 230px 鏃朵細婧㈠嚭 */
.dc-slots .dc-algo-card { min-width: 0; cursor: grab }
.dc-slots .dc-algo-card.cc-dragging { opacity: .45; cursor: grabbing }

/* 绐勫睆锛氫袱鍒楀爢鍙狅紝鍚勮嚜鎭㈠鍏ㄥ */
@media (max-width: 1000px) {
	.dc-slots { flex-direction: column }
}

/* 鍏滃簳锛氬灞忎笅缁欐瘡鍒椾竴涓渶灏忓搴︼紝闃叉鏌愬垪琚唴瀹规尋鎴� 0 瀹借�屾暣鍒楁秷澶� */
@media (min-width: 1001px) {
	.dc-slot { min-width: 320px }
}

.dc-qbar {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	align-items: flex-end;
	padding: 14px 18px;
	background: #fafbfc;
	border-bottom: 1px solid #eee
}

.dc-qbar .field {
	display: flex;
	flex-direction: column;
	gap: 4px
}

.dc-qbar label {
	font-size: 11px;
	color: #6c757d
}

.dc-qbar select, .dc-qbar input {
	font-size: 13px;
	padding: 6px 10px;
	border: 1px solid #d0d7e2;
	border-radius: 6px;
	background: #fff;
	color: #1F1F1F;
	min-width: 120px
}

/* 鎺у埗鏉″崰浣嶏細鎻愮ず淇℃伅绉诲埌寮�濂栧尯鍚庣暀涓嬬殑浼哥缉浣嶏紝淇濊瘉鎸夐挳缁勪粛鐒堕潬鍙� */
.dc-qbar-spacer {
	flex: 1 1 auto;
	min-width: 0
}

/* 鎸夐挳鍖烘暣浣撳眳鍙筹細鍔犲噺鏈熸垚缁勶紙绱ф尐锛夛紝鐢熸垚缁勫悎涓虹嫭绔嬩富鎸夐挳锛堜笌缁勬媺寮� 20px锛� */
.dc-qbar-btns {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 20px
}

.dc-qbar-btns .btngrp {
	display: flex;
	align-items: center;
	gap: 8px
}

.dc-qbar .gen {
	background: #1F3BB3;
	color: #fff;
	border: 1px solid #1F3BB3;
	border-radius: 6px;
	padding: 9px 22px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s, border-color .15s, color .15s
}

.dc-qbar .gen:hover {
	background: #162e8a;
	border-color: #162e8a
}

.dc-qbar .gen.sub {
	background: #fff;
	color: #1F3BB3;
	border-color: #bcc9ec;
	padding: 9px 16px;
	box-shadow: 0 1px 2px rgba(31, 59, 179, .06)
}

.dc-qbar .gen.sub:hover {
	background: #eef3ff;
	border-color: #1F3BB3;
	color: #162e8a
}

/* 娑堟伅妗嗭細浣嶄簬銆屽紑濂栧彿 + 7 鎸囨爣銆嶄笅鏂癸紝鍗犳暣琛屻��
   鍥哄畾涓ゆ帓楂橈紙line-height 20 脳 2 + padding 6 脳 2 = 52px锛夛紝瓒呭嚭鍐呮粴銆佺┖鏂囨湰鐓ф牱鍗犱綅
   鈫� 娑堟伅鍑虹幇/娑堝け閮戒笉浼氶《鍔ㄤ笅鏂圭殑绠楁硶鍗＄墖鍖猴紙椤甸潰闈欐瑕佹眰锛夈��
   闀挎枃鏈彟鍦� JS 閲屾寕 title锛岄紶鏍囨偓鍋滃彲鐪嬪叏鏂囥�� */
.dc-open-msg {
	/* 鍚屾帓鏃讹細鍥哄畾瀹姐�侀殢宸﹀潡楂樺害鎷変几锛涜秴闀垮唴婊氥�傜獎灞忓洖閫�涓烘暣琛岃涓嬫柟濯掍綋鏌ヨ */
	flex: 0 0 268px;
	width: 268px;
	min-width: 0;
	align-self: stretch;
	min-height: 52px;
	max-height: 168px;
	overflow-y: auto;
	line-height: 20px;
	padding: 6px 10px;
	background: #f7faff;
	border: 1px dashed #bcd0ff;
	border-radius: 8px;
	color: #6c757d;
	font-size: 12px;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word
}

.dc-open-msg.err { color: #c0392b }
.dc-open-msg.warn { color: #a06f00 }

/* 寮�濂栧尯鍗犱綅锛氭湭鐢熸垚 / 鏈湡鏃犲紑濂栨暟鎹椂鏄剧ず锛岀敓鎴愬悗琚湡瀹炲彿鐮佽鐩� */
.dc-open-ph {
	color: #b9bfc9;
	font-size: 12px;
	font-weight: 400
}

/* 鏃犲紑濂栨暟鎹�侊細鏁村潡娣″寲浣嗕粛鍗犱綅锛堜笉闅愯棌锛屽彸渚ф秷鎭瑕佺湅寰楄锛� */
.dc-open.no-open { opacity: .75 }

/* 鍓爣棰橈細鏂囨闅忔湡鍙�/濂楃悆/妯″紡鍙樺寲锛岄暱搴︿笉瀹氥��
   閿佹垚鍗曡 + 鐪佺暐鍙� 鈫� 鎹㈡湡鍙锋椂涓嶄細鍥犱负澶氬嚭涓�琛屾妸涓嬫柟鍐呭鏁翠綋椤朵笅鍘伙紙椤甸潰闈欐鐨勮姹傦級 */
#dcSub {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis
}

.dc-tabs {
	display: flex;
	border-bottom: 2px solid #eee;
	padding: 0 14px;
	background: #fff
}

.dc-tab {
	padding: 12px 18px;
	cursor: pointer;
	font-size: 13px;
	color: #666;
	border-bottom: 3px solid transparent;
	font-weight: 600
}

.dc-tab.active {
	color: #1F3BB3;
	border-bottom-color: #1F3BB3
}

.dc-panel {
	display: none;
	padding: 16px 20px
}

.dc-panel.active {
	display: block
}

/* ===== 闈㈡澘鍖哄弻鏈燂細姣忎釜 tab 鍐呴儴宸﹀彸骞舵帓涓ゅ锛堟湡A 宸� / 鏈烞 鍙筹紝鏈烞 鎵�鏈� id 鍔�2锛�=====
   2026-09-06 椋炲摜瀹氾細dc-kpis / dc-filterbar / 鏄庣粏琛� 閮藉嚭鏈烝+鏈烞 涓ゅ锛屽榻愬姣斻��
   绐勫睆锛堚墹1100px锛夊爢鍙犱负涓婁笅涓ゅ锛涙瘡濂� .dc-tblwrap 鑷甫妯悜婊氬姩锛岄伩鍏� 15 鍒楄〃鎾戠垎銆� */
.dc-pair {
	display: flex;
	gap: 16px;
	align-items: flex-start
}
.dc-pane {
	flex: 1 1 0;
	min-width: 0
}
/* 鏈烝 宸﹀垪锛氫笌鏈烞 瀵圭О鍚屾妗嗭紙浠呴厤鑹茬敤涓昏摑绯诲懠搴旀湡A锛夛紝娑堥櫎涓棿绐佸厐绾挎潯 + 淇濊瘉涓ゅ垪瀵归綈 */
.dc-pane.paneA {
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 8px;
	padding: 8px 12px
}
.dc-pane.paneB {
	background: #fffdf7;
	border: 1px solid #e8cf9a;
	border-radius: 8px;
	padding: 8px 12px
}
.dc-pane .dc-tblwrap {
	overflow-x: auto
}
@media (max-width: 1100px) {
	.dc-pair { flex-direction: column }
}

.dc-kpis {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 14px
}

.dc-kpi {
	flex: 1;
	min-width: 140px;
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 8px;
	padding: 12px 14px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .03)
}

.dc-kpi .t {
	font-size: 11px;
	color: #888
}

.dc-kpi .v {
	font-size: 24px;
	font-weight: 700;
	color: #1F3BB3;
	margin-top: 3px
}

.dc-kpi .v.r {
	color: #c0392b
}

.dc-kpi .v.y {
	color: #e67e22
}

.dc-kpi .v.g {
	color: #27ae60
}

.dc-kpi .d {
	font-size: 11px;
	color: #999;
	margin-top: 2px
}

/* 瀛愮被 KPI锛氬彲鐐瑰嚮鏌ョ湅鏄庣粏锛堜笌銆屾瀬绔爣璁般�嶄笅鎷� #xExt 鍙屽悜鑱斿姩锛� */
.dc-kpi-x {
	cursor: pointer;
	user-select: none;
	transition: border-color .15s, box-shadow .15s, background .15s
}

.dc-kpi-x:hover {
	border-color: #1F3BB3;
	box-shadow: 0 2px 8px rgba(31, 59, 179, .12)
}

.dc-kpi-x.active {
	border-color: #1F3BB3;
	background: #f2f5ff;
	box-shadow: 0 0 0 2px rgba(31, 59, 179, .18)
}

.dc-kpi-x.active .d::after {
	content: " 路 宸茬瓫閫�";
	color: #1F3BB3;
	font-weight: 700
}

.dc-kpi-x.zero {
	opacity: .45
}

.dc-kpi-x.zero:hover {
	opacity: .75
}

/* 鏋佺瀛愮被 KPI锛氫竷涓悎骞剁揣鍑戜竴鎺掞紙鍙屾湡骞舵帓涓嬮潰鏉垮彉绐勶紝涓嶈兘璁╀竷涓崱鎶樿鍗犳帀鏁村潡锛� */
/* 鏈熷彿妗嗗悗闈㈢殑銆屾湰鏈熷疄闄呭鐞冦�嶅窘绔狅紙搴撻噷 daletou.tao锛屼笌濂楃悆涓嬫媺鐨勫垎鏋愬彛寰勬棤鍏筹級 */
.dc-tao-name {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 10px;
	font-size: 11px;
	line-height: 18px;
	vertical-align: middle;
	color: #888;
	background: #f2f4f7;
	border: 1px solid #e3e7ec;
	white-space: nowrap
}

.dc-tao-name.has {
	color: #fff;
	background: #1F3BB3;
	border-color: #1F3BB3;
	font-weight: 700
}

.dc-tao-name.none {
	color: #999;
	background: #f7f8fa
}

/* 鏈烞 鍒楃敤鐞ョ弨鑹诧紝涓庢湡B 瑙掓爣/鏁村垪搴曡壊缁熶竴 */
.dc-slot.slot-b .dc-tao-name.has {
	background: #b7791f;
	border-color: #b7791f
}

/* 鏈熷彿妗嗗悗闈㈢殑濂楃悆寰界珷锛氱揣璐磋緭鍏ユ锛屼笉琚� .field 鐨� flex 鎷変几 */
.dc-qbar .dc-tao-name {
	flex: 0 0 auto;
	align-self: center
}

/* 寮�濂栨寚鏍囪閲岀殑濂楃悆寰界珷锛坈cTaoName/ccTaoName2锛屼綅浜庛�屽墠鍜屻�嶄箣鍓嶏級锛�
   鎺掔増娌跨敤鎸囨爣椤癸紙padding/鍦嗚/瀛楀彿锛夛紝浣嗕繚鐣欒嚜韬儗鏅壊 鈥斺�� 鏈烝 钃濄�佹湡B 鐞ョ弨 */
.dc-open-metrics > .dc-tao-name {
	margin-left: 0;
	padding: 3px 10px;
	border-radius: 6px;
	font-size: 12px
}

/* 鎸囨爣琛岄�氱敤 hover 浼氱洊鎺夊窘绔犲簳鑹诧紝杩欓噷鎸夌姸鎬佸悇鑷拤浣忥紝榧犳爣鍒掕繃涓嶈お鑹� */
.dc-open-metrics > .dc-tao-name.has:hover {
	background: #1F3BB3;
	border-color: #1F3BB3
}

.dc-open-metrics > .dc-tao-name.none:hover {
	background: #f7f8fa;
	color: #999
}

.dc-slot.slot-b .dc-open-metrics > .dc-tao-name.has:hover {
	background: #b7791f;
	border-color: #b7791f
}

#extKpis, #extKpis2 {
	flex-wrap: nowrap;
	gap: 6px;
	margin-bottom: 10px
}

#extKpis .dc-kpi-x, #extKpis2 .dc-kpi-x {
	flex: 1 1 0;
	min-width: 0;
	padding: 6px 4px;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	border-radius: 6px
}

#extKpis .dc-kpi-x .t, #extKpis2 .dc-kpi-x .t {
	font-size: 11px;
	overflow: hidden;
	text-overflow: ellipsis
}

#extKpis .dc-kpi-x .v, #extKpis2 .dc-kpi-x .v {
	font-size: 15px;
	margin-top: 1px
}

/* 涓冨紶鍗￠兘鍐欍�岀粨鏋勬瀬绔瓙绫汇�嶆槸閲嶅璇存槑锛屽幓鎺夌渷楂樺害锛涢�変腑鎬侀潬钃濆簳钃濊竟鍖哄垎 */
#extKpis .dc-kpi-x .d, #extKpis2 .dc-kpi-x .d {
	display: none
}

#extKpis .dc-kpi-x.active, #extKpis2 .dc-kpi-x.active {
	font-weight: 700
}

.dc-filterbar {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: flex-end;
	background: #fafbfc;
	border: 1px solid #eef0f3;
	border-radius: 8px;
	padding: 10px 14px;
	margin-bottom: 10px
}

/* 璁╁啓鍦ㄧ瓫閫夋閲岀殑 <br> 鍦� flex 瀹瑰櫒鍐呬篃鑳芥柇琛岋紙鎸� br 鍒嗗鎺掞級 */
.dc-filterbar br {
	content: "";
	flex-basis: 100%;
	height: 0;
	margin: 0
}

/* 涓夋帓鍒嗙粍鐢� div 鏂锛氬潡绾�+flex-basis 100% 寮哄埗鎹㈣锛屾祻瑙堝櫒涓�鑷寸敓鏁堬紙涓嶄緷璧� <br> hack锛� */
.dc-filterbar .dc-break {
	flex-basis: 100%;
	width: 100%;
	height: 0;
	line-height: 0;
	margin: 0;
	padding: 0;
	border: 0
}

.dc-filterbar .field {
	display: flex;
	flex-direction: column;
	gap: 3px
}

.dc-filterbar label {
	font-size: 11px;
	color: #6c757d
}

.dc-filterbar select {
	font-size: 12px;
	padding: 0 8px;
	border: 1px solid #d0d7e2;
	border-radius: 6px;
	background: #fff
}

/* 绛涢�夋帶浠剁粺涓�椋庢牸锛歴elect 涓� input 鍚岄珮(28px)鍚岃竟妗嗗悓鍦嗚锛岃仛鐒﹁摑杈瑰厜鏅� */
.dc-filterbar select,
.dc-filterbar input[type="number"],
.dc-filterbar input[type="text"] {
	height: 28px;
	box-sizing: border-box;
	font-size: 12px;
	color: #1F1F1F;
	background: #fff;
	border: 1px solid #d0d7e2;
	border-radius: 6px;
	outline: none;
	transition: border-color .15s, box-shadow .15s
}

.dc-filterbar select:hover,
.dc-filterbar input:hover {
	border-color: #9db4e8
}

.dc-filterbar select:focus,
.dc-filterbar input:focus {
	border-color: #1F3BB3;
	box-shadow: 0 0 0 2px rgba(31, 59, 179, .12)
}

/* 寮卞叧鑱斿舰鎬佷笅鎷夛細閫夐」鏂囨湰杈冮暱锛堛��1+1+1+1+1 路 鍏ㄥ垎鏁ｅ瀷 (0.25%)銆嶏級锛屽浐瀹氬搴﹂伩鍏嶆拺涔辩瓫閫夋爮 */
.dc-filterbar select#fShape,
.dc-filterbar select#fShape2 {
	width: 186px
}

/* 鏁板�煎尯闂磋緭鍏ユ锛氱瓑瀹藉眳涓� */
.dc-filterbar input[type="number"] {
	width: 35px;
	text-align: center
}

/* 缁撴瀯鍥涜仈妗嗭紙jg1~jg4锛夛細灏忓彿灞呬腑锛屾垚缁勭揣鍑戞帓鍒� */
.dc-filterbar .jg {
	width: 34px;
	text-align: center
}

.dc-filterbar .jggroup {
	display: flex;
	gap: 4px
}

/* 闅愬舰 label 鍗犱綅锛氳鏃犳爣棰樼殑杈撳叆妗嗕笌鏈夋爣棰樼殑鍚岃鎺т欢椤堕綈 */
.dc-filterbar label.ph {
	visibility: hidden
}

/* 鍖洪棿鍒嗛殧绗︺�寏銆嶏細璐村簳骞朵笌杈撳叆妗嗗瀭鐩村眳涓� */
.dc-filterbar .tilde {
	justify-content: flex-end;
	padding-bottom: 7px;
	color: #98a2b3;
	font-size: 12px
}

.dc-filterbar .cnt {
	margin-left: auto;
	font-size: 12px;
	color: #6c757d
}

.dc-wrap table {
	width: 100%;
	border-collapse: collapse;
	margin: 10px 0;
	font-size: 12px
}

.dc-wrap th, .dc-wrap td {
	padding: 7px 9px;
	border-bottom: 1px solid #eee;
	text-align: center
}

.dc-wrap th {
	background: #f3f5f8;
	color: #555;
	font-weight: 600
}

.dc-wrap tr:hover td {
	background: #f7f9fc
}

/* 鏄庣粏琛ㄦ粴鍔ㄥ鍣紙2026-09-05 椋炲摜閫夛細鍒囨ā寮忚閲嶇畻鏄庣粏琛紝琛屾暟浼氬彉锛岀敤灏侀《鍐呮粴淇濊瘉涓嬫柟鍐呭涓嶈椤跺姩锛夈��
   鐢� max-height 鑰岄潪鍥哄畾 height锛氳灏戞椂琛ㄦ牸鑷劧鏀舵嫝銆佷笉鐣欏ぇ鐗囩┖鐧斤紝琛屽鏃舵墠灏侀《婊氬姩銆�
   琛ㄥご sticky 鍚搁《锛屾粴鍒颁笅闈篃鐪嬪緱鍒板垪鍚嶃�� */
.dc-tblwrap {
	max-height: 690px;
	overflow-y: auto;
	overflow-x: auto
}

.dc-tblwrap table {
	margin-top: 0
}

.dc-tblwrap thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	box-shadow: inset 0 -1px 0 #e3e8ef
}

.dc-qid {
	color: #1F3BB3;
	font-weight: 700
}

.dc-num {
	display: inline-block;
	min-width: 20px;
	padding: 1px 5px;
	margin: 1px;
	border-radius: 4px;
	background: #eef2f7;
	font-weight: 600;
	font-size: 12px
}

.dc-num.hl {
	background: #1F3BB3;
	color: #fff
}

.dc-tag {
	display: inline-block;
	font-size: 11px;
	padding: 1px 7px;
	border-radius: 10px;
	margin: 1px
}

.dc-tag.ext {
	background: #fde2e2;
	color: #c0392b
}

.dc-tag.his {
	background: #e3f2e8;
	color: #1e7d46
}

.dc-tag.rest {
	background: #eef2f7;
	color: #4a5568
}

.dc-tag.e {
	background: #fff3e0;
	color: #b26a00
}

.dc-btn {
	display: inline-block;
	font-size: 12px;
	padding: 4px 12px;
	border-radius: 5px;
	border: 1px solid #1F3BB3;
	color: #1F3BB3;
	background: #fff;
	cursor: pointer;
	text-decoration: none
}

.dc-btn:hover {
	background: #1F3BB3;
	color: #fff
}

.dc-note {
	font-size: 12px;
	line-height: 1.7;
	color: #444;
	background: #f8f9fb;
	border-left: 3px solid #1F3BB3;
	padding: 9px 13px;
	margin: 9px 0;
	border-radius: 0 6px 6px 0
}

.dc-note.warn {
	border-left-color: #c0392b
}

.dc-note b {
	color: #222
}

.dc-foot {
	font-size: 11px;
	color: #aaa;
	padding: 12px 20px;
	text-align: center;
	border-top: 1px solid #eee
}

.dc-pager {
	display: flex;
	gap: 8px;
	align-items: center;
	margin: 8px 0;
	font-size: 12px;
	color: #6c757d
}

.dc-pager button {
	font-size: 12px;
	padding: 4px 12px;
	border-radius: 5px;
	border: 1px solid #1F3BB3;
	color: #1F3BB3;
	background: #fff;
	cursor: pointer
}

.dc-pager button:disabled {
	opacity: .4;
	cursor: not-allowed
}

.dc-front {
	font-family: Consolas, monospace;
	font-weight: 600;
	color: #1F3BB3
}

/* 鏈湡寮�濂栧彿鐮� + 7 鎸囨爣锛氶噾鑹叉姤澶村崱锛堝乏渚ч噾鑹茬珫鏉� + 绔嬩綋鍙风爜鐞� + 鎸囨爣 chip锛� */
.dc-open {
	display: flex;
	/* 妯悜锛氬乏鍧椼�屽紑濂栧彿 + 7 鎸囨爣銆嶏紝鍙冲潡娑堟伅妗嗭紙ccMsg锛夊悓涓�鎺掑苟榻愩��
	   2026-09-06 椋炲摜鏀癸細娑堟伅鐢便�屾寚鏍囦笅鏂逛袱鎺掋�嶆敼鍥炪�屼笌濂栧彿鍚屼竴鎺掋�嶏紙绐勫睆 鈮�1000px 鑷姩鍥為��绾靛悜锛岃涓嬫柟濯掍綋鏌ヨ锛� */
	flex-direction: row;
	align-items: stretch;
	gap: 12px;
	padding: 12px 16px;
	background: linear-gradient(180deg, #fffcf3 0%, #ffffff 62%);
	border: 1px solid #f0e2b8;
	border-left: 4px solid #e8a33d;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(191, 148, 46, .10);
	margin: 10px 0;
	color: #333;
	font-family: inherit;
	font-weight: 400;
	letter-spacing: 0
}

.dc-open-main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 10px
}

/* 宸﹀彸绠楁硶鍗＄墖锛氬凡绉诲叆 .dc-algos锛屾帓鍦ㄣ�岀浉閭荤畻娉� B銆嶄笌銆屽悎骞堕潰 C銆嶄箣闂淬��
   涓� A/B/C 鍏辩敤 .dc-algo-card 澶栬锛屽彧鍋氳交寰厤鑹插尯鍒嗭紙铏氱嚎钃濆簳锛屽懠搴斿師寮�濂栧尯鏍峰紡锛夈�� */
.dc-algo-card.dc-algo-zy {
	background: #fcfdff;
	border-color: #d5e0ff
}

/* 宸﹀彸绠楁硶鍐呭鍖猴細鍓嶅尯涓�琛屻�佸悗鍖轰竴琛岋紙ccRenderZy 鐢熸垚 .dc-zy-row锛� */
.dc-algo-zy-b {
	flex: 1 1 auto;
	min-height: 34px;
	padding: 2px 0;
	display: flex;
	flex-direction: column;
	gap: 5px
}

.dc-zy-row {
	display: flex;
	align-items: flex-start;
	gap: 7px
}

.dc-zy-tag {
	flex: 0 0 32px;
	padding-top: 4px;
	font-size: 11px;
	color: #8a97ad
}

.dc-zy-nums {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start
}

.dc-zy-k {
	display: inline-block;
	min-width: 28px;
	text-align: center;
	margin: 1px 3px;
	padding: 1px 5px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	cursor: help
}

.dc-zy-k.q { background: #e8f0ff; border: 1px solid #bcd0ff; color: #1F3BB3 }
.dc-zy-k.h { background: #eaf2ff; border: 1px solid #9bd0ff; color: #1565c0 }
.dc-zy-none { color: #bbb; font-size: 12px; padding-top: 3px }

@media (max-width: 1000px) {
	/* 绐勫睆锛堝惈 slot 鍗婂鍫嗗彔鏃讹級锛氬紑濂栧尯涓庢秷鎭鏀瑰洖绾靛悜锛屾秷鎭鏁磋閾烘弧锛屾渶澶氬洓鎺掑啀鍐呮粴 */
	.dc-open { flex-direction: column }
	.dc-open-msg { width: 100%; flex: 0 0 auto; max-height: 112px }
}
.dc-open-head {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: #8a5d00
}
.dc-open-head b {
	display: inline-flex;
	align-items: center;
	padding: 1px 10px;
	margin: 0 2px;
	border-radius: 10px;
	background: #1F3BB3;
	color: #fff;
	font-family: Consolas, monospace;
	letter-spacing: 1px;
	box-shadow: 0 1px 3px rgba(31, 59, 179, .28)
}
.dc-open-tag {
	padding: 1px 8px;
	border-radius: 4px;
	background: #fdf2d8;
	border: 1px solid #f0dcae;
	color: #a06f00;
	font-size: 11px;
	font-weight: 700
}
/* 寮�濂栧彿鐞冭锛氬湪鏈熷彿涓庢寚鏍囦箣闂存按骞冲眳涓� */
/* 寮�濂栧彿 5+2 瑙嗚寰皟锛氫笂绉� 5px銆佸乏绉� 20px銆傜敤 relative 浣嶇Щ锛屼笉鍗犲竷灞�銆佷笉浼氭尋鍔ㄥ叾瀹冨厓绱� */
/* 寮�濂栧彿鏁磋浣嶇Щ锛堥鍝� 2026-09-05 鏈�缁堝畾妗ｏ細涓婄Щ 10px / 宸︾Щ 40px锛夈��
   浣嶇Щ缁熶竴鏀惧湪鐖剁骇 .dc-open-row锛宱pFront / dc-plus / opBack 鍏ㄩ儴璺熼殢 鈥斺�� 涓夎�呭繀鐒跺叡绾裤��
   鏁欒锛氭浘鎶� -5px 鍔犲湪 #opFront 涓婏紝缁撴灉鍓嶅尯鍙锋瘮鍚庡尯鍙烽珮 5px 涓嶅湪涓�鏉＄洿绾匡紱
   鍑℃槸瑕佹暣琛屼竴璧峰姩鐨勪綅绉伙紝涓�寰嬪啓鐖剁骇锛屼笉瑕佺粰鍗曚釜瀛愬厓绱犲姞銆�
   鐢� relative 鑰岄潪 margin 鈥斺�� 涓嶅崰甯冨眬锛屼笉椤跺姩涓嬫柟鎸囨爣琛屻�� */
.dc-open-row { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; position: relative; top: -10px; left: -40px }
.dc-open-row .dc-plus { color: #cfa94e; font-weight: 700; font-size: 18px; padding: 0 2px }
.dc-ballbox { display: flex; gap: 8px; flex-wrap: wrap }
.dc-ball {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; border-radius: 50%;
	background: radial-gradient(circle at 32% 28%, #ff6f63 0%, #e8362a 55%, #c11f16 100%);
	color: #fff; font-weight: 700; font-size: 16px;
	font-family: Consolas, monospace; letter-spacing: .5px;
	box-shadow: 0 2px 5px rgba(200, 40, 26, .32), inset 0 -2px 4px rgba(0, 0, 0, .15);
	text-shadow: 0 1px 1px rgba(0, 0, 0, .22)
}
.dc-ball.back {
	background: radial-gradient(circle at 32% 28%, #5f80ff 0%, #1F3BB3 55%, #162e8a 100%);
	box-shadow: 0 2px 5px rgba(31, 59, 179, .30), inset 0 -2px 4px rgba(0, 0, 0, .15)
}
.dc-open-metrics { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color: #6c757d }
.dc-open-metrics > span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	background: #f6f8fb;
	border: 1px solid #e6e9ef;
	border-radius: 6px;
	transition: background .15s, border-color .15s
}
.dc-open-metrics > span:hover { background: #eef3ff; border-color: #c7d2f0 }
.dc-open-metrics b {
	color: #1F3BB3;
	font-size: 13px;
	font-weight: 700;
	font-family: Consolas, monospace;
	letter-spacing: .5px
}

.dc-algos {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	padding: 12px 18px;
	background: #fafbfc;
	border-bottom: 1px solid #eee
}

.dc-algos.hide {
	display: none
}

/* 鍚屼笂锛氬垪鍐� Grid 瑙勫垯涓嶈兘鐩栨帀 .hide锛屾樉寮忚ˉ涓�鏉★紙鐗瑰紓鎬х浉鍚岋紝闈犺繖鏉″湪鍚庣敓鏁堬級 */
.dc-slots .dc-algos.hide {
	display: none
}

.dc-algo-card {
	flex: 1;
	min-width: 230px;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 8px;
	padding: 10px 13px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .03);
	cursor: grab
}
.dc-algo-card:active { cursor: grabbing }
/* 鎷栨嫿涓殑鍗＄墖锛氬崐閫忔槑锛屾彁绀烘鍦ㄧЩ鍔紱鍏朵綑鍗＄墖姝ｅ父锛屼笉骞叉壈甯冨眬 */
.dc-algo-card.cc-dragging {
	opacity: .4;
	box-shadow: 0 6px 16px rgba(31, 59, 179, .18);
	cursor: grabbing
}

/* 鍚庡尯鍊欓�夎璐村崱鐗囧簳閮細涓夊崱绛夐珮鎷変几鏃讹紝A/B 鍗＄殑鍚庡尯鍊欓�変笌 C 鍗″榻愶紙鏈鐣� 6px 鏈�灏忛棿璺濓級 */
.dc-algo-card .dc-algo-row:last-child {
	margin-top: auto;
	padding-top: 6px
}

.dc-algo-card.active {
	border-color: #1F3BB3;
	background: #f5f8ff;
	box-shadow: 0 2px 10px rgba(31,59,179,.18);
	opacity: 1
}

/* 闈炲綋鍓嶆ā寮忓崱鐗囷細鍙偣鍑诲垏鎹㈡ā寮忥紙鐐瑰崱鐗囩┖鐧藉鍒囨崲锛岀偣鍙风爜鍧椾粛鏄帓闄ゅ彿锛夈��
   2026-09-06 椋炲摜瀹氾細鍙栨秷鐏拌壊钂欑増锛堝師 opacity .5 + grayscale 55% + 铏氱嚎锛夛紝
   鏈�変腑鐨勫崱涓庨�変腑鍗�**澶栬涓�鑷�**锛屽彧鏈夈�屽綋鍓嶆ā寮忋�嶉偅寮犲甫 .active锛堣摑杈�+娴呰摑搴�+闃村奖锛夈��
   杩欓噷鍙繚鐣欍�屽彲鐐瑰嚮銆嶇殑鎸囬拡涓� hover 钃濊竟鍙嶉锛屼笉鍐嶅仛浠讳綍瑙嗚寮卞寲銆� */
.dc-algo-card.dim {
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s
}

.dc-algo-card.dim:hover {
	border-color: #1F3BB3;
	box-shadow: 0 2px 10px rgba(31, 59, 179, .14)
}

.dc-algo-title {
	font-size: 13px;
	font-weight: 700;
	color: #1F3BB3;
	margin-bottom: 7px
}

.dc-algo-sub {
	font-size: 11px;
	color: #999;
	font-weight: 400;
	margin-left: 4px
}

.dc-algo-row {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 6px 0
}

.dc-algo-label {
	font-size: 12px;
	color: #6c757d;
	min-width: 30px;
	padding-top: 3px;
	flex-shrink: 0
}

.dc-numbox {
	display: flex;
	flex-wrap: wrap;
	gap: 3px
}

/* 鍓嶅尯鍊欓�夌敤 grid 鍐欐 12 鍒楋細姣忔帓瀹归噺 8 鈫� 12锛屼笁鎺掑閲� 36 鈮� 鍓嶅尯鐞嗚涓婇檺 35锛�
   浠讳綍鏈熷彿閮芥拺涓嶅埌绗洓鎺掞紝楂樺害鎭掑畾 66px锛屼笅鏂瑰唴瀹逛笉璺冲姩銆�
   涓嶇敤 flex-wrap锛氬畠闈犲搴﹁嚜閫傚簲锛屽睆瀹戒竴鍙樻瘡鎺掍釜鏁板氨鍙橈紝鎺掓暟涓嶅彲鎺с��
   琛岄珮鍐欐 grid-auto-rows:20px锛堜笁琛� 60 + 涓ら亾 gap 6 = 66锛夛紝涓嶄緷璧栧瓧浣撴覆鏌� */
/* 鍓嶅尯鍊欓�夊浐瀹氬垪缃戞牸锛氬垪鏁板啓姝伙紝瀹归噺鍙畻锛堝垪鏁� 脳 鎺掓暟锛夛紝灞忓鍙樺寲涓嶅奖鍝嶆帓鏁般��
   11 鍒� 脳 3 鎺� = 瀹归噺 33锛涘疄娴� 32 鏈� frontFace 18~28 涓紙max 28锛夛紝浣欓噺 5锛屽鐢ㄣ��
   瓒呰繃 33 涓細鎾戝埌绗洓鎺掞紙86px锛夆啋 鍗＄墖鍙橀珮銆傜湡鍑虹幇鍐嶈皟鍒楁暟鎴栧崌鍒� 12 鍒椼�� */
.dc-numbox.dc-nb3 {
	display: grid;
	grid-template-columns: repeat(15, 1fr);
	grid-auto-rows: 20px;
	gap: 3px;
	align-content: start;
	/* min-height: 66px */
}

/* 鍓嶅尯鍙锋睜鍥哄畾 2 鎺掞紙椋炲摜 2026-09-06 瀹氾級锛氬垪鏁板啓姝� 18 鍒楋紝2 鎺掑閲� 36锛岃鐩栧墠鍖哄�欓�夋渶澶� 35锛�
   瀹瑰櫒楂樺害鎭掑畾 2 鎺� 鈫� 鏁版嵁澧炲噺鍙湪鏍煎唴閲嶆帓锛屼笉鎾戦珮銆佷笉椤跺姩椤甸潰鏁翠綋锛堜笌 dc-nb3 涓夋帓瀵圭О锛夈�� */
.dc-numbox.dc-nb2 {
	display: grid;
	grid-template-columns: repeat(18, 1fr);
	grid-auto-rows: 22px;
	gap: 3px;
	align-content: start;
	min-height: 55px
}
.dc-numbox.dc-nb2 .dc-num {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	min-width: 0;
	padding: 0 6px
}

.dc-numbox.dc-nb3 .dc-num {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	min-width: 0;
	padding: 0 6px
}

.dc-numbox .dc-num.h {
	background: #1F3BB3;
	color: #fff
}

.dc-numbox .dc-empty {
	color: #bbb;
	font-size: 12px
}

.dc-numbox .dc-num {
	cursor: pointer;
	transition: background .15s, color .15s
}

.dc-numbox .dc-num:hover {
	background: #1F3BB3;
	color: #fff
}

.dc-numbox .dc-num.h:hover {
	background: #162e8a
}

/* 鍓嶅尯鍙� / 鍚庡尯鍙� 鍙风爜姹狅細涓�琛屼袱涓ぇ铏氱嚎妗嗭紙缁撴瀯鍚岀畻娉曞崱鐗囷級锛屽彿鐮佸鏃舵鍐呰嚜鍔ㄦ崲琛� */
.dc-poolrow {
	display: flex;
	gap: 12px;
	flex: 1 1 100%;
	margin: 8px 0
}

.dc-pool-box {
	flex: 1;
	min-width: 240px;
	background: #fff;
	border: 1px dashed #cbd3df;
	border-radius: 8px;
	padding: 8px 10px
}

.dc-pool-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 12px;
	font-weight: 700;
	color: #1F3BB3;
	margin-bottom: 6px
}

.dc-pool-sub {
	font-size: 11px;
	color: #999;
	font-weight: 400
}

.dc-pool-body {
	min-height: 30px;
	padding: 4px 5px;
	background: #fcfdff;
	border: 1px solid #eef1f6;
	border-radius: 6px
}

.dc-pool-tip {
	font-size: 11px;
	color: #999;
	margin-top: 6px
}
/* ===== 鎺掗櫎鍙锋彁绀烘潯 ===== */
.dc-exbar {
	display: none;
	margin: 0 18px 12px;
	padding: 8px 14px;
	background: #fff5f5;
	border: 1px solid #f3c9c9;
	border-radius: 8px;
	font-size: 12px;
	color: #c0392b;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap
}

/* 鎺掗櫎鏉� 2026-09-06 璧风Щ鍏ュ悇鑷湡妗嗭紙slotA 鍐� dcExbar / slotB 鍐� dcExbar2锛夛細
   杈硅窛璺熼殢鏈熸鍐呭厓绱狅紙10px锛夛紝涓嶅啀娌跨敤妯法鏁村鏃剁殑 18px */
.dc-slot .dc-exbar {
	margin: 10px 10px 10px
}

.dc-exbar.show {
	display: flex
}

.dc-exbar .lbl {
	font-weight: 700
}

.dc-exbar .etag {
	display: inline-block;
	background: #fbe3e3;
	color: #c0392b;
	border: 1px solid #e7b3b3;
	border-radius: 4px;
	padding: 1px 7px;
	cursor: pointer;
	font-weight: 600
}

.dc-exbar .etag:hover {
	background: #c0392b;
	color: #fff
}

.dc-exbar button {
	font-size: 12px;
	padding: 3px 12px;
	border-radius: 5px;
	border: 1px solid #c0392b;
	color: #c0392b;
	background: #fff;
	cursor: pointer
}

.dc-exbar button:hover {
	background: #c0392b;
	color: #fff
}

.dc-numbox .dc-num.ex {
	background: #fbe3e3;
	color: #c0392b;
	text-decoration: line-through;
	font-weight: 700
}

.dc-numbox .dc-num.ex:hover {
	background: #c0392b;
	color: #fff;
	text-decoration: none
}

/* 鍓嶅尯鍙锋睜涓夋�侊紙椋炲摜 2026-09-06 鏀瑰彛寰勶級锛�
   鈶� 榛樿        = .dc-num锛堢伆搴曪紝瀛椾綋鑹查殢鐖剁骇锛�
   鈶� 涓ょ畻娉曞叡鏈�  = .dc-num.cmp锛堣櫄绾挎鏍囪锛�**瀛椾綋棰滆壊涓庨粯璁ゅ畬鍏ㄤ竴鑷�**锛屽彧闈犳绾垮尯鍒嗭級
   鈶� 鐐瑰嚮绛涢�変腑  = .dc-num.sel锛堣摑搴曠櫧瀛楋紝鐢ㄦ埛鐐瑰彿鍋氥�屽寘鍚彿銆嶈繃婊ゆ椂锛�
   涓� .ex锛堟墜鍔ㄦ帓闄わ紝绾㈠簳鍒掔嚎锛夊尯鍒嗭細.ex 琛ㄧず琚帓闄わ紝.sel 琛ㄧず琚�変腑绛涢�夛紱涓よ�呴兘鐐瑰緱鍒般�� */
.dc-numbox .dc-num.both {
	background: #fff;
	color: inherit;
	border: 1px dashed #7b8794;
	padding: 0 4px;
	font-weight: 600
}

/* 涓ょ畻娉曞叡鏈夌殑鍙凤細铏氱嚎妗嗭紝瀛椾綋棰滆壊涓庨粯璁� .dc-num 涓�鏍凤紝涓嶅仛寮卞寲 */
.dc-numbox .dc-num.cmp {
	background: #fff;
	color: inherit;
	border: 1px dashed #7b8794;
	padding: 0 4px;
	font-weight: 600
}

/* C 鍗°�屽墠鍖洪仐婕忓彿銆嶏細1~35 閲屽悎骞堕潰娌¤鐩栧埌鐨勫彿锛屾祬鐏板急鍖栵紱鐐归�夊悗鍙� .sel锛堣摑搴曠櫧瀛楋級骞跺叆鍊欓�夐潰 */
.dc-numbox .dc-num.miss {
	background: #f5f6f8;
	color: #9aa3ad;
	font-weight: 600
}

/* 鍚庡尯鍙风爜姹犻噷銆岃ˉ榻愬彿琚�変腑銆嶏細.miss 瀹氫箟鍦� .h 涔嬪悗浼氱洊鎺夎摑搴曪紝杩欓噷鎶婇�変腑鐨勮ˉ榻愬彿鎷夊洖钃濆簳鐧藉瓧銆�
   鈿狅笍 蹇呴』**闄愬畾鍦ㄥ悗鍖烘睜 id 鍐�**鈥斺�擟 鍗� agBack 鐨勮ˉ榻愬彿涔熷甫 .h锛岃嫢鍐欐垚鍏ㄥ眬瑙勫垯浼氬拰銆屽悎骞跺懡涓殑钃濆彿銆嶆贩娣嗭紝
   鐪嬩笉鍑哄摢浜涙槸棰勭暀绌轰綅锛�2026-09-06 椋炲摜锛�12 涓綅缃彧鏄鐣欑┖浣嶏紝鍚堝苟鍚庡搴旂殑鎵嶅彉钃濓級銆� */
/* 鍚庡尯鍙风爜姹� = 澶囬�夋睜锛堥鍝� 2026-09-06 鏈�缁堝彛寰勶級锛氬彧鏈変袱鎬侊紝涓嶅啀鏈夈�屽凡閫変腑銆嶈姳鑹� 鈥斺��
     鍚堝苟闈㈠懡涓�       鈫� .h     娣辫摑搴曠櫧瀛楋紙涓� C 鍗� agBack 涓�鑷达級
     12 浣嶉噷鐨勯鐣欑┖浣� 鈫� .miss  娴呯伆
   鐐归��/鍙栨秷鍙敼 CC_BACK_PICK 涓庢偓鍋� title銆佷笂鏂广�屽凡閫� N 涓�嶈鏁帮紝class 鎭掑畾涓嶅姩銆�
   鈿狅笍 杩欓噷**涓嶈鍐嶅姞浠讳綍鏂版牱寮�**锛�.on 鐧藉唴妗嗐��.hit 娴呰摑閮藉凡鎸夐鍝ヨ姹傚垹闄わ級锛�
   鏂板瑙嗚鐘舵�佸墠蹇呴』鍏堣窡椋炲摜璇翠竴澹帮紝鍒嚜閫犺壊闃躲�� */

/* 閬楁紡鍙烽噷銆屽凡琚涓烘帓闄ゅ彿銆嶇殑锛�.miss 瀹氫箟鍦� .ex 涔嬪悗浼氱洊鎺夌孩鑹诧紝杩欓噷琛ヤ竴鏉℃媺鍥炵孩搴曞垝绾匡紝
   鎻愰啋鐢ㄦ埛琛ヤ簡涔熺櫧琛ワ紙缁勫悎浼氳鎺掗櫎鍙疯繃婊ゆ帀锛夈�傛斁鍦� .miss 涔嬪悗銆�.sel 涔嬪墠 鈫� 閫変腑鎬佷粛浼樺厛鏄剧ず钃濆簳 */
.dc-numbox .dc-num.miss.ex {
	background: #fdeaea;
	color: #c0392b;
	text-decoration: line-through
}

/* 鐐瑰嚮绛涢�夛紙鍖呭惈鍙�/棣栧彿杩囨护锛夛細钃濆簳鐧藉瓧锛屼紭鍏堢骇鏈�楂橈紙鏀惧湪 .ex / .cmp / .miss 涔嬪悗锛� */
.dc-numbox .dc-num.sel {
	background: #1F3BB3;
	color: #fff;
	border: 1px solid #1F3BB3;
	font-weight: 700
}


/* 鍓嶅尯鍙锋睜鏍囬閲岀殑鍥句緥灏忚壊鍧楋紙涓庝笂闈笁鎬侀厤鑹蹭竴鑷达紝渚夸簬瀵圭収锛� */
.lg-sel {
	background: #1F3BB3;
	color: #fff;
	border-radius: 3px;
	padding: 0 4px;
	font-weight: 600
}

.lg-cmp {
	background: #fff;
	color: inherit;
	border: 1px dashed #7b8794;
	border-radius: 3px;
	padding: 0 4px;
	font-weight: 600
}







/* ===== daletoudb 绠楁硶鐢熸垚鍗″彿鐮佹睜锛�2026-09-18l 椋炲摜瀹氱増锛夛細off 娴呯伆鏃犺竟妗� / on 榛戝瓧娣辩伆杈规 ===== */
#gxCardBox .gx-algo-row { margin: 4px 0 1px; }
#gxCardBox .gx-algo-lab { font-size: 12px; color: #555; margin-bottom: 1px; display: flex; align-items: center; gap: 4px; }
#gxCardBox .gx-chk { margin: 0; }
#gxCardBox .dc-numbox { margin-bottom: 2px; }
#gxCardBox .dc-num { cursor: pointer; user-select: none; }
#gxCardBox .dc-num.gx-off { background: #f7f8fa; color: #c9ced6; border: none; }
#gxCardBox .dc-num.gx-on { background: #fff; color: #111; border: 1px solid #7c848e; font-weight: 700; }
#gxCardBox .dc-num.gx-off:hover { color: #9aa1ab; }
#gxCardBox .dc-num.gx-on:hover { background: #f0f3f7; }
/* 绂佺敤鍙凤細淇濈暀浣嶇疆銆佺伆鏄惧垝绾匡紝涓嶅弬涓庡姣� */
#gxCardBox .dc-num.gx-dis { background: #f1f2f4; color: #b6bcc4; border: 1px solid #d8dce2; text-decoration: line-through; cursor: pointer; }
#gxCardBox .dc-num.gx-dis:hover { background: #e8eaee; }
#gxCardBox .dc-num.gx-on.gx-back { background: #e8f3ff; border-color: #7fb4e6; color: #0b5cad; }
#gxCardBox .dc-num.gx-dis.gx-back { background: #eef3f8; border-color: #c9d8e8; color: #9bb3c9; text-decoration: line-through; }
#gxCardBox .gx-prize { font-size: 12px; color: #66707d; margin: 0 0 0 10px; letter-spacing: .3px; line-height: 1.5; }
#gxCardBox .gx-prize b { color: #2b6cb0; font-weight: 700; }
#gxCardBox .dc-numbox { min-height: 26px; }
/* 琛ㄥご闃�闂紙2026-09-19 椋炲摜锛夛細濂栧彿 / 鐩搁偦 涓�閿垏鍥涘崱锛屽懡涓垎缁勮仈鍔ㄣ��
   涓� #stFloat 鍚屾瀯锛堝悓鏍风敤鍏ㄥ眬 .dc-btn + .on锛夛紝浣� .on 褰撳垵闄愬畾鍦� #stFloat 涓嬶紝鏁呰繖閲岄悎鍐欎竴浠� #gxValve 浣滅敤鍩熴�� */
#gxValve { display: inline-flex; gap: 6px; }
#gxValve .dc-btn { padding: 3px 12px; }
#gxValve .dc-btn.on { background: #1F3BB3; border-color: #1F3BB3; color: #fff; }
/* 搴曢儴鍏ㄥ眬绂佺敤鎺у埗鏉★紙鐙珛浜� 4 鍗★紝缃簬 .card-body 鍐� gxCardBox 涔嬪悗锛� */



/* ==================== 浠ヤ笅涓� daletoudb.html 椤甸潰鏍峰紡锛�2026-09-18m 鐢� daletoudb.css 鏁翠綋骞跺叆锛岃鍒欏叏閮� #id 闄愬畾锛屼笉褰卞搷 combo 椤碉級 ==================== */

锘緻charset "UTF-8";
/* ============================================================
   澶т箰閫� 路 閫愭敞鍒嗘瀽锛坉aletoudb.html锛�
   绛涢�夊尯缁撴瀯涓庤瑙夊彛寰勫�熼壌 daletouCombo.jsp 鐨� #focusBar / #chipBar / #dims
   鍏ㄩ儴瑙勫垯闄愬畾鍦� #pnWrap 鍐咃紝涓嶆薄鏌� Bootstrap 鍏ㄥ眬鏍峰紡
   ============================================================ */
#pnWrap { -
	-pn-blue: #1c6cb5; -
	-pn-line: #e3e6ea; -
	-pn-txt: #1f2329; -
	-pn-txt2: #6b7280; -
	-pn-txt3: #9aa1ab; -
	-pn-red: #c0392b; -
	-pn-amber: #b7791f;
	font-size: 12.5px;
	color: var(- -pn-txt);
}

#pnWrap * {
	box-sizing: border-box;
}

/* ---------- 椤堕儴姒傝鍗� ---------- */
#pnWrap .pn-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin-bottom: 10px;
}

#pnWrap .pn-stat {
	background: #fbfcfd;
	border: 1px solid var(- -pn-line);
	border-radius: 7px;
	padding: 8px 11px;
}

#pnWrap .pn-stat .k {
	color: var(- -pn-txt2);
	font-size: 11.5px;
}

#pnWrap .pn-stat .v {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
}

#pnWrap .pn-stat .d {
	color: var(- -pn-txt3);
	font-size: 11px;
}

/* ---------- 绛涢�夛細鏉′欢鎽樿鏉� ---------- */
#pnWrap .pn-focus {
	display: flex;
	gap: 10px 12px;
	flex-wrap: wrap;
	align-items: center;
	background: #fff;
	border: 1px solid var(- -pn-line);
	border-left: 3px solid var(- -pn-blue);
	border-radius: 6px;
	padding: 8px 12px;
	margin-bottom: 8px;
	font-size: 12.5px;
	color: #1f2a44;
}

#pnWrap .pn-focus .fb-c {
	color: #5b6168;
}

#pnWrap .pn-focus .fb-c b {
	color: var(- -pn-blue);
	font-size: 14px;
}

#pnWrap .pn-focus .tail {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ---------- 绛涢�夛細宸查�� chip 鏉� ---------- */
#pnWrap .pn-chipbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	flex: 0 1 auto;
	min-width: 0;
	min-height: 23px;
	margin-bottom: 0;
}

#pnWrap .pn-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11.5px;
	color: #1f2a44;
	background: #eef4ff;
	border: 1px solid #c6d4ea;
	border-radius: 12px;
	padding: 1px 4px 1px 9px;
	line-height: 19px;
	white-space: nowrap;
}

#pnWrap .pn-chip i {
	cursor: pointer;
	font-style: normal;
	color: #8593a6;
	padding: 0 4px;
	border-radius: 50%;
}

#pnWrap .pn-chip i:hover {
	background: #1a73e8;
	color: #fff;
}

#pnWrap .pn-chip.pn-rst {
	background: #fff5f4;
	border-color: #e6b7b0;
	color: #b3261e;
	cursor: pointer;
	padding: 1px 9px;
}

#pnWrap .pn-chip.pn-rst:hover {
	background: #b3261e;
	color: #fff;
	border-color: #b3261e;
}

/* ---------- 绛涢�夛細鍒嗙粍 KPI 鐭╅樀 ---------- */
#pnWrap #dims {
	display: flex;
	gap: 10px;
	align-items: stretch;
	flex-wrap: wrap;
	margin-bottom: 8px;
}

#pnWrap .dim-block {
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 8px;
	padding: 6px 10px 8px;
	flex: 1 1 100%;
	min-width: 0;
}

#pnWrap .dim-block.g1 {
	border-left: 3px solid var(- -pn-blue);
}

#pnWrap .dim-block.g2 {
	border-left: 3px solid #2a9d8f;
}

#pnWrap .dim-block.g3 {
	border-left: 3px solid var(- -pn-amber);
}

#pnWrap .dim-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	min-width: 0;
}

#pnWrap .dim-item {
	flex: 1 1 0;
	min-width: 0;
	padding: 0 10px;
	border-right: 1px solid #e6e9ef;
}

#pnWrap .dim-item:last-child {
	border-right: none;
	padding-right: 0;
}

#pnWrap .dim-item:first-child {
	padding-left: 0;
}

#pnWrap .dim-title {
	font-size: 12.5px;
	font-weight: 700;
	color: #333;
	margin: 2px 0 6px;
	display: flex;
	align-items: baseline;
	gap: 8px;
}

#pnWrap .dim-title .t {
	white-space: nowrap;
	flex: 0 0 auto;
}

#pnWrap .dim-title .hint {
	font-size: 11px;
	color: #98a2b3;
	font-weight: 400;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#pnWrap .dc-kpis {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 4px;
	margin-bottom: 2px;
}

#pnWrap .dc-kpi {
	min-width: 0;
	background: #fff;
	border: 1px solid #e6e9ef;
	border-radius: 6px;
	padding: 3px 6px;
	cursor: pointer;
	user-select: none;
	transition: border-color .15s, box-shadow .15s, background .15s;
}

#pnWrap .dc-kpi .t {
	font-size: 11px;
	color: #888;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

#pnWrap .dc-kpi .v {
	font-size: 15px;
	line-height: 1.2;
	font-weight: 700;
	color: var(- -pn-blue);
	margin-top: 1px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

#pnWrap .dc-kpi .d {
	font-size: 10.5px;
	line-height: 1.2;
	color: #999;
	margin-top: 1px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

#pnWrap .dc-kpi:hover {
	border-color: var(- -pn-blue);
	box-shadow: 0 2px 8px rgba(28, 108, 181, .12);
}

#pnWrap .dc-kpi.active {
	border-color: var(- -pn-blue);
	background: #f2f5ff;
	box-shadow: 0 0 0 2px rgba(28, 108, 181, .18);
}

#pnWrap .dc-kpi.active .t::after {
	content: " \00b7 \5df2\7b5b";
	color: var(- -pn-blue);
	font-weight: 700;
}

#pnWrap .dc-kpi.all.active .t::after {
	content: "";
}

#pnWrap .dc-kpi.zero {
	opacity: .45;
}

#pnWrap .dc-kpi.zero:hover {
	opacity: .75;
}

/* 2026-09-19 椋炲摜鎸囦护锛坆j-2锛夛細鍚勫鍗″懡涓潡锛�#pnCardStat锛夆�斺��
 * KPI 瀹藉害鍘嬬缉涓轰竴鎺� 7 涓紙鍓嶅尯 = 鍏ㄩ儴 + 6 妗ｏ紝姝ｅソ涓�琛岋紱鍚庡尯 = 鍏ㄩ儴 + 3 妗ｏ級銆�
 * 鍙綔鐢ㄤ簬璇ュ潡锛�#dims 鍏朵綑缁村害涓嶅彈褰卞搷銆� */
#pnWrap #pnCardStat .dc-kpis {
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 3px;
}

#pnWrap #pnCardStat .dc-kpi {
	padding: 3px 1px;
	text-align: center;
}

#pnWrap #pnCardStat .dc-kpi .t {
	font-size: 10px;
}

#pnWrap #pnCardStat .dc-kpi .v {
	font-size: 14px;
}

#pnWrap #pnCardStat .dc-kpi .d {
	font-size: 10px;
}

/* ---------- 绛涢�夛細鍙风爜姹� ---------- */
#pnWrap .dc-poolrow {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

#pnWrap .dc-pool-box {
	flex: 1;
	min-width: 300px;
	background: #fff;
	border: 1px dashed #cbd3df;
	border-radius: 8px;
	padding: 7px 10px;
}

/* 2026-09-23 AA-18\uff1a\u5355\u7968\u5408\u5e76\u6846 鈥斺�� \u5360\u5269\u4f59\u5bbd\u5ea6\uff0c\u4e0e\u524d\u533a\u6846\u540c\u89c4\u5219 */
#pnWrap .dc-poolrow > .dc-merge-box {
	flex: 1 1 300px;
	min-width: 300px;
}
/* 2026-09-19 椋炲摜鎸囦护锛氬彿鐮佹睜涓夋瀹藉害閲嶆帓 鈥斺�� 鍓嶅尯鍗犲墿浣欍�佸悗鍖� 240px銆佹敹钘� 200px锛堣鐩栦笂鏂� min-width:300px锛� */
#pnWrap .dc-poolrow > .dc-pool-box:nth-child(1) {
	flex: 1 1 300px;
	min-width: 300px;
}

#pnWrap .dc-poolrow > .dc-pool-box:nth-child(2) {
	flex: 0 0 240px;
	min-width: 500px;
}

#pnWrap .dc-poolrow > #pnFavBox {
	flex: 0 0 200px;
	min-width: 200px;
}


#pnWrap .dc-pool-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 12px;
	font-weight: 600;
	color: var(- -pn-blue);
	margin-bottom: 5px;
}

#pnWrap .dc-pool-sub {
	font-size: 11px;
	color: var(- -pn-txt3);
	font-weight: 400;
}

#pnWrap .dc-pool-sub b {
	color: var(- -pn-blue);
}

#pnWrap .dc-nb {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
}

#pnWrap .dc-nb i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 23px;
	height: 23px;
	border-radius: 50%;
	background: #f2f4f7;
	color: #6b7280;
	font-size: 10.5px;
	font-style: normal;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
	user-select: none;
	transition: .12s;
}

#pnWrap .dc-nb i:hover {
	background: #e3eaf5;
	color: var(- -pn-blue);
}

#pnWrap .dc-nb i.on {
	background: #d9534f;
	color: #fff;
	border-color: #b93f3b;
}

#pnWrap .dc-nb.nb-b i.on {
	background: #3d92c9;
	color: #fff;
	border-color: #2c76a8;
}
/* 2026-09-19 椋炲摜鎸囦护锛氬彿姹犻噷銆屾湭琚墍閫夌畻娉曞崱瑕嗙洊銆嶇殑鍙� -> 鐏拌櫄绾垮湀锛堢函瑙嗚锛屼笉鏀圭偣鍑昏涔夛級 */
#pnWrap .dc-nb i[data-miss="1"] {
	border-style: dashed;
	border-color: #98a2b3;
}

/* 2026-09-22 椋炲摜鎸囦护路AA-17锛氬悎骞舵鍐呫�屽墠鍖�/鍚庡尯銆嶅垎鎺掓爣绛� */
#pnWrap .dc-set-row {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin: 3px 0;
}
#pnWrap .dc-set-lab {
	flex: 0 0 28px;
	font-size: 11px;
	color: #98a2b3;
}


/* 鍥涘紶绠楁硶鍗＄殑閫変腑鎬侊紙鍚� .dc-kpi.active 鐨勮瑙夎瑷�锛氭祬钃濆簳 + 娣¤摑澶栧彂鍏夛級
   鈿� 涓嶇敤 var(--pn-blue)锛氭湰鏂囦欢鏈畾涔夎鍙橀噺锛�28 澶� var(- -pn-*) 鍧囦负鎹熷潖褰㈠紡浼氳涓㈠純锛�
   鏁呯敤瀛楅潰鑹插�硷紱鑹茬浉鍙� .dc-kpi.active 澶栧彂鍏夌殑鍚屾簮 rgb(28,108,181)銆� */
#pnWrap #pnCardStat .dim-item[data-on="1"] {
	background: #f2f5ff;
	border-radius: 6px;
	box-shadow: 0 0 0 1px rgba(28, 108, 181, .55), 0 0 0 4px rgba(28, 108, 181, .18);
}


#pnWrap .dc-pool-tip {
	font-size: 10.5px;
	color: var(- -pn-txt3);
	margin-top: 4px;
}

#pnWrap .dc-btn {
	height: 28px;
	padding: 5 12px;
	font-size: 12px;
	border: 1px solid var(- -pn-blue);
	color: var(- -pn-blue);
	background: #fff;
	border-radius: 6px;
	cursor: pointer;
	font-family: inherit;
	transition: .15s;
}

#pnWrap .dc-btn:hover {
	background: var(- -pn-blue);
	color: #fff;
}

/* ---------- 鏄庣粏琛� ---------- */
#pnWrap .sumwrap {
	max-height: 640px;
	overflow: auto;
	border: 1px solid var(- -pn-line);
	border-radius: 6px;
}

#pnWrap table.pn-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 11.5px;
	table-layout: fixed;
	margin: 0;
}

#pnWrap table.pn-table th, #pnWrap table.pn-table td {
	padding: 3px 5px;
	border-bottom: 1px solid #f0f2f4;
	border-right: 1px solid #f2f4f6;
	vertical-align: middle;
}

#pnWrap table.pn-table thead th {
	background: #F4F5F7;
	text-align: left;
	padding: 5px 7px;
	font-weight: 600;
	color: #3d444d;
	white-space: normal;
	line-height: 1.25;
}

#pnWrap table.pn-table thead tr.grp th {
	background: #eef1f5;
	font-size: 11px;
	color: #5a626d;
	text-align: center;
	padding: 3px 4px;
	border-bottom: 1px solid #dfe3e8;
	font-weight: 600;
	white-space: nowrap;
}

#pnWrap table.pn-table thead tr.grp th.g1 {
	background: #fbeceb;
	color: #a4453c;
}

#pnWrap table.pn-table thead tr.grp th.g2 {
	background: #ebf2fa;
	color: #2a6bab;
}

#pnWrap table.pn-table thead tr.grp th.g3 {
	background: #ebf6f0;
	color: #1e7a52;
}

#pnWrap table.pn-table thead tr.grp th.g4 {
	background: #faf2e4;
	color: #8a5000;
}
#pnWrap table.pn-table thead tr.grp th.g5 {
	background: #f3eefa;
	color: #6b4fa8;
}

/* \u660e\u7ec6\u8868 \u00b7 \u7b97\u6cd5\u680f\uff082026-09-22 \u98de\u54e5\uff09\uff1a\u4e0a\u884c = \u53c2\u4e0e\u6570\uff0c\u4e0b\u884c = \u5f0f\u5b50\uff08\u5c0f\u7070\u5b57\uff0c\u957f\u5f0f\u5b50\u6298\u884c\u4e0d\u88c1\uff09 */
#pnWrap td.alg {
	white-space: normal;
	line-height: 1.4;
}

#pnWrap td.alg code {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	background: transparent;
	padding: 0;
	font-size: 11px;
	color: #3d444d;
}

#pnWrap td.alg .cellsub {
	white-space: normal;
	overflow: visible;
	line-height: 1.32;
}

#pnWrap table.pn-table thead tr:nth-child(2) th {
	position: sticky;
	top: 0;
	z-index: 3;
}

#pnWrap table.pn-table tbody tr:hover td {
	background: #fafbfc;
}

#pnWrap table.pn-table td.num, #pnWrap table.pn-table th.num {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* 2026-09-23 椋炲摜锛�#pnBody 绗� 1 鍒楋紙鍏ㄥ眬搴忓彿 r.no锛変細鍒� 5 浣嶆暟
   锛堝疄娴嬪叏閫� 43,080 娉� / qid 26108 鍗曟湡 19,806 娉級锛屽師 30px 鏀句笉涓嬩笖浼氭尋鍘嬨��
   鍒楀瑙� osx-daletouDB.js pnTableHtml 鐨� cols[0]锛涙澶勪繚璇佷笉鎹㈣銆佺瓑瀹芥暟瀛椼�佷笌鍙虫牸鐣欑櫧銆�
   2026-09-24 椋炲摜锛氬簭鍙峰垪鍐嶆敹绐� 鈥斺�� 宸﹀彸鍐呰竟璺� 8鈫�4px锛堝垪瀹� cols[0] 60鈫�48px锛屽唴鏂囧彲鐢� 39px锛夈�� */
#pnWrap table.pn-table td.pn-no,
#pnWrap table.pn-table th.pn-no {
	white-space: nowrap;
	padding-left: 4px;
	padding-right: 4px;
	font-variant-numeric: tabular-nums;
	color: #9aa1ab;
}

#pnWrap table.pn-table td.bl {
	white-space: nowrap;
	overflow: hidden;
}

#pnWrap .cellsub {
	display: block;
	font-size: 10px;
	color: #a2a9b3;
	line-height: 1.25;
	white-space: nowrap;
	overflow: hidden;
}

#pnWrap .cellsub.p-hi {
	color: #c0392b;
}

#pnWrap .cellsub.p-lo {
	color: #1c6cb5;
}

#pnWrap table.pn-table td.v-hi {
	color: #c0392b;
	font-weight: 600;
}

#pnWrap table.pn-table td.v-lo {
	color: #1c6cb5;
}

#pnWrap code {
	font-family: Consolas, monospace;
	font-size: 11px;
	background: #f2f4f7;
	padding: 0 3px;
	border-radius: 2px;
	color: #3d444d;
}

/* ---------- 鍙风爜鐞� ---------- */
#pnWrap .ball {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 600;
	color: #fff;
	margin-right: 3px;
}

#pnWrap .ball.sm {
	width: 18px;
	height: 18px;
	font-size: 10px;
	margin-right: 2px;
}

#pnWrap .ball.b-f {
	background: #d9534f;
}

#pnWrap .ball.b-b {
	background: #3d92c9;
}

/* ---------- 鏍囩 ---------- */
#pnWrap .tag {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 3px;
	font-size: 11px;
	border: 1px solid;
	vertical-align: 1px;
}

#pnWrap .t-ok {
	background: #eaf7f0;
	color: #1e8e5a;
	border-color: #c3e8d5;
}

#pnWrap .t-warn {
	background: #fdf5e3;
	color: #b7791f;
	border-color: #f0dcae;
}

#pnWrap .t-bad {
	background: #fdecea;
	color: #c0392b;
	border-color: #f5c6c0;
}

#pnWrap .t-info {
	background: #eaf2fb;
	color: #1c6cb5;
	border-color: #c8ddf3;
}

/* ---------- 璇存槑鍧� ---------- */
#pnWrap .pn-empty {
	padding: 22px;
	text-align: center;
	color: var(- -pn-txt3);
	font-size: 12.5px;
	display: none;
}

#pnWrap .pn-legend {
	font-size: 11px;
	color: var(- -pn-txt3);
	margin-top: 6px;
	line-height: 1.7;
}

#pnWrap .pn-warn {
	background: #fdf8ef;
	border: 1px solid #f0dcae;
	border-left: 3px solid var(- -pn-amber);
	border-radius: 5px;
	padding: 8px 11px;
	font-size: 12px;
	color: #6b5218;
	margin-top: 10px;
	line-height: 1.75;
}

#pnWrap .pn-cap {
	font-size: 11px;
	color: var(- -pn-txt3);
	margin-top: 6px;
	line-height: 1.6;
}

#pnWrap h6.pn-h {
	margin: 10px 0 8px;
	font-weight: 600;
	font-size: 13.5px;
	color: #2b3038;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* 2026-09-19锛坆c 椋炲摜瑕佹眰锛夛細閫愭敞鏄庣粏琛ㄥ垎椤垫潯 */
#pnWrap .pn-pager {
	margin-top: 8px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 12px;
	color: #6b7280;
}
#pnWrap .pn-pager .pn-pg-info b { color: #1f2329; }
#pnWrap .pn-pager .pn-pg-btns { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
#pnWrap .pn-pager .pn-pg-b,
#pnWrap .pn-pager .pn-pg-n {
	display: inline-block;
	min-width: 24px;
	padding: 2px 7px;
	text-align: center;
	border: 1px solid #cfd6de;
	border-radius: 4px;
	background: #fff;
	color: #5b6168;
	font-size: 12px;
	line-height: 18px;
	text-decoration: none;
}
#pnWrap .pn-pager .pn-pg-b:hover,
#pnWrap .pn-pager .pn-pg-n:hover { border-color: #1F3BB3; color: #1F3BB3; }
#pnWrap .pn-pager .pn-pg-n.on { background: #1F3BB3; border-color: #1F3BB3; color: #fff; }
#pnWrap .pn-pager .pn-pg-b.dis { color: #b6bcc4; border-color: #e3e6ea; background: #fafbfc; cursor: not-allowed; }

#pnWrap .pn-cal {
	width: 100%;
	border-collapse: collapse;
	font-size: 11.5px;
}

#pnWrap .pn-cal th {
	background: #F4F5F7;
	text-align: left;
	padding: 5px 7px;
	font-weight: 600;
	color: #3d444d;
	border-bottom: 1px solid var(- -pn-line);
}

#pnWrap .pn-cal td {
	padding: 4px 7px;
	border-bottom: 1px solid #f0f2f4;
	vertical-align: top;
	line-height: 1.6;
}

#pnWrap .pn-cal td.lg {
	color: var(- -pn-txt3);
	font-size: 11px;
}

/* ============================================================
   G0~G5 鍏缁撴灉琛紙2026-09-17 鏂藉伐锛�
   鐗堝紡鐓� daletouCombo锛氭暟鍊奸�愭潯鎼嚜 combo.css 鐨�
   .dc-wrap table / .dc-wrap th,td / .dc-wrap th / .dc-wrap tr:hover td /
   .dc-tblwrap锛堝皝椤跺唴婊� + 琛ㄥご鍚搁《锛夛紝鏀瑰啓鎴� #gxTblWrap 闄愬畾锛�
   涓嶅紩鍏� combo.css锛岄伩鍏嶅奖鍝嶆湰椤靛叾瀹冨尯鍧椾笌 Bootstrap 鍏ㄥ眬
   ============================================================ */
#gxTblWrap {
	max-height: 520px;
	overflow: auto;
}

#gxTblWrap table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 12px;
}

#gxTblWrap th, #gxTblWrap td {
	border-bottom: 1px solid #eee;
	text-align: center;
}

#gxTblWrap th {
	background: #f3f5f8;
	color: #555;
	font-weight: 600;
}

#gxTblWrap thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	box-shadow: inset 0 -1px 0 #e3e8ef;
}

#gxTblWrap tbody tr:hover td {
	background: #f7f9fc;
}
/* 鏈熷彿鍒楃敤 combo 鐨� .dc-qid 鍚岃壊 */
#gxTblWrap td.gx-qid {
	color: #1F3BB3;
	font-weight: 600;
}
/* 鍙岃鍗曞厓鏍间笅鎺� / 绠楁硶鍚嶅皬瀛� */
#gxTblWrap .gx-sub {
	font-size: 11px;
	color: #98a2b3;
}

#gxTblWrap .gx-name {
	font-size: 10px;
	color: #98a2b3;
}

#gxTblWrap .gx-empty {
	color: #bbb;
}

/* ---------- 鍛戒腑鍒嗙粍鐭╅樀锛堝鍏ョ孩 / 绠楁硶钃濓級 ---------- */
#pnWrap .pn-matrix { margin-top: 14px; }
#pnWrap .pn-matrix .pn-h { margin: 12px 0 6px; }
#pnWrap table.pn-mtx {
	width: auto;
	border-collapse: collapse;
	font-size: 12px;
	table-layout: fixed;
}
#pnWrap table.pn-mtx th, #pnWrap table.pn-mtx td {
	border: 1px solid #e3e6ea;
	padding: 5px 12px;
	text-align: center;
	vertical-align: middle;
}
#pnWrap table.pn-mtx thead th {
	background: #F4F5F7;
	font-weight: 600;
	color: #3d444d;
}
#pnWrap table.pn-mtx th.corner { background: #eef1f5; }
#pnWrap table.pn-mtx td .m-imp {
	display: block;
	color: #c0392b;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.3;
}
#pnWrap table.pn-mtx td .m-gx {
	display: block;
	color: #1c6cb5;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.3;
}
#pnWrap table.pn-mtx td.prize { background: #fff7e6; }
#pnWrap table.pn-mtx td .m-tier {
	display: block;
	font-size: 10px;
	color: #8a5000;
	margin-top: 1px;
}
#pnWrap .pn-matrix-foot {
	margin-top: 6px;
	font-size: 11px;
	color: #6b7280;
}
#pnMatrix .pn-dims4 {
	margin-top: 14px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
#pnMatrix .pn-dim {
	border: 1px solid #e3e6ea;
	border-radius: 8px;
	padding: 10px 12px;
	background: #fff;
}
#pnMatrix .pn-dim-h {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
	margin-bottom: 8px;
}
#pnMatrix .pn-dim-sub {
	font-weight: 400;
	font-size: 11px;
	color: #6b7280;
	margin-left: 6px;
}
/* 2026-09-19锛坅x锛夛細鍗″唴鍓嶅悗鍖烘敼妯帓 9 鏍硷紙鍗曡〃涓よ锛夛紝涓嶅啀宸﹀彸鍒嗘爮 */
#pnMatrix .pn-fb {
	display: block;
}
#pnMatrix .pn-fb-block {
	flex: 1;
	min-width: 0;
}
#pnMatrix .pn-fb-t {
	font-size: 11px;
	color: #9ca3af;
	margin-bottom: 4px;
}
#pnMatrix table.pn-fbt {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;   /* 妯帓 9 鏍肩瓑鍒� */
}
#pnMatrix table.pn-fbt th {
	text-align: center;
	font-weight: 400;
	color: #6b7280;
	font-size: 11px;
	padding: 2px 2px;
	white-space: nowrap;
}
#pnMatrix table.pn-fbt td {
	text-align: center;
	font-size: 13px;
	padding: 2px 2px;
}
#pnMatrix table.pn-fbt td.m-imp {
	color: #c0392b;
	font-weight: 600;
}
#pnMatrix table.pn-fbt td.m-gx {
	color: #1c6cb5;
	font-weight: 600;
}
/* ax锛氭í鎺掑悗婊″懡涓牸鏍囬粍锛堝師 tr.hi 鏁磋楂樹寒涓嶅啀閫傜敤锛屾敼 td.hi锛� */
#pnMatrix table.pn-fbt td.hi {
	background: #fff7e6;
}
/* ax锛氬悗鍖轰笁鏍煎乏渚у姞鍒嗛殧绾匡紝妯帓涓嬪尯鍒嗗墠/鍚庡尯 */
#pnMatrix table.pn-fbt .pn-fbt-sp {
	border-left: 1px solid #e5e7eb;
}
#pnMatrix .pn-dim-foot {
	font-size: 11px;
	color: #6b7280;
	margin-top: 6px;
}
/* 2026-09-19锛坆b 椋炲摜瑕佹眰锛夛細鍛戒腑鍒嗙粍鍥涘崱鏌辩姸鍥剧敱妯悜鏉℃敼銆岀珫鍚戞煴路鑷簳閮ㄥ悜涓婄敓闀裤�� */
#pnMatrix .pn-dims4 {
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
#pnMatrix .pn-bars {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 3px;
}
#pnMatrix .pn-barow {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
#pnMatrix .pn-barow.sep {
	border-left: 1px solid #e5e7eb;
	padding-left: 3px;
}
#pnMatrix .pn-barow.hi .pn-blab {
	color: #b45309;
	font-weight: 700;
}
#pnMatrix .pn-blab {
	flex: none;
	margin-top: 4px;
	text-align: center;
	font-size: 11px;
	color: #6b7280;
	white-space: nowrap;
}
#pnMatrix .pn-btrk {
	position: relative;
	flex: none;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 130px;
	background: #f2f4f7;
	border-radius: 3px;
}
#pnMatrix .pn-btrk > i.pn-bar {
	position: relative;
	display: block;
	width: 100%;
	box-sizing: border-box;
	border-radius: 3px 3px 0 0;
	background: linear-gradient(180deg, #1c6cb5, #5b8fd6);
}
/* bi锛�2026-09-19 椋炲摜瑕佹眰锛夛細鍓嶅尯鍚勬。鏌变綋鏀圭孩鑹诧紝鍚庡尯淇濇寔钃濊壊 */
#pnMatrix .pn-barow.fg .pn-btrk > i.pn-bar {
	background: linear-gradient(180deg, #c0392b, #e0705f);
}
#pnMatrix .pn-btrk > i.pn-bar > span.pn-btxt {
	position: absolute;
	bottom: 4px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 12px;
	line-height: 1.1;
	letter-spacing: -0.2px;
	text-align: center;
	color: #fff;
	white-space: nowrap;
}
#pnMatrix .pn-btrk > i.pn-bar.out > span.pn-btxt {
	bottom: calc(100% + 3px);
	color: #4b5563;
}

/* ===== 2026-09-18 绗�2椤癸細dblist 鍕鹃�夋壒娆� 鈫� 鍥涚淮姹囨�婚潤鎬佸垎鏋愶紙#xuanzhequ 闄愬畾锛� ===== */
#xuanzhequ .card-body { position: relative; }
/* 鎮诞鎸夐挳缁勶細缁濆瀹氫綅褰撴湡鍙风爜琛屽彸涓婏紝涓嶅崰甯冨眬绌洪棿 */
#stFloat { position: absolute; top: 14px; right: 16px; display: flex; gap: 6px; background: rgba(255,255,255,.96); padding: 3px 6px; border-radius: 6px; box-shadow: 0 1px 6px rgba(0,0,0,.16); z-index: 5; }
#stFloat .dc-btn { padding: 3px 12px; }
#stFloat .dc-btn.on { background: #1c6cb5; border-color: #1c6cb5; color: #fff; }
#stSummary { margin-top: 8px; font-size: 12px; color: #6b7280; padding: 5px 10px; background: #fbfcfd; border: 1px solid #e3e6ea; border-radius: 5px; display: inline-block; }
#stSummary b { color: #1f2329; }
#stBox .st-empty { color: #bbb; font-size: 12px; padding: 26px 0; text-align: center; }
#stBox .st-chart { margin-top: 12px; }
#stBox .st-chart-title { font-size: 12.5px; color: #1f2329; font-weight: 600; margin-bottom: 8px; }
#stBox { min-height: 460px; }
#stBox .st-gridwrap { width: 75%; margin: 0 auto; overflow-x: auto; }
/* 鍜屽�兼柟鏍煎浘鍘嬬缉鍗� 3/4 瀹藉眳涓紙20260918k锛� */
#stBox .st-grid { display: grid; gap: 4px; }
#stBox .st-ghead { font-size: 10px; color: #9aa1ab; text-align: center; line-height: 13px; }
#stBox .st-growlabel { display: flex; align-items: center; justify-content: flex-end; padding-right: 4px; font-size: 10px; color: #9aa1ab; white-space: nowrap; }
#stBox .st-cell { position: relative; height: 16px; border: 1px solid #eceff2; border-radius: 4px; background: #f4f5f7; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
#stBox .st-cell .gv { font-size: 10px; font-weight: 700; line-height: 1; color: #1f2329; }
#stBox .st-cell .gc { position: absolute; right: 3px; bottom: 1px; font-size: 7px; line-height: 1; color: #9aa1ab; }
#stBox .st-cell.lv1 { background: #eaf3fb; border-color: #dbe9f6; }
#stBox .st-cell.lv2 { background: #bcd8f0; border-color: #a9cbe9; }
#stBox .st-cell.lv3 { background: #7fb3e0; border-color: #6ea6d8; }
#stBox .st-cell.lv4 { background: #f0a366; border-color: #e5924f; }
#stBox .st-cell.lv5 { background: #d94f2b; border-color: #c9431f; }
#stBox .st-cell.lv3 .gv, #stBox .st-cell.lv4 .gv, #stBox .st-cell.lv5 .gv { color: #fff; }
#stBox .st-cell.lv3 .gc, #stBox .st-cell.lv4 .gc, #stBox .st-cell.lv5 .gc { color: rgba(255,255,255,.85); }
#stBox .st-cell.blank { background: transparent; border: 1px dashed #eef1f4; }
#stBox .st-leg { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 11.5px; color: #6b7280; flex-wrap: wrap; }
#stBox .st-leg i { width: 16px; height: 11px; border-radius: 2px; display: inline-block; border: 1px solid #e0e3e7; }
#stBox .st-bars { display: flex; align-items: flex-end; gap: 6px; border-bottom: 1px solid #e3e6ea; padding: 0 10px; }
#stBox .st-barcol { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-width: 0; }
#stBox .st-bar { width: 100%; max-width: 34px; background: #1c6cb5; border-radius: 3px 3px 0 0; min-height: 2px; }
#stBox .st-bartop { display: block; text-align: center; font-size: 10px; color: #1c6cb5; font-weight: 400; margin-bottom: 2px; line-height: 1.1; }
#stBox .st-barlab { font-size: 10px; color: #6b7280; margin-top: 4px; white-space: nowrap; }
/* 2026-09-19锛氭煴澶氭椂锛堝 66 缁勫悗鍖洪厤瀵癸級妯悜鍙粴锛屾爣绛句笉浜掔浉鍘嬪彔 */
#stBox .st-bars-x { overflow-x: auto; padding-bottom: 4px; }
#stBox .st-bars-x .st-barcol { flex: 1 1 0; min-width: 26px; }
/* 2026-09-19锛氬叡鐜板浘锛圱op20锛夋煴缁勫崰 3/4 瀹藉眳涓紝姣旈摵婊℃暣琛岀揣鍑戯紙鍚� .st-bars-c 鎬濊矾锛� */
#stBox #b-st-co { width: 75%; margin: 0 auto; }
#stBox .st-two { display: flex; gap: 10px; margin-top: 14px; flex-wrap: nowrap; align-items: stretch; }
#stBox .st-two > div { min-width: 0; border: 1px solid #e3e6ea; border-radius: 6px; padding: 10px 12px; }
#stBox .st-two > div:first-child { flex: 35 1 0; }
#stBox .st-two > div:nth-child(2) { flex: 12 1 0; }
#stBox .st-two .st-bars { gap: 2px; overflow-x: auto; padding-bottom: 2px; }
#stBox .st-two .st-barcol { flex: 1 1 0; min-width: 0; }
#stBox .st-two .st-bar { width: 100%; max-width: 34px; }
#stBox .st-two .st-barlab { font-size: 8px; }
#stBox .st-h4 { font-size: 12.5px; color: #1f2329; margin-bottom: 8px; font-weight: 600; }
#stBox .st-bar.lv1 { background: #eaf3fb; }
#stBox .st-bar.lv2 { background: #bcd8f0; }
#stBox .st-bar.lv3 { background: #7fb3e0; }
#stBox .st-bar.lv4 { background: #f0a366; }
#stBox .st-bar.lv5 { background: #d94f2b; }


/* 椤堕儴缁村害鍥撅紙璺ㄥ害/鍖烘瘮/濂囧伓锛夋煴浣撳浐瀹氱瓑瀹藉苟灞呬腑锛屽乏鍙崇暀鐧藉钩鍧囷紙20260918g锛� */
/* 椤堕儴缁村害鍥炬煴缁勫崰 2/3 瀹藉眳涓紝鏌变綋鍧囧垎鍙樺锛�20260918j锛� */
#stBox .st-bars-c { justify-content: center; flex-wrap: nowrap; width: 66%; margin: 0 auto; }
#stBox .st-bars-c .st-barcol { flex: 1 1 0; min-width: 0; }
#stBox .st-bars-c .st-bar { width: 100%; }


/* 缁村害鍥炬爣棰樺唴鑱斿湪褰撴湡鍙风爜鍚庯紙20260918i锛� */
#stChartTitle { font-size: 12px; color: #6b7280; margin-left: 8px; line-height: 30px; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 2026-09-18n 鍖哄鍚堝苟鍥撅細涓ゅ瓙缁勬寜鏌辨暟 3:2 鍒嗛厤绌洪棿锛屾暣缁勫崰 2/3 灞呬腑 */
/* 2026-09-19锛坆s 椋炲摜瑕佹眰锛夛細涓ゅ浘涔嬮棿鐨勯棿闅旀媺澶� 12 -> 24px锛涙煴瀹戒竴鑷存�х敱 JS stQjFlex 鍒嗛厤 flex-grow */
#stBox .st-qj-wrap { width: 66%; margin: 0 auto; display: flex; gap: 24px; align-items: flex-end; }
#stBox .st-qj-grp { min-width: 0; display: flex; flex-direction: column; flex: 1 1 0; }
#stBox .st-qj-cap { font-size: 11.5px; color: #6b7280; margin-bottom: 6px; text-align: center; }
#stBox .st-qj-bars { gap: 6px; }
#stBox .st-qj-bars .st-barcol { flex: 1 1 0; min-width: 0; }
#stBox .st-qj-bars .st-bar { width: 100%; max-width: 34px; }


/* ============================================================
   2026-09-19锛坆o 椋炲摜瑕佹眰锛夛細绁ㄩ潰璇嗗埆杩涘害鏉� #batchProgressWrap 鈥斺�� 鏈紑濮嬶紙榛樿锛夊簲涓恒�屾暣鏉＄函鐏板簳銆嶏紝
   涓嶅甫钃濇潯銆佷笉甯� 0 / 0銆�
   鏍瑰洜锛�.progress-bar 鏄� bootstrap 钃濆簳 #0d6efd锛�.progress 鎵嶆槸鐏板簳 #e9ecef锛夛紱
        鍦� box-sizing:border-box 涓嬶紝鍐呰仈 width:0% 鎸′笉浣� padding-right:6px锛�
        浼氳鎾戝嚭涓�鏉″疄娴� 6px 鐨勮摑鏉★紙鏂囧瓧鍒欒 overflow:hidden 瑁佹帀锛夈��
   鍋氭硶锛氭棤鍐呭锛�:empty锛夋椂鎶婂彸鍐呰竟璺濆綊 0 鈬� 瀹� 0锛岃摑鏉′笉鍙锛屽彧鍓╃伆搴曪紱
        涓�鏃﹀啓鍏ヨ繘搴︽枃瀛楋紙濡� "12 / 40"锛夊嵆鑷姩澶嶅師 6px 鍐呰竟璺濓紝璇嗗埆涓殑瑙傛劅涓嶅彉銆�
   ============================================================ */
#batchProgressWrap #batchProgress { padding-right: 6px; }
#batchProgressWrap #batchProgress:empty { padding-right: 0; }
/* ============================================================
   2026-09-21锛堥鍝ヨ姹傦級锛氥�岀畻娉曠敓鎴愬崱銆嶄笌銆屽懡涓垎缁勩�嶄袱寮犲崱鐗囧彸涓婅鐨勪笁瑙掓姌鍙犳寜閽��
   鐐瑰嚮鍙殣钘忓崱鐗囧唴瀹癸紙#gxCardBox / #pnMatrix锛夛紝鐧芥涓庢爣棰樹繚鐣欙紱
   灞曞紑鎬佷笁瑙掑悜涓� 鈻撅紝鏀惰捣鎬佸悜鍙� 鈻革紙鏂囧瓧鐢� JS 鍐欏叆锛夈��
   闅愯棌鐢� JS 鏀� style.display锛屾澶勫彧绠℃寜閽瑙傦紙涓嶅姩 class锛夈��
   甯冨眬锛歮argin-left:auto 鎶婃寜閽帹鍒版爣棰樿鏈�鍙筹紙涓や釜鏍囬琛屽潎涓� flex锛夈��
   ============================================================ */
.pn-fold-btn {
	margin-left: auto;
	flex: 0 0 auto;
	background: transparent;
	border: 1px solid #d7dbe7;
	border-radius: 6px;
	color: #1F3BB3;
	font-size: 12px;
	line-height: 1;
	padding: 3px 8px;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}
.pn-fold-btn:hover {
	border-color: #1F3BB3;
}
/* AA-19 鍘嗗彶鍖归厤寮圭獥锛�2026-09-23锛�*/
.pn-modal-mask { display: none; position: fixed; left: 0; top: 0; right:0; bottom: 0; background: rgba(0,0,0,0.45); z-index: 1050; align-items: center; justify-content: center; }
.pn-modal { background: #fff; border-radius: 6px; box-shadow: 0 8px 30px rgba(0,0,0,0.25); max-width: 92vw; max-height: 86vh; overflow: auto; }
#pnMatchModal .pn-modal { width: 820px; }
/* 2026-09-23 \u98de\u54e5\uff08\u7b2c\u4e03\u8f6e\uff09\uff1a\u5386\u53f2\u5339\u914d\u5f39\u7a97\u5bbd\u5ea6\u6536\u7a84\u5230 820px
   \u2014\u2014 A \u65b9\u6848\uff08\u8868\u683c 100% \u6491\u6ee1\uff09+ \u5bb9\u5668\u53d8\u7a84 = \u770b\u8d77\u6765\u7cbe\u81f4\u3002
   \u7528\u5c5e\u6027\u9009\u62e9\u5668\u53ea\u547d\u4e2d pnMatchModal\uff0c\u4e0d\u5f71\u54cd\u5176\u5b83\u7528 .pn-modal \u7684\u5f39\u7a97\u3002 */
/* 2026-09-23 \u98de\u54e5\uff08\u7b2c\u4e03\u8f6e\uff09\uff1a\u5386\u53f2\u5339\u914d\u5f39\u7a97\u5bbd\u5ea6\u6536\u7a84\u5230 820px
   \u2014\u2014 A \u65b9\u6848\uff08\u8868\u683c 100% \u6491\u6ee1\uff09+ \u5bb9\u5668\u53d8\u7a84 = \u770b\u8d77\u6765\u7cbe\u81f4\u3002
   \u7528\u5c5e\u6027\u9009\u62e9\u5668\u53ea\u547d\u4e2d pnMatchModal\uff0c\u4e0d\u5f71\u54cd\u5176\u5b83\u7528 .pn-modal \u7684\u5f39\u7a97\u3002 */
.pn-modal-hd { display: flex; justify-content: space-between; align-items: center; padding: 10px 16px; border-bottom: 1px solid #eee; font-weight: 600; }
.pn-modal-x { cursor: pointer; font-size: 20px; line-height: 1; color: #999; padding: 0 6px; }
.pn-modal-sub { padding: 6px 16px; color: #666; font-size: 12px; }
.pn-modal-ft { padding: 8px 16px; border-top: 1px solid #eee; color: #999; font-size: 12px; text-align: right; }
.pn-link { color: #1a73e8; cursor: pointer; text-decoration: underline dotted; }
.pn-link:hover { color: #0b57d0; }

/* 2026-09-24 single/fushi mode header bar + fushi merged-row blank cells */
#pnWrap .dim-head {
	font-size: 12px;
	font-weight: 700;
	color: #2a9d8f;
	margin: 8px 0 4px;
	padding-bottom: 3px;
	border-bottom: 1px dashed #d7e3e0
}
.pn-table td.pn-na { color: #c8cdd6; text-align: center }
/* ==================== daletouDB.jsp 寰呭畾淇寮圭獥 / 閲嶅鏍稿锛�2026-09-24 鐢� daletouDB.jsp 鍐呰仈 style 鍧楁暣浣撳绉伙紱瑙勫垯鍏ㄩ儴 .pn-pend-* / .pn-dup-* / .pn-btn* / #pnPendingBody 闄愬畾锛屼笉褰卞搷 combo 椤碉級 ==================== */
/* 寰呭畾(璇嗗埆閿欒)淇寮圭獥鏍峰紡锛�2026-09-21 椋炲摜锛氬崱鐗囧埢 + 绌烘牸鍒嗛殧鍙风爜褰曞叆锛� */
#pnPendingBody { padding-right: 2px }
.pn-pend-card { border: 1px solid #e6e9ef; border-radius: 10px; background: #fff;
  margin-bottom: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.04) }
.pn-pend-hd { display: flex; align-items: center; gap: 8px;
  background: #f7f9fc; border-bottom: 1px solid #eef1f5; padding: 8px 12px }
.pn-pend-no { flex: 0 0 auto; min-width: 20px; height: 20px; line-height: 20px;
  text-align: center; border-radius: 50%; background: #1F3BB3; color: #fff;
  font-size: 11px; font-weight: 700; padding: 0 5px }
.pn-pend-tag { flex: 0 0 auto; font-size: 11px; padding: 2px 8px; border-radius: 10px;
  background: #eef2ff; color: #1F3BB3; border: 1px solid #d6ddf7 }
.pn-pend-tag.multi { background: #fff5e9; color: #b06a00; border-color: #f5dcb8 }
.pn-pend-meta { margin-left: auto; font-size: 11px; color: #9aa3b0 }
.pn-pend-bd { display: flex; gap: 14px; padding: 12px; align-items: flex-start }
.pn-pend-pic { flex: 0 0 300px; max-width: 300px }
.pn-pend-pic img { width: 100%; max-height: 300px; object-fit: contain;
  border: 1px solid #e6e9ef; border-radius: 6px; background: #fafbfc; display: block }
.pn-pend-form { flex: 1; min-width: 0 }
.pn-pend-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px }
.pn-pend-row label { flex: 0 0 62px; font-size: 13px; color: #5f6b7a }
.pn-pend-in { flex: 1; min-width: 0; max-width: 300px; padding: 6px 10px; font-size: 14px;
  font-family: Consolas, Menlo, monospace; letter-spacing: 1px; color: #1f2937;
  border: 1px solid #ccd2dc; border-radius: 6px; background: #fff }
.pn-pend-in:focus { outline: none; border-color: #1F3BB3; box-shadow: 0 0 0 2px rgba(31,59,179,.10) }
.pn-pend-in.short { max-width: 120px }
.pn-pend-err { min-height: 18px; font-size: 12px; color: #d9534f; margin: 2px 0 6px }
.pn-pend-act { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap }
.pn-btn { font-size: 13px; padding: 6px 16px; border-radius: 6px; cursor: pointer; border: 1px solid transparent }
.pn-btn-ok { background: #1F3BB3; color: #fff }
.pn-btn-ok:hover { background: #18308f }
.pn-btn-del { background: #fff; color: #d9534f; border-color: #e8b4b4 }
.pn-btn-del:hover { background: #fdf2f2 }
.pn-pend-link { display: inline-block; min-width: 22px; padding: 1px 8px; border-radius: 10px;
  font-size: 12px; background: #fff3e0; color: #b06a00; border: 1px solid #f5dcb8; text-decoration: none }
.pn-pend-link:hover { background: #ffe9cc; color: #8a5200; text-decoration: none }
.pn-pend-zero { color: #c8ced8 }
/* 2026-09-23 椋炲摜锛氬緟瀹氬脊绐楀唴銆岀枒浼煎悓绁ㄩ噸澶嶃�嶆牳瀵癸紙鏁版嵁鏁村悎鍏变韩锛� */
.pn-dup-bar { display: flex; align-items: center; gap: 10px; margin: 0 0 12px 0;
  padding: 10px 14px; border-radius: 8px; background: #FFF5E9; border: 1px solid #F5DCB8 }
.pn-dup-bar.none { background: #F1FAF3; border-color: #C9E9D2 }
.pn-dup-ico { flex: 0 0 auto; min-width: 22px; height: 22px; line-height: 22px; text-align: center;
  border-radius: 50%; background: #B06A00; color: #fff; font-size: 12px; font-weight: 700 }
.pn-dup-bar.none .pn-dup-ico { background: #2E7D4F }
.pn-dup-txt { flex: 1; min-width: 0 }
.pn-dup-t1 { font-size: 13px; font-weight: 700; color: #8A5200 }
.pn-dup-bar.none .pn-dup-t1 { color: #2E7D4F }
.pn-dup-t2 { font-size: 11.5px; color: #B06A00; margin-top: 2px }
.pn-dup-bar.none .pn-dup-t2 { color: #4E8C68 }
.pn-dup-tg { flex: 0 0 auto; font-size: 12px; padding: 5px 14px; border-radius: 14px;
  background: #B06A00; color: #fff; border: none; cursor: pointer }
.pn-dup-tg:hover { background: #8A5200 }
.pn-dup-wrap { margin: 0 0 14px 0; padding: 12px; border-radius: 8px;
  background: #F8FAFF; border: 1px dashed #D6DDF7 }
.pn-dup-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 10px }
.pn-dup-hd b { font-size: 13px; color: #1F3BB3 }
.pn-dup-pill { font-size: 11px; padding: 2px 9px; border-radius: 10px;
  background: #E8F5E9; color: #2E7D4F; border: 1px solid #B7DFC0 }
.pn-dup-pill.warn { background: #FFF5E9; color: #B06A00; border-color: #F5DCB8 }
.pn-dup-cols { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap }
.pn-dup-pic { flex: 0 0 210px; max-width: 210px; border: 1.5px solid #1F3BB3; border-radius: 6px;
  padding: 5px; background: #fff }
.pn-dup-pic.is-b { border-color: #D9534F }
.pn-dup-pic img { width: 100%; max-height: 210px; object-fit: contain; display: block;
  border-radius: 4px; background: #fafbfc }
.pn-dup-cap { font-size: 10.5px; color: #1F3BB3; text-align: center; margin-bottom: 4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.pn-dup-pic.is-b .pn-dup-cap { color: #D9534F }
.pn-dup-list { flex: 1; min-width: 220px; max-height: 230px; overflow: auto;
  border: 1px solid #E6E9EF; border-radius: 6px; background: #fff; padding: 6px 8px }
.pn-dup-li { display: flex; align-items: center; gap: 6px; font-size: 11.5px;
  padding: 3px 0; border-bottom: 1px dotted #F0F2F5 }
.pn-dup-li:last-child { border-bottom: none }
.pn-dup-li code { flex: 1; font-family: Consolas, Menlo, monospace; color: #1f2937;
  font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.pn-dup-li i { font-style: normal; font-size: 10.5px; padding: 1px 7px; border-radius: 8px;
  background: #E8F5E9; color: #2E7D4F }
.pn-dup-ft { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px;
  padding-top: 8px; border-top: 1px dashed #E6E9EF }
.pn-dup-note { font-size: 11px; color: #9AA3B0; margin-right: auto; align-self: center }
