/* ========== 基础重置 ========== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --side-bg:#0b1f3a;
  --side-bg2:#0a1830;
  --primary:#1d7cf2;
  --primary2:#13c2c2;
  --ok:#22c55e;
  --warn:#f59e0b;
  --danger:#ef4444;
  --text:#1f2d3d;
  --muted:#8492a6;
  --bg:#eef2f8;
  --border:#e3e8f0;
}
html,body{height:100%}
body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--text);background:var(--bg);font-size:14px}
a{color:var(--primary);text-decoration:none}
a:hover{opacity:.85}

/* ========== 登录页 ========== */
.login-body{overflow:hidden;position:relative;height:100vh;background:linear-gradient(135deg,#081a38 0%,#0d2b5c 55%,#0a3d6e 100%)}
.login-bg{position:absolute;inset:0}
.bg-grid{position:absolute;inset:0;
  background-image:linear-gradient(rgba(80,150,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(80,150,255,.08) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.bg-glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}
.g1{width:520px;height:520px;background:#1d7cf2;top:-160px;left:-120px}
.g2{width:460px;height:460px;background:#13c2c2;bottom:-180px;right:-100px}
.login-wrap{position:relative;z-index:2;height:100%;display:flex;align-items:center;justify-content:center;gap:90px}
.login-left{color:#fff}
.ll-title{font-size:40px;font-weight:800;letter-spacing:4px;text-shadow:0 0 30px rgba(60,150,255,.6)}
.ll-sub{font-size:26px;margin-top:10px;color:#9fd0ff;letter-spacing:8px}
.ll-points{list-style:none;margin-top:42px}
.ll-points li{font-size:16px;line-height:2.5;color:#cfe4ff}
.login-card{width:380px;background:rgba(255,255,255,.97);border-radius:16px;padding:38px 34px;
  box-shadow:0 30px 80px rgba(0,0,0,.45)}
.login-card h2{text-align:center;margin-bottom:24px;color:#0b2b5c;font-size:24px}
.login-card label{display:block;margin:14px 0 6px;color:#5b6b80;font-size:13px}
.login-card input{width:100%;height:42px;border:1px solid #d6deea;border-radius:8px;padding:0 12px;font-size:14px;outline:none}
.login-card input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,124,242,.12)}
.login-tip{text-align:center;color:var(--muted);font-size:12px;margin-top:16px}

/* ========== 布局 ========== */
.layout{display:flex;min-height:100vh}
.sidebar{width:222px;background:linear-gradient(180deg,var(--side-bg),var(--side-bg2));
  color:#c7d6ee;display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;bottom:0;left:0;z-index:50;
  box-shadow:2px 0 18px rgba(8,20,40,.25)}
.logo{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid rgba(120,170,255,.14)}
.logo-mark{font-size:30px}
.logo-text strong{display:block;color:#fff;font-size:15px;letter-spacing:1px}
.logo-text small{color:#7fa6d8;font-size:11px}
.menu{flex:1;overflow-y:auto;padding:8px 0 20px}
.menu::-webkit-scrollbar{width:0}
.menu-group{padding:14px 18px 6px;font-size:11px;color:#5f7ca8;letter-spacing:2px}
.menu-item{display:flex;align-items:center;gap:10px;padding:10px 18px;color:#b9cbe8;font-size:13.5px;
  border-left:3px solid transparent}
.menu-item:hover{background:rgba(60,130,240,.14);color:#fff}
.menu-item.active{background:linear-gradient(90deg,rgba(29,124,242,.35),rgba(29,124,242,.05));
  color:#fff;border-left-color:var(--primary2)}
.mi-icon{font-size:15px;width:18px;text-align:center}
.main{flex:1;margin-left:222px;display:flex;flex-direction:column;min-width:0}
.topbar{height:58px;background:#fff;display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;box-shadow:0 1px 8px rgba(20,45,90,.08);position:sticky;top:0;z-index:40}
.crumb{font-size:16px;font-weight:700;color:#0b2b5c}
.top-right{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:13px}
.user-chip{color:#3d5170}
.btn-mini{border:1px solid var(--border);border-radius:6px;padding:4px 12px;color:#5b6b80;font-size:12px}
.btn-mini:hover{border-color:var(--primary);color:var(--primary)}
.content{padding:20px 24px 40px;flex:1}

/* ========== 通用组件 ========== */
.card{background:#fff;border-radius:10px;padding:18px 20px;box-shadow:0 2px 12px rgba(20,45,90,.06);margin-bottom:16px}
.card-title{font-size:15px;font-weight:700;color:#0b2b5c;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.card-title::before{content:"";width:4px;height:15px;background:linear-gradient(var(--primary),var(--primary2));border-radius:2px}
.card-title .ct-extra{margin-left:auto;font-weight:400;font-size:13px}
.btn{display:inline-block;border:1px solid #d6deea;background:#fff;color:#3d5170;border-radius:7px;
  padding:8px 16px;font-size:13.5px;cursor:pointer;line-height:1.2}
.btn:hover{border-color:var(--primary);color:var(--primary)}
.btn-primary{background:linear-gradient(90deg,var(--primary),#3b9bff);border:none;color:#fff}
.btn-primary:hover{color:#fff;opacity:.92}
.btn-teal{background:linear-gradient(90deg,#0ea5a5,#13c2c2);border:none;color:#fff}
.btn-danger{color:var(--danger);border-color:#f3c0c0}
.btn-danger:hover{background:#fef2f2;color:var(--danger);border-color:var(--danger)}
.btn-sm{padding:5px 10px;font-size:12px;border-radius:6px}
.btn-block{width:100%;height:44px;font-size:16px;margin-top:22px}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{background:#f4f7fc;color:#5b6b80;font-weight:600;padding:11px 12px;text-align:left;
  border-bottom:1px solid var(--border);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid #eef1f6;color:#33455f}
.tbl tr:hover td{background:#f7faff}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.tbl .center{text-align:center}
.form-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.form-inline .fi{display:flex;flex-direction:column;gap:5px}
.form-inline label,.form-grid label{font-size:12px;color:#708099}
input.f,select.f,textarea.f{border:1px solid #d6deea;border-radius:7px;padding:8px 10px;font-size:13px;outline:none;background:#fff}
input.f:focus,select.f:focus,textarea.f:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,124,242,.1)}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px}
.form-grid .fg-full{grid-column:1/-1}
.form-grid input.f,.form-grid select.f,.form-grid textarea.f{width:100%}
.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;line-height:1.6;white-space:nowrap}
.badge-gray{background:#eef1f6;color:#6b7a90}
.badge-blue{background:#e6f1ff;color:#1d7cf2}
.badge-teal{background:#dcfbfb;color:#0d9494}
.badge-green{background:#e7f9ef;color:#16a34a}
.badge-amber{background:#fef3e0;color:#d97706}
.badge-red{background:#fdeaea;color:#dc2626}
.badge-purple{background:#f1eafe;color:#7c3aed}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px}
.flash-err{background:#fdeaea;color:#c03030;border:1px solid #f6caca}
.flash-ok{background:#e7f9ef;color:#15803d;border:1px solid #bfe8cf}
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.kpi{background:#fff;border-radius:10px;padding:16px 18px;box-shadow:0 2px 12px rgba(20,45,90,.06);
  position:relative;overflow:hidden}
.kpi .k-label{color:var(--muted);font-size:12.5px}
.kpi .k-val{font-size:27px;font-weight:800;color:#0b2b5c;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .k-unit{font-size:12px;color:var(--muted);font-weight:400;margin-left:3px}
.kpi .k-trend{font-size:12px;margin-top:4px}
.kpi .k-ico{position:absolute;right:12px;top:12px;font-size:30px;opacity:.13}
.up{color:var(--ok)}.down{color:var(--danger)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.muted{color:var(--muted)}
.right{text-align:right}
.mt8{margin-top:8px}.mt16{margin-top:16px}
.progress{height:8px;background:#eef1f6;border-radius:6px;overflow:hidden}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:6px}
.pager{margin-top:14px;color:var(--muted);font-size:13px}
.empty{text-align:center;color:var(--muted);padding:36px 0}
.tag-mini{font-size:11px;padding:1px 6px;border-radius:4px;background:#eef1f6;color:#6b7a90}
.tick{font-size:13px}.tick.ok{color:var(--ok)}.tick.no{color:var(--danger)}

/* ========== 打印 ========== */
.print-bar{margin-bottom:14px;display:flex;gap:10px;align-items:center}
@media print{
  .sidebar,.topbar,.print-bar,.flash,.btn-mini{display:none !important}
  .main{margin-left:0}
  .content{padding:0}
  .card{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid}
  body{background:#fff}
  .no-print{display:none !important}
}
@page{margin:14mm}

/* ========== 智能地磅 ========== */
.weigh-info{display:flex;gap:34px;flex-wrap:wrap;background:#f4f7fc;border-radius:8px;padding:12px 16px;font-size:13.5px}
.weigh-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.wc-item{display:flex;align-items:center;gap:16px;border:1px solid var(--border);border-radius:10px;padding:14px 18px}
.wc-plate{font-size:21px;font-weight:800;color:#0b4ea2;background:#e6f1ff;border-radius:8px;padding:8px 14px;white-space:nowrap}
.wc-meta{flex:1;font-size:13.5px;line-height:1.9}
/* 摄像头 */
.cam-box{border:1px solid #1d3f72;border-radius:10px;overflow:hidden;background:#08152d}
.cam-top{display:flex;align-items:center;gap:8px;background:#0d2348;color:#9fc0f5;font-size:12.5px;padding:8px 14px}
.rec-dot{width:9px;height:9px;border-radius:50%;background:#ff4d4f;animation:recBlink 1.2s infinite}
@keyframes recBlink{50%{opacity:.25}}
.cam-stage{position:relative;background:linear-gradient(180deg,#0a1f45,#06122a);padding:6px}
.cam-svg{width:100%;display:block;border-radius:6px}
.cam-plate{position:absolute;left:18px;bottom:18px;background:rgba(6,20,46,.82);border:1px solid #22e5a4;
  color:#9fd0ff;border-radius:6px;padding:6px 14px;font-size:14px;letter-spacing:1px}
.cam-plate.ok{color:#22e5a4}
.cam-bottom{display:flex;justify-content:space-between;background:#0d2348;color:#7fa6d8;font-size:12px;padding:8px 14px}
/* 控制台 */
.console-box{border:1px solid var(--border);border-radius:10px;padding:18px;background:linear-gradient(180deg,#fbfdff,#f2f6fc)}
.steps{display:flex;align-items:center;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:7px;font-size:13px;color:#8492a6;border:1px solid var(--border);
  border-radius:20px;padding:6px 13px;background:#fff;transition:all .3s}
.step-no{display:inline-flex;width:20px;height:20px;border-radius:50%;background:#e3e8f0;color:#8492a6;
  align-items:center;justify-content:center;font-size:12px;font-weight:700}
.step.on{color:#0d9488;border-color:#5ed7c4;background:#effcfb}
.step.on .step-no{background:#13c2c2;color:#fff}
.step-arrow{color:#b0becf}
/* LED 仪表 */
.led-screen{background:#07130d;border:1px solid #0e3d24;border-radius:10px;padding:16px 20px;margin-bottom:14px;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}
.led-row{display:flex;align-items:baseline;gap:10px;padding:3px 0;color:#5f7d6b;font-size:15px}
.led-row b{margin-left:auto;font-family:"Consolas","Courier New",monospace;font-size:34px;font-weight:700;
  color:#39e88f;text-shadow:0 0 12px rgba(57,232,143,.55);min-width:180px;text-align:right;font-variant-numeric:tabular-nums}
.led-row i{font-style:normal;color:#5f7d6b;font-size:13px}
.led-row.net b{color:#ffd24d;text-shadow:0 0 12px rgba(255,210,77,.5);font-size:40px}
/* 检测灯 */
.check-lights{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.cl{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12.5px;color:#8492a6;
  border:1px dashed var(--border);border-radius:8px;padding:10px 4px;background:#fff}
.cl .dot{width:14px;height:14px;border-radius:50%;background:#c7d2e0}
.cl i{font-style:normal;font-size:11px;color:#a0adbf}
.cl.ok{color:#15803d;border-style:solid;border-color:#b7e8c9;background:#f4fdf7}
.cl.ok .dot{background:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.7)}
.cl.ok i{color:#16a34a}
.cl.fail{color:#c03030;border-color:#f3c0c0;background:#fef6f6}
.cl.fail .dot{background:#ef4444}
.weigh-actions{display:flex;gap:12px;align-items:center}
.weigh-actions .btn{padding:10px 22px;font-size:15px}
.weigh-tip{margin-top:12px;font-size:12.5px;color:var(--muted)}

/* ========== 生产管理 ========== */
.new-plan summary{cursor:pointer;font-weight:700;color:var(--primary);padding:4px 0;user-select:none}
.new-plan summary::marker{color:var(--primary)}
.progress.green>span{background:linear-gradient(90deg,#18b26b,#52d98b)}
.progress.big{height:14px}
.progress.slim{height:6px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.mini-stats{margin-top:16px}
.mini-stats>div{background:#f4f7fc;border-radius:8px;padding:12px 16px}
.mini-stats span{display:block;font-size:12.5px;color:var(--muted)}
.mini-stats b{font-size:26px;color:#0b2b5c;font-variant-numeric:tabular-nums;margin-right:4px}
.mini-stats i{font-style:normal;color:var(--muted);font-size:12px}
table.kv{width:100%;border-collapse:collapse;font-size:13.5px}
table.kv th{width:110px;background:#f4f7fc;color:#4a5d78;text-align:right;padding:9px 12px;
  border:1px solid #e3eaf4;font-weight:600}
table.kv td{padding:9px 14px;border:1px solid #e3eaf4}
/* 产线卡 */
.line-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.line-card{border:1px solid var(--border);border-radius:10px;padding:16px 18px;background:#fff}
.line-card.run{border-color:#9ae6c4;box-shadow:0 0 0 2px rgba(24,178,107,.08)}
.lc-head{display:flex;align-items:center;justify-content:space-between}
.lc-head b{font-size:15px;color:#0b2b5c}
.run-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#15803d;
  background:#eafaf2;border-radius:14px;padding:3px 12px}
.run-tag i{width:8px;height:8px;border-radius:50%;background:#22c55e}
.run-tag .pulse{animation:pulseDot 1.3s infinite}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.run-tag.idle{color:#8492a6;background:#f2f5f9}
.run-tag.idle i{background:#b0beca}
.lc-params{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.lc-params>div{background:#08152d;color:#9fc0f5;border-radius:8px;padding:10px 12px;font-size:12.5px;text-align:center}
.lc-params b{display:block;font-size:20px;color:#39e88f;font-family:Consolas,monospace;margin-top:2px}
/* 在产计划 */
.mk-item{border:1px solid #e3eaf4;border-radius:8px;padding:12px 14px;margin-bottom:12px;background:#fcfdff}
.mk-head{display:flex;align-items:center;gap:10px;font-size:13.5px}
.mk-head .muted{font-size:12.5px}
.mk-nums{margin-left:auto;font-size:12.5px;color:#d97706;font-weight:600}
.mk-foot{display:flex;gap:16px;margin-top:7px;font-size:12.5px;color:#708099}
.mk-foot a{margin-left:auto;color:var(--primary)}
/* 发车流水 */
.trip-list{max-height:250px;overflow-y:auto}
.trip-item{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px dashed #e8edf5;font-size:13px}
.trip-time{font-family:Consolas,monospace;color:#0b4ea2;font-weight:700;width:42px}
.trip-plate{font-weight:700;width:86px}
.trip-net{margin-left:auto;font-weight:700;color:#0b2b5c;font-variant-numeric:tabular-nums}
/* 配方 */
.recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.recipe-card{margin:0}
.rc-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.rc-bar{display:flex;height:26px;border-radius:6px;overflow:hidden;margin-bottom:14px}
.rc-bar i{display:block;height:100%}
.rc-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px}
.slim-tbl{font-size:13px}
.slim-tbl th,.slim-tbl td{padding:7px 10px}
.slim-tbl tfoot td{font-weight:700;background:#f4f7fc}
.rc-note{font-size:12px;margin-top:10px;line-height:1.7}



/* ===== 财务结算模块 ===== */
.gen-stmt{background:linear-gradient(90deg,#f3f8ff,#f7fbff);border:1px solid #d8e6fa;border-radius:10px;padding:14px 16px;margin:12px 0 16px;align-items:center}
.gen-stmt .f{min-width:150px}
.row-muted td{color:#9aa6b8;text-decoration:line-through}
.form-grid .f{width:100%}

/* ===== 物料仓储 / 采购销售（s9） ===== */
.btn-red{background:#fff;color:#dc2626;border:1px solid #f3b4b4}
.btn-red:hover{background:#fef2f2;color:#dc2626}
button.btn-red{background:#dc2626;color:#fff;border:none}
button.btn-red:hover{opacity:.9}
.kpi-alert{border:1px solid #f5cf8a;box-shadow:0 0 0 3px rgba(217,119,6,.10)}
.kpi-danger{border:1px solid #f1a7aa;animation:pulseRed 1.8s ease-in-out infinite}
@keyframes pulseRed{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{box-shadow:0 0 0 4px rgba(220,38,38,.14)}}
.alert-bar{background:linear-gradient(90deg,#fff5f5,#fffaf0);border:1px solid #f5c2c2;border-left:4px solid #dc2626;
  border-radius:10px;padding:13px 18px;margin:0 0 16px;font-size:13.5px;color:#5b4b4b;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.alert-bar .btn{margin-left:auto}
.text-red{color:#dc2626}.text-amber{color:#d97706}
.row-danger>td{background:#fef3f3 !important}
.row-danger:hover>td{background:#fde8e8 !important}
.row-warn>td{background:#fffaf2 !important}
.row-warn:hover>td{background:#fff2e0 !important}
.danger-tag{margin-left:8px;animation:blinkTag 1.4s ease-in-out infinite}
@keyframes blinkTag{0%,100%{opacity:1}50%{opacity:.55}}
.stock-bar{height:9px;background:#eef1f6;border-radius:6px;overflow:hidden;margin-bottom:3px}
.stock-bar>span{display:block;height:100%;border-radius:6px;transition:width .4s}
.sb-ok{background:linear-gradient(90deg,#34d399,#16a34a)}
.sb-warn{background:linear-gradient(90deg,#fbbf24,#d97706)}
.sb-danger{background:linear-gradient(90deg,#f87171,#dc2626)}
.filter-bar{display:flex;align-items:center;gap:10px;font-size:13px;color:#5b6b85;margin:6px 0 12px}
.filter-bar .f{width:auto;min-width:180px}
.flow-form{background:#f6f9ff;border:1px solid #dce7f7;border-radius:10px;padding:14px 16px}
.flow-form .f{min-width:120px}
.lg-in,.lg-out{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 5px 0 12px;vertical-align:middle}
.lg-in{background:#13c2c2}.lg-out{background:#2f8fff}

/* ===== 硬件对接方案（integration） ===== */
.arch-diagram{display:flex;align-items:stretch;gap:4px;padding:8px 0}
.arch-col{flex:1;background:linear-gradient(160deg,rgba(18,55,115,.35),rgba(8,24,55,.4));
  border:1px solid rgba(90,170,255,.22);border-radius:10px;padding:14px 12px;display:flex;flex-direction:column;gap:6px}
.arch-col-title{text-align:center;font-weight:700;color:#cfe2ff;font-size:13px;margin-bottom:6px;
  padding-bottom:6px;border-bottom:1px dashed rgba(90,170,255,.2)}
.arch-node{background:rgba(20,55,110,.5);border:1px solid rgba(90,170,255,.15);border-radius:6px;
  padding:7px 10px;font-size:12.5px;color:#dbe4f5}
.arch-node b{margin-right:5px}
.arch-node.big{text-align:center;font-weight:700;padding:14px 10px}
.arch-node.big small{display:block;font-weight:400;font-size:11px;color:#9dbce8;margin-top:3px}
.arch-node.api-node{border-color:#13c2c2;background:rgba(19,194,194,.12)}
.arch-sub{font-size:11.5px;color:#8fb4e8;padding:3px 8px}
.arch-sub.code{font-family:Consolas,"SF Mono",monospace;color:#5ee7a7;font-size:11px}
.arch-tag{margin-top:auto;text-align:center;font-size:11px;color:#7fa6d8;padding:4px 0 0;
  border-top:1px dashed rgba(90,170,255,.15)}
.arch-arrow{display:flex;align-items:center;font-size:22px;color:#3d8bff;padding:0 2px;font-weight:700}
.api-list{margin:10px 0}
.api-item{display:flex;align-items:center;gap:10px;padding:8px 4px;
  border-bottom:1px dashed rgba(110,170,255,.13);font-size:13px}
.api-method{display:inline-block;width:52px;text-align:center;border-radius:4px;padding:3px 0;
  font-size:11px;font-weight:700;color:#fff}
.m-get{background:#16a34a}.m-post{background:#1d7cf2}
.api-path{font-family:Consolas,monospace;font-size:12.5px;color:#5ee7a7}
.api-desc{color:#8492a6;font-size:12px}
.api-example{margin-top:14px}
.ae-title{font-weight:700;color:#3d6fb0;font-size:13px;margin-bottom:6px}
.ae-block{background:#0d1f3a;border:1px solid rgba(90,170,255,.2);border-radius:8px;
  padding:12px 16px;overflow-x:auto}
.ae-block pre{margin:0;font-size:12.5px;color:#cfe2ff;font-family:Consolas,monospace;line-height:1.7;white-space:pre-wrap}
.ae-resp{color:#5ee7a7}
.integration-notes p{font-size:13px;color:#5b6b85;line-height:1.8;margin-bottom:10px}
.integration-notes b{color:#0b2b5c}
.integration-notes code{font-family:Consolas,monospace;background:#eef1f6;color:#1d7cf2;
  padding:1px 5px;border-radius:3px;font-size:12px}

/* ========== 大华设备配置步骤卡 ========== */
.dahua-config{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.dc-item{display:flex;gap:14px;background:linear-gradient(160deg,#f6f9ff,#eef3fb);
  border:1px solid #d6e1f0;border-left:3px solid #1d7cf2;border-radius:8px;padding:14px 16px}
.dc-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,#1d7cf2,#13c2c2);color:#fff;font-weight:700;font-size:15px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(29,124,242,.25)}
.dc-body{flex:1;line-height:1.8;font-size:13px;color:#3d4a5c}
.dc-body b{color:#0b2b5c;display:inline-block;margin-bottom:4px}
.dc-body code{font-family:Consolas,monospace;background:#eef1f6;color:#1d7cf2;
  padding:1px 6px;border-radius:3px;font-size:12px}
