.yd-bridge-card{border-color:#cfe8e5;background:linear-gradient(145deg,#fff 0%,#f3fbfa 100%)}
.yd-bridge-panel{margin:0 0 18px;border:1px solid #cfe8e5;background:#fff;border-radius:18px;box-shadow:0 14px 36px rgba(21,95,87,.09);overflow:hidden}
.yd-bridge-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:20px 22px;border-bottom:1px solid #e0efed;background:linear-gradient(120deg,#effaf8,#fff)}
.yd-bridge-head h2{margin:4px 0 7px;font-size:21px;color:#173a36}.yd-bridge-head p{margin:0;color:#5c7773;line-height:1.7;max-width:800px}.yd-eyebrow{color:#168274;font-size:12px;font-weight:800;letter-spacing:.12em}.yd-head-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.yd-head-actions button{white-space:nowrap}
.yd-bridge-body{padding:18px 22px 22px}.yd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin-bottom:14px}.yd-stats>div{padding:13px 14px;border:1px solid #dfecea;border-radius:13px;background:#fbfefd}.yd-stats span{display:block;color:#718783;font-size:12px;margin-bottom:6px}.yd-stats b{font-size:21px;color:#173a36}
.yd-sync-times{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:14px}.yd-sync-times>div{padding:11px 14px;border:1px solid #dfeae8;border-radius:12px;background:#f8fbfb}.yd-sync-times span{display:block;color:#78908b;font-size:11px;margin-bottom:5px}.yd-sync-times b{font-size:13px;color:#274b45}.yd-sync-times.running>div:first-child{border-color:#5fb8aa;background:#eefaf7}.yd-sync-times.running>div:first-child b:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#168e78;animation:ydPulse 1s infinite alternate}@keyframes ydPulse{from{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.15)}}
.yd-settings,.yd-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid #dceae8;border-radius:13px;background:#fbfefd;margin-bottom:14px}.yd-settings label{display:flex;align-items:center;gap:6px;color:#4c6964}.yd-settings #ydNextSync{margin-left:auto;color:#718783;font-size:12px}.yd-settings .yd-folder{flex:1;min-width:280px}.yd-settings .yd-folder input{flex:1;min-width:180px}.yd-filters label{display:grid;gap:5px;color:#5f7772;font-size:12px;font-weight:700}.yd-filters label.grow{flex:1;min-width:240px}.yd-filters input{width:100%;min-width:220px}.yd-filters .yd-time-extra input{min-width:180px}.yd-filters .yd-time-extra.hidden{display:none}
.yd-settings .yd-sync-mode-tip{flex-basis:100%;display:block;padding:9px 11px;border:1px solid #cfe8e3;border-radius:10px;background:#f0faf8;color:#456b64;font-size:12px;line-height:1.6}
.yd-settings .yd-price-floor{white-space:nowrap}.yd-settings .yd-price-floor input{width:104px;min-width:0}.yd-settings .yd-price-floor-tip{flex-basis:100%;padding:8px 11px;border-left:3px solid #d69b28;border-radius:8px;background:#fff9ec;color:#76591d;font-size:12px;line-height:1.55}.yd-low-value-row{background:#fffafb}.yd-refund-row{background:#fff6f7}.yd-low-value-reason{color:#b93349!important;font-weight:700;line-height:1.5}
.yd-source-row{display:flex;gap:12px;align-items:center;margin-bottom:14px}.yd-session{display:flex;gap:10px;align-items:flex-start;flex:1;padding:12px 14px;border-radius:12px;background:#f5f7f7;color:#526b67;line-height:1.5}.yd-session i{width:9px;height:9px;border-radius:50%;background:#d14a5e;margin-top:7px;flex:0 0 auto}.yd-session.warn i{background:#df9918}.yd-session.ok i{background:#168e61}.yd-session b,.yd-session small{display:block}.yd-session small{color:#80918e;margin-top:2px}.yd-session-actions{display:flex;gap:8px;flex-wrap:wrap}
.yd-note{padding:12px 14px;border:1px solid #cce9e4;border-radius:12px;background:#f0faf8;color:#3f665f;margin-bottom:14px;line-height:1.6}.yd-note b{color:#146f64}.yd-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0 10px}.yd-toolbar h3{margin:0;color:#1d3e39}.yd-toolbar p{margin:3px 0 0;color:#798d89;font-size:13px}.yd-toolbar .actions{display:flex;gap:8px;flex-wrap:wrap}
.yd-pool-panel{margin:4px 0 22px}.yd-pool-kpis{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin-bottom:14px}.yd-pool-kpis>div{padding:13px 14px;border:1px solid #dfecea;border-radius:13px;background:linear-gradient(145deg,#fbfefd,#f3faf8)}.yd-pool-kpis span{display:block;color:#718783;font-size:12px;margin-bottom:6px}.yd-pool-kpis b{font-size:19px;color:#173a36}.yd-model-section{margin:0 0 14px;border:1px solid #dfeae8;border-radius:13px;background:#fff;overflow:hidden}.yd-model-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f6fbfa;border-bottom:1px solid #e2ecea}.yd-model-head h3{margin:0;color:#21443e}.yd-model-head p{margin:3px 0 0;color:#7e918d;font-size:12px}.yd-model-head>span{color:#17796c;font-weight:800}.yd-model-stats{max-height:290px;overflow:auto}.yd-model-stats table{width:100%;border-collapse:collapse}.yd-model-stats th{position:sticky;top:0;background:#fbfdfd;color:#667e79;font-size:12px;text-align:left;padding:9px 12px;border-bottom:1px solid #e2ecea}.yd-model-stats td{padding:9px 12px;border-bottom:1px solid #edf2f1;color:#36514c;font-size:13px}.yd-model-stats tr:last-child td{border-bottom:0}.yd-status-footer{display:flex;justify-content:space-between;gap:12px;color:#728984;font-size:12px}.yd-table-wrap{overflow:auto;border:1px solid #dfeae8;border-radius:13px;max-height:540px}.yd-table{width:100%;border-collapse:collapse;min-width:1320px}.yd-table th{position:sticky;top:0;z-index:1;background:#f2f8f7;color:#536d68;font-size:12px;text-align:left;padding:10px;border-bottom:1px solid #dce7e5}.yd-table td{padding:10px;border-bottom:1px solid #ebf1f0;color:#2c4641;font-size:13px;vertical-align:top}.yd-table td>b{display:block;margin-top:4px}.yd-table tr:last-child td{border-bottom:0}.yd-table small{display:block;color:#899995;margin-top:4px}.yd-table select{max-width:220px}.yd-empty{text-align:center!important;color:#849692!important;padding:30px!important}
.yd-map-input{width:210px;max-width:100%;padding:6px 8px;border:1px solid #cfdedb;border-radius:7px;background:#fff;font-size:12px}.yd-map-input+button{margin-top:5px}
.yd-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#edf3f2;color:#657a76;font-size:12px}.yd-badge.ok{background:#e4f6ef;color:#128159}.yd-badge.warn{background:#fff3db;color:#a36800}.yd-badge.error{background:#ffecef;color:#b93349}.yd-footer{display:flex;justify-content:space-between;gap:10px;margin-top:12px;color:#788b87;font-size:12px}.yd-message{font-size:13px}.yd-message.ok{color:#128159}.yd-message.error{color:#be344a}
@media(max-width:1200px){.yd-stats{grid-template-columns:repeat(4,1fr)}.yd-sync-times{grid-template-columns:repeat(2,1fr)}.yd-pool-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.yd-bridge-head{display:block}.yd-head-actions{justify-content:flex-start;margin-top:14px}.yd-source-row{align-items:stretch;flex-direction:column}.yd-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.yd-bridge-head,.yd-bridge-body{padding:16px}.yd-stats,.yd-sync-times,.yd-pool-kpis{grid-template-columns:1fr 1fr}.yd-toolbar{align-items:flex-start;flex-direction:column}.yd-footer,.yd-status-footer{display:block}.yd-settings .yd-folder{min-width:100%}.yd-model-head{align-items:flex-start;flex-direction:column}}

/* Batch 02: total-control desktop, tablet and mobile layout */
.control-filter-panel{grid-template-columns:minmax(0,1fr)!important;gap:14px}
.control-filter-panel>#controlUnifiedFilters,
.control-filter-panel>.control-filter-group,
.control-filter-panel>.control-filter-advanced,
.control-filter-panel>.control-action-bar{grid-column:1/-1;min-width:0}
#controlUnifiedFilters{padding:16px 17px;background:linear-gradient(145deg,#fff 0%,#f7faff 58%,#f2fbfa 100%)}
#controlUnifiedFilters .control-unified-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) minmax(250px,1.55fr);gap:12px;align-items:end}
#controlUnifiedFilters .control-unified-filter-grid label{min-width:0}
#controlUnifiedFilters select,#controlUnifiedFilters input{width:100%;min-width:0}
.control-unified-timebar{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(430px,1.9fr) repeat(2,minmax(170px,.75fr));gap:10px 12px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.24)}
.control-unified-timebar>label{min-width:0}
.control-quick-date-buttons{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:0;padding:2px 0}
.control-quick-date-buttons button{flex:0 0 auto;min-height:38px;padding:7px 13px;border-radius:10px;white-space:nowrap}
.control-quick-date-buttons button.active{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:transparent;box-shadow:0 5px 14px rgba(37,99,235,.24)}
.control-statistics-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;align-items:end}
.control-filter-group-head span{max-width:72%;text-align:right;line-height:1.45}
.control-mobile-table-hint{display:none}

@media(max-width:1260px){
  #controlUnifiedFilters .control-unified-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #controlUnifiedFilters .control-unified-filter-grid .grow{grid-column:span 2}
  .control-unified-timebar{grid-template-columns:minmax(170px,.55fr) minmax(0,1.45fr) repeat(2,minmax(170px,.65fr))}
}
@media(max-width:920px){
  #controlUnifiedFilters .control-unified-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #controlUnifiedFilters .control-unified-filter-grid .grow{grid-column:1/-1}
  .control-unified-timebar{grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr)}
  .control-statistics-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .control-action-bar{align-items:stretch}
  .control-action-primary,.control-action-secondary{width:100%}
}
@media(max-width:680px){
  .control-card{padding:12px!important;border-radius:14px}
  .control-card>.step-title{gap:10px;margin-bottom:12px}
  .control-card>.step-title>b{width:30px;height:30px;flex:0 0 30px}
  .control-card>.step-title h2{font-size:18px}
  .control-card>.step-title p{font-size:12px;line-height:1.55}
  .control-filter-panel{gap:10px;margin-top:8px}
  #controlUnifiedFilters,.control-filter-panel>.control-filter-group{padding:12px}
  .control-filter-group-head{align-items:flex-start;flex-direction:column;gap:3px;margin-bottom:9px}
  .control-filter-group-head span{max-width:none;text-align:left;font-size:10px}
  #controlUnifiedFilters .control-unified-filter-grid{grid-template-columns:minmax(0,1fr);gap:9px}
  #controlUnifiedFilters .control-unified-filter-grid .grow{grid-column:auto}
  .control-filter-panel input,.control-filter-panel select{min-height:44px;font-size:16px}
  .control-unified-timebar{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin-top:12px;padding-top:12px}
  .control-quick-date-buttons{width:100%;overflow-x:auto;flex-wrap:nowrap;padding:2px 1px 7px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .control-quick-date-buttons::-webkit-scrollbar{display:none}
  .control-quick-date-buttons button{min-height:42px;padding:8px 14px;scroll-snap-align:start}
  .control-statistics-grid,.control-filter-advanced-grid{grid-template-columns:minmax(0,1fr)!important}
  .control-filter-panel .check{min-height:44px}
  .control-filter-advanced>summary{align-items:flex-start;padding:12px}
  .control-filter-advanced>summary>span:first-child{min-width:0}
  .control-filter-summary-action{flex:0 0 auto}
  .control-filter-advanced-grid{padding:10px 12px 12px}
  .control-action-bar{display:grid;padding:10px;gap:10px}
  .control-action-primary,.control-action-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .control-action-bar button{width:100%;min-height:44px;padding:8px 7px;white-space:normal;line-height:1.25}
  #refreshControlBtn{grid-column:1/-1}
  .control-valuation-status{grid-column:1/-1;text-align:center}
  #controlCrosshairBtn{display:none}
  .control-active-filters{overflow-x:auto;flex-wrap:nowrap;margin:7px 0 9px;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .control-active-filters::-webkit-scrollbar{display:none}
  .control-active-filters span{flex:0 0 auto}
  .control-period-row{display:block!important}
  .control-period{font-size:10px;line-height:1.55;overflow-wrap:anywhere}
  .control-inline-save-status{display:inline-flex;margin-top:5px}
  .control-mobile-table-hint{display:block;margin:7px 2px 6px;color:#64748b;font-size:11px}
  .control-display-wrap{height:min(64vh,620px);overscroll-behavior:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
  #controlDisplayHead th:first-child{position:sticky!important;left:0!important;z-index:12!important;box-shadow:2px 0 0 rgba(148,163,184,.25)}
  #controlDisplayBody td:first-child{position:sticky;left:0;z-index:3;background:#fff!important;box-shadow:2px 0 0 rgba(148,163,184,.2)}
  #controlDisplayBody tr:nth-child(even) td:first-child{background:#f8fafc!important}
}
@media(max-width:420px){
  .control-action-primary,.control-action-secondary{grid-template-columns:minmax(0,1fr)}
  #refreshControlBtn,.control-valuation-status{grid-column:auto}
  .control-kpis{gap:8px!important}
  .control-kpis .kpi{padding:11px}
  .control-kpis .kpi b{font-size:20px}
}

/* Batch 08: 促销宝自动价格同步 */
.promo-sync-card{border-color:#d7dcff;background:linear-gradient(145deg,#fff 0%,#f5f6ff 100%)}
.promo-sync-card .erp-module-icon{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff}
.promo-sync-panel{border-color:#d9ddff;box-shadow:0 14px 36px rgba(79,70,229,.09)}
.promo-sync-panel>.yd-bridge-head{background:linear-gradient(120deg,#f3f2ff,#fff);border-bottom-color:#e5e6fb}
.promo-sync-panel .yd-eyebrow{color:#5b4bd9}
.promo-stats{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:10px;margin-bottom:14px}
.promo-stats>div{padding:13px 14px;border:1px solid #e1e3f4;border-radius:13px;background:linear-gradient(145deg,#fff,#f7f7ff)}
.promo-stats span{display:block;color:#777b98;font-size:12px;margin-bottom:6px}
.promo-stats b{display:block;color:#343659;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.promo-settings select{min-width:118px}
.promo-shop-sessions{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;margin:0 0 14px}
.promo-shop-session{display:flex;min-width:0;min-height:156px;padding:13px;border:1px solid #e1e3f4;border-radius:14px;background:linear-gradient(145deg,#fff,#f8f8ff);flex-direction:column;justify-content:space-between;gap:12px}
.promo-shop-session.ok{border-color:#b9e2d1;background:linear-gradient(145deg,#fff,#f3fbf7)}.promo-shop-session.warn{border-color:#ecd9a8;background:linear-gradient(145deg,#fff,#fffaf0)}.promo-shop-session.error{border-color:#efc0c8;background:linear-gradient(145deg,#fff,#fff5f6)}
.promo-shop-state{display:flex;gap:9px;min-width:0}.promo-shop-state i{width:9px;height:9px;margin-top:6px;border-radius:50%;background:#df9918;flex:0 0 auto}.promo-shop-session.ok .promo-shop-state i{background:#168e61}.promo-shop-session.error .promo-shop-state i{background:#d14a5e}
.promo-shop-state>div{min-width:0}.promo-shop-state b,.promo-shop-state strong,.promo-shop-state small{display:block;overflow:hidden;text-overflow:ellipsis}.promo-shop-state b{color:#555a77;font-size:12px;white-space:nowrap}.promo-shop-state strong{margin-top:5px;color:#2f3152;font-size:14px;line-height:1.45}.promo-shop-state small{margin-top:4px;color:#80849e;font-size:11px;line-height:1.45;word-break:break-all}
.promo-shop-state .promo-shop-detail{margin-top:7px;padding-top:7px;border-top:1px dashed rgba(89,94,130,.18);color:#6e728e;word-break:break-word}.promo-shop-session.error .promo-shop-detail{color:#b23b50}.promo-shop-session.ok .promo-shop-detail{color:#32745d}
.promo-shop-actions{display:flex;gap:7px;flex-wrap:wrap}.promo-shop-actions button{flex:1;min-width:76px}
.promo-freshness{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:0 0 14px;padding:12px 14px;border:1px solid #dedff3;border-radius:12px;background:#f8f8ff;color:#676b88;font-size:12px}
.promo-freshness b{color:#4338ca;font-size:13px}.promo-freshness span:last-child{flex:1;min-width:260px;text-align:right}
.promo-log-table{max-height:330px}.promo-log-table .yd-table{min-width:980px}
.promo-log-table .yd-table th:nth-child(8),.promo-log-table .yd-table td:nth-child(8){min-width:320px}
.promo-log-pager{display:flex;align-items:center;gap:8px;color:#73847f;font-size:12px}.promo-log-pager button:disabled{opacity:.45;cursor:not-allowed}.promo-sync-detail{margin:14px 0}.promo-detail-disclosure{border:1px solid #dce9e6;border-radius:13px;background:#fbfefd;overflow:hidden}.promo-detail-disclosure>summary{padding:12px 14px;cursor:pointer;color:#24574e;font-weight:800;list-style-position:inside}.promo-detail-disclosure>summary::marker{color:#16947e}.promo-detail-summary{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 12px;color:#637672;font-size:12px}.promo-detail-summary span{padding:5px 8px;border-radius:7px;background:#f0f7f5}.promo-detail-disclosure details{margin:0 12px 10px;border:1px solid #e3eeeb;border-radius:9px;background:#fff}.promo-detail-disclosure details>summary{padding:9px 11px;cursor:pointer;color:#49645f;font-size:12px;font-weight:700}.promo-detail-disclosure .yd-table-wrap{max-height:320px;border:0;border-top:1px solid #e8f0ee;border-radius:0}.promo-detail-disclosure .yd-table{min-width:760px}.promo-detail-disclosure small{display:block;padding:7px 12px;color:#869691}.promo-detail-disclosure .negative{color:#c2413b;font-weight:700}.promo-detail-disclosure .positive{color:#1b8063;font-weight:700}.promo-detail-flash .promo-detail-disclosure{animation:promo-detail-arrived 1.1s ease-out}@keyframes promo-detail-arrived{0%{border-color:#16a085;box-shadow:0 0 0 5px rgba(22,160,133,.14)}100%{border-color:#dce9e6;box-shadow:none}}
.promo-log-wrap{margin-top:14px;border:1px solid #dce9e6;border-radius:13px;background:#fbfefd;overflow:hidden}.promo-log-wrap>summary{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style-position:inside;color:#24574e}.promo-log-wrap>summary::marker{color:#16947e}.promo-log-wrap>summary h3{margin:0;font-size:15px}.promo-log-wrap>summary p{margin:4px 0 0;color:#71827e;font-size:12px}.promo-log-toggle{margin-left:auto;color:#16947e;font-size:12px}.promo-log-wrap[open] .promo-log-toggle{font-size:0}.promo-log-wrap[open] .promo-log-toggle::after{content:'收起记录';font-size:12px}.promo-log-content{padding:0 14px 14px}.promo-log-content>.promo-log-pager{justify-content:flex-end;margin-bottom:10px}
@media(max-width:1300px){.promo-shop-sessions{grid-template-columns:repeat(3,minmax(190px,1fr))}}
@media(max-width:1200px){.promo-stats{grid-template-columns:repeat(4,minmax(105px,1fr))}}
@media(max-width:820px){.promo-shop-sessions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.promo-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.promo-shop-sessions{grid-template-columns:1fr}.promo-shop-session{min-height:0}.promo-settings{align-items:stretch}.promo-settings label,.promo-settings button{width:100%}.promo-settings select{width:100%;min-height:44px}.promo-freshness{align-items:flex-start;flex-direction:column}.promo-freshness span:last-child{min-width:0;text-align:left}.promo-sync-panel .yd-status-footer{display:grid;gap:7px}}
