
/* ── PLC Simulator ── */
.plc-toolbar { display:flex; align-items:center; gap:20px; padding:10px 16px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:10px; margin-bottom:12px; flex-wrap:wrap; }
.plc-toolbar__group { display:flex; align-items:center; gap:8px; }
.plc-toolbar__label { font-size:0.75rem; color:#94a3b8; white-space:nowrap; }
.plc-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 14px; border-radius:6px; border:1px solid rgba(255,255,255,0.15); background:rgba(255,255,255,0.06); color:#e2e8f0; font-size:0.78rem; cursor:pointer; transition:all 0.15s; }
.plc-btn:hover:not(:disabled) { background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.25); }
.plc-btn:disabled { opacity:0.4; cursor:not-allowed; }
.plc-btn--run { background:rgba(34,197,94,0.2); border-color:rgba(34,197,94,0.4); color:#4ade80; }
.plc-btn--run:hover:not(:disabled) { background:rgba(34,197,94,0.3); }
.plc-btn--stop { background:rgba(239,68,68,0.2); border-color:rgba(239,68,68,0.4); color:#f87171; }
.plc-btn--stop:hover:not(:disabled) { background:rgba(239,68,68,0.3); }
.plc-btn--sm { padding:4px 10px; font-size:0.7rem; }
.plc-btn--icon { padding:4px 8px; font-size:0.85rem; min-width:32px; justify-content:center; }
.plc-select { padding:5px 8px; border-radius:5px; border:1px solid rgba(255,255,255,0.15); background:rgba(255,255,255,0.06); color:#e2e8f0; font-size:0.75rem; }
.plc-status { font-size:0.75rem; padding:2px 10px; border-radius:10px; font-weight:600; }
.plc-status--idle { background:rgba(100,116,139,0.2); color:#94a3b8; }
.plc-status--running { background:rgba(34,197,94,0.2); color:#4ade80; }
.plc-status--error { background:rgba(239,68,68,0.2); color:#f87171; }
.plc-scan-count { font-size:0.8rem; color:#e2e8f0; font-family:monospace; min-width:40px; }

.plc-editor { display:grid; grid-template-columns:200px 1fr 360px; gap:12px; min-height:520px; }
@media (max-width:1024px) { .plc-editor { grid-template-columns:180px 1fr; } .plc-vars { grid-column:1/-1; } }
@media (max-width:760px) { .plc-editor { grid-template-columns:1fr; } }

.plc-palette { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:10px; max-height:600px; overflow-y:auto; }
.plc-palette__title { font-size:0.8rem; font-weight:700; color:#e2e8f0; margin-bottom:8px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,0.1); }
.plc-palette__section { font-size:0.62rem; color:#64748b; text-transform:uppercase; letter-spacing:0.05em; margin:10px 0 6px; }
.plc-palette__item { display:flex; align-items:center; gap:8px; padding:5px 6px; border-radius:6px; cursor:grab; transition:background 0.12s; border:1px solid transparent; }
.plc-palette__item:hover { background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.1); }
.plc-palette__item:active { cursor:grabbing; }
.plc-palette__icon { flex-shrink:0; display:flex; align-items:center; justify-content:center; width:36px; height:26px; }
.plc-palette__item span { font-size:0.68rem; color:#cbd5e1; }
.plc-block-icon { font-family:monospace; font-size:0.6rem; font-weight:700; color:#60a5fa; background:rgba(59,130,246,0.15); border:1px solid rgba(59,130,246,0.3); border-radius:3px; width:38px; height:20px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

.plc-canvas-wrapper { background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:12px; overflow:auto; max-height:600px; }
.plc-canvas { display:flex; flex-direction:column; gap:4px; min-width:100%; }
.plc-rung { display:flex; align-items:stretch; gap:4px; min-height:42px; position:relative; transition:opacity 0.15s; }
.plc-rung__grip { display:flex; align-items:center; justify-content:center; width:16px; color:#334155; cursor:grab; font-size:0.65rem; flex-shrink:0; letter-spacing:-2px; user-select:none; opacity:0.4; transition:opacity 0.15s; }
.plc-rung:hover .plc-rung__grip { opacity:1; color:#94a3b8; }
.plc-rung__grip:active { cursor:grabbing; color:#e2e8f0; }
.plc-rung--dragging { opacity:0.4; }
.plc-rung--drop-target { border-top:2px solid #3b82f6; }
.plc-rung__label { font-size:0.65rem; color:#475569; font-family:monospace; width:24px; text-align:right; flex-shrink:0; padding-top:14px; }
.plc-rung__body { display:flex; align-items:stretch; flex:1; min-height:42px; }
.plc-rung__rail { width:3px; align-self:stretch; background:#475569; flex-shrink:0; border-radius:1px; }
.plc-rung__content { display:flex; align-items:center; gap:0; flex:1; min-height:42px; padding:6px 4px; flex-wrap:wrap; }
.plc-rung__content--empty { justify-content:center; }
.plc-rung__placeholder { font-size:0.72rem; color:#475569; font-style:italic; }
.plc-rung__delete { position:absolute; right:-2px; top:50%; transform:translateY(-50%); width:22px; height:22px; border-radius:50%; border:1px solid rgba(239,68,68,0.4); background:rgba(239,68,68,0.15); color:#f87171; font-size:0.6rem; cursor:pointer; display:none; align-items:center; justify-content:center; }
.plc-rung:hover .plc-rung__delete { display:flex; }
.plc-addrung { padding:8px; border:1px dashed rgba(255,255,255,0.15); background:transparent; color:#64748b; border-radius:6px; cursor:pointer; font-size:0.75rem; transition:all 0.12s; }
.plc-addrung:hover { border-color:rgba(255,255,255,0.3); color:#94a3b8; }

.plc-element { display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative; cursor:pointer; border:1px solid transparent; border-radius:3px; padding:0 1px; transition:border-color 0.12s; }
.plc-element::before, .plc-element::after { content:''; position:absolute; top:50%; transform:translate(-50%,-50%); width:5px; height:5px; border-radius:50%; background:#64748b; z-index:1; }
.plc-element::before { left:0; }
.plc-element::after { left:100%; }
.plc-element:hover { border-color:rgba(59,130,246,0.4); }
.plc-element--selected { border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,0.2); }
.plc-element--dragging { opacity:0.3; }
.plc-element__del { display:none; position:absolute; top:-8px; right:-8px; width:18px; height:18px; line-height:17px; text-align:center; font-size:12px; color:#fff; background:#ef4444; border-radius:50%; cursor:pointer; z-index:10; }
.plc-element--selected .plc-element__del { display:block; }
.plc-element__del:hover { background:#dc2626; transform:scale(1.15); }
.plc-element__var { position:absolute; top:-16px; left:50%; transform:translateX(-50%); font-size:0.6rem; color:#94a3b8; font-family:monospace; white-space:nowrap; pointer-events:none; }
.plc-element__var--editing { pointer-events:auto; }
.plc-element__var-input { font-size:0.6rem; color:#e2e8f0; background:rgba(0,0,0,0.5); border:1px solid #3b82f6; border-radius:3px; padding:1px 3px; width:72px; text-align:center; font-family:monospace; }
.plc-element__wire { height:1.5px; background:#64748b; flex:1 0 30px; min-width:8px; max-width:50px; border-radius:1px; }
.plc-element__wire--trail { max-width:none; flex:2 0 10px; }
.plc-element__wire--coil { flex:1 0 50px; max-width:70px; }
.plc-element--energized .plc-element__wire { background:#4ade80; box-shadow:0 0 4px rgba(74,222,128,0.4); }
.plc-element--forced { border-color:#06b6d4 !important; outline:2px solid rgba(6,182,212,0.5); }
.plc-element--forced::before, .plc-element--forced::after { background:#06b6d4 !important; }
.plc-element--forced.plc-element--energized { outline-color:rgba(74,222,128,0.5); }
.plc-element--energized::before, .plc-element--energized::after { background:#4ade80; }
.plc-element svg { pointer-events:none; }
.plc-element--energized svg line, .plc-element--energized svg path { stroke:#4ade80 !important; }
.plc-element--energized .plc-element__var { color:#4ade80; }

.plc-block { display:flex; flex-direction:column; border:1px solid rgba(59,130,246,0.4); background:rgba(59,130,246,0.1); border-radius:4px; padding:4px 8px; min-width:80px; position:relative; }
.plc-block__name { font-family:monospace; font-size:0.68rem; font-weight:700; color:#60a5fa; text-align:center; margin-bottom:2px; }
.plc-block__pins { display:flex; justify-content:space-between; font-size:0.52rem; color:#64748b; font-family:monospace; gap:8px; }
.plc-block__pin { cursor:pointer; padding:0 2px; border-radius:2px; transition:all 0.12s; white-space:nowrap; }
.plc-block__pin:hover { background:rgba(59,130,246,0.15); color:#93c5fd; }
.plc-block__pin--active { color:#4ade80 !important; font-weight:600; }
.plc-block__pin--editing { position:relative; }
.plc-block__pin-input { font-size:0.48rem; color:#e2e8f0; background:rgba(0,0,0,0.6); border:1px solid #3b82f6; border-radius:2px; padding:0 2px; width:64px; font-family:monospace; position:absolute; top:0; left:0; z-index:5; }
.plc-block__pin-name { color:#475569; margin-right:1px; }

.plc-vars { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:10px; max-height:600px; overflow-y:auto; }
.plc-vars__title { font-size:0.8rem; font-weight:700; color:#e2e8f0; margin-bottom:8px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,0.1); }
.plc-vars__table { width:100%; border-collapse:collapse; font-size:0.7rem; table-layout:fixed; }
.plc-vars__table th { text-align:left; padding:4px 6px; color:#64748b; font-weight:600; border-bottom:1px solid rgba(255,255,255,0.08); overflow:hidden; text-overflow:ellipsis; }
.plc-vars__table td { padding:4px 6px; border-bottom:1px solid rgba(255,255,255,0.04); color:#cbd5e1; overflow:hidden; }
.plc-vars__table th:nth-child(1), .plc-vars__table td:nth-child(1) { width:auto; }
.plc-vars__table th:nth-child(2), .plc-vars__table td:nth-child(2) { width:72px; }
.plc-vars__table th:nth-child(3), .plc-vars__table td:nth-child(3) { width:68px; }
.plc-vars__table th:nth-child(4), .plc-vars__table td:nth-child(4) { width:56px; }
.plc-vars__table th:nth-child(5), .plc-vars__table td:nth-child(5) { width:52px; }
.plc-vars__table input, .plc-vars__table select { width:100%; padding:2px 4px; background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.1); border-radius:3px; color:#e2e8f0; font-size:0.68rem; font-family:monospace; box-sizing:border-box; }
.plc-vars__table select { appearance:auto; }
.plc-vars__table input:focus, .plc-vars__table select:focus { border-color:#3b82f6; outline:none; }
.plc-var-value { font-family:monospace; color:#4ade80; font-weight:600; }
.plc-var-toggle { display:inline-flex; align-items:center; gap:3px; font-size:0.62rem; color:#64748b; cursor:pointer; white-space:nowrap; }
.plc-var-toggle input { width:auto; flex-shrink:0; }

.plc-monitor { margin-top:16px; background:rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.1); border-radius:10px; padding:12px; }
.plc-monitor__title { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:0.8rem; font-weight:700; color:#e2e8f0; }
.plc-monitor__body { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:6px; }
.plc-monitor__item { padding:6px 8px; border-radius:5px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); font-size:0.68rem; font-family:monospace; }
.plc-monitor__item span { color:#64748b; }
.plc-monitor__item strong { float:right; color:#4ade80; }

.plc-rung__content.drag-over { background:rgba(59,130,246,0.08); border-radius:4px; }
.plc-parallel-branch { border:1px solid rgba(255,255,255,0.12); border-radius:4px; padding:4px 6px; margin:2px; display:flex; align-items:center; gap:2px; background:rgba(255,255,255,0.02); }

/* ── 使用说明卡片样式覆盖 ── */
#docs .resources-quick-link {
  cursor: default;
  min-height: auto;
  padding: 18px 20px;
}
#docs .resources-quick-link::after {
  display: none;
}
#docs .resources-quick-link:hover,
#docs .resources-quick-link:focus-visible {
  transform: none;
  box-shadow: none;
  background: #fff;
}
#docs .resources-quick-link strong {
  font-family: var(--font-mono);
  font-size: 0.88rem;
}
#docs .resources-quick-link span {
  font-size: 0.8rem;
}
#docs .resources-section {
  padding: 48px 0 60px;
}
#docs .resources-section__head {
  margin-bottom: 24px;
}
