/* BSW Architecture Animation — light theme for e-mo.com.pl */
.bsw-section { background: #f8f9fa; padding: 40px 0 20px; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.bsw-section h2 { text-align: center; color: #333; margin-bottom: 5px; }
.bsw-section .lead { text-align: center; color: #777; margin-bottom: 20px; font-size: 15px; }
.bsw-wrapper { display: flex; gap: 0; justify-content: center; flex-wrap: wrap; }

.bsw-container { position: relative; width: 580px; height: 580px; flex-shrink: 0; }

/* Central hub */
.bsw-container .hub { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.bsw-container .hub-outer { width: 120px; height: 120px; border-radius: 50%; background: radial-gradient(circle, #2a3a6a, #1a2555); border: 3px solid #3b5998; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; z-index: 10; }
.bsw-container .hub-outer .label { color: #8fa4d4; font-size: 10px; font-weight: 600; letter-spacing: 0.5px; margin-top: 3px; }
.bsw-container .hub-inner { width: 42px; height: 42px; border-radius: 50%; background: radial-gradient(circle, #3d2a5e, #2a1f43); border: 2px solid #7b4dbd; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }
.bsw-container .hub-inner .label { color: #b88de8; font-size: 8px; font-weight: 700; text-align: center; line-height: 1.1; }
.bsw-container .hub-inner.pulse { animation: bswHeartbeat 0.6s ease-in-out infinite; }
@keyframes bswHeartbeat {
    0%, 100% { transform: scale(1); border-color: #7b4dbd; box-shadow: 0 0 8px rgba(123,77,189,0.3); }
    50% { transform: scale(1.15); border-color: #a66df0; box-shadow: 0 0 20px rgba(166,109,240,0.5); }
}
.bsw-container .hub-glow { position: absolute; width: 160px; height: 160px; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(59,89,152,0.08), transparent 70%); z-index: 5; pointer-events: none; }

/* Nodes */
.bsw-container .node { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 4px; z-index: 10; cursor: default; }
.bsw-container .node-icon { width: 60px; height: 60px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; border: 2px solid; transition: all 0.4s; position: relative; }
.bsw-container .node-icon.active { transform: scale(1.1); }
.bsw-container .node-label { color: #555; font-size: 10px; font-weight: 600; text-align: center; max-width: 100px; }
.bsw-container .node-sublabel { color: #999; font-size: 8px; text-align: center; max-width: 110px; }

/* Node colors */
.bsw-container .node-emoms .node-icon { background: linear-gradient(135deg, #e8f5e9, #c8e6c9); border-color: #27ae60; color: #27ae60; }
.bsw-container .node-emoms .node-icon.active { box-shadow: 0 0 20px rgba(39,174,96,0.3); }
.bsw-container .node-shipping .node-icon { background: linear-gradient(135deg, #fff3e0, #ffe0b2); border-color: #e67e22; color: #e67e22; }
.bsw-container .node-shipping .node-icon.active { box-shadow: 0 0 20px rgba(230,126,34,0.3); }
.bsw-container .node-weberp .node-icon { background: linear-gradient(135deg, #e3f2fd, #bbdefb); border-color: #2980b9; color: #2980b9; }
.bsw-container .node-weberp .node-icon.active { box-shadow: 0 0 20px rgba(41,128,185,0.3); }
.bsw-container .node-shop .node-icon { background: linear-gradient(135deg, #ffebee, #ffcdd2); border-color: #c0392b; color: #c0392b; }
.bsw-container .node-shop .node-icon.active { box-shadow: 0 0 20px rgba(192,57,43,0.3); }
.bsw-container .node-zebra .node-icon { background: linear-gradient(135deg, #f3e5f5, #e1bee7); border-color: #8e44ad; color: #8e44ad; }
.bsw-container .node-zebra .node-icon.active { box-shadow: 0 0 20px rgba(142,68,173,0.3); }
.bsw-container .node-laser .node-icon { background: linear-gradient(135deg, #e0f2f1, #b2dfdb); border-color: #16a085; color: #16a085; }
.bsw-container .node-laser .node-icon.active { box-shadow: 0 0 20px rgba(22,160,133,0.3); }
.bsw-container .node-worker .node-icon { background: linear-gradient(135deg, #fffde7, #fff9c4); border-color: #f39c12; color: #f39c12; }
.bsw-container .node-worker .node-icon.active { box-shadow: 0 0 20px rgba(243,156,18,0.3); }

/* Gear */
.bsw-container .gear { display: none; position: absolute; top: -6px; right: -6px; font-size: 14px; color: inherit; }
.bsw-container .gear.spinning { display: block; animation: bswSpin 1s linear infinite; }
@keyframes bswSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Scan */
.bsw-container .scan-line { display: none; position: absolute; width: 45px; height: 2px; background: #f39c12; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 2px; box-shadow: 0 0 8px #f39c12; }
.bsw-container .scan-line.scanning { display: block; animation: bswScan 0.4s ease-in-out infinite alternate; }
@keyframes bswScan { from { transform: translate(-50%, -12px); } to { transform: translate(-50%, 12px); } }

/* Print */
.bsw-container .print-paper { position: absolute; bottom: -4px; left: 50%; transform: translateX(-50%); width: 30px; height: 0; background: white; border: 1px solid #ddd; border-radius: 1px; overflow: hidden; transition: height 0.8s ease-out; opacity: 0; }
.bsw-container .print-paper.printing { height: 35px; opacity: 1; }
.bsw-container .print-paper::after { content: ''; position: absolute; top: 4px; left: 4px; right: 4px; height: 1px; background: #999; box-shadow: 0 4px 0 #999, 0 8px 0 #999, 0 12px 0 #bbb; }

/* Positioning */
.bsw-container .node-emoms { top: 15px; left: 50%; transform: translateX(-50%); }
.bsw-container .node-shipping { top: 260px; right: 10px; }
.bsw-container .node-weberp { bottom: 20px; left: 50%; transform: translateX(-50%); }
.bsw-container .node-shop { bottom: 60px; left: 40px; }
.bsw-container .node-zebra { top: 160px; left: 10px; }
.bsw-container .node-laser { top: 90px; right: 75px; }
.bsw-container .node-worker { top: 70px; left: 110px; }

/* SVG */
.bsw-container svg.arrows { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 8; pointer-events: none; }
.bsw-container .arrow-path { fill: none; stroke: #ddd; stroke-width: 1.5; }
.bsw-container .arrow-path.active { stroke-width: 2.5; filter: drop-shadow(0 0 4px var(--glow-color)); }
.bsw-container .arrow-dot { r: 4; opacity: 0; }
.bsw-container .arrow-dot.moving { opacity: 1; }

/* Tooltips */
.bsw-container .bsw-tooltip { position: absolute; background: rgba(255,255,255,0.95); border: 1px solid; padding: 6px 12px; border-radius: 6px; font-size: 11px; font-weight: 600; opacity: 0; transition: opacity 0.3s; pointer-events: none; z-index: 20; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.bsw-container .bsw-tooltip.show { opacity: 1; }

/* Controls */
.bsw-controls { text-align: center; margin-top: 10px; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.bsw-btn { color: white; border: none; padding: 10px 20px; border-radius: 20px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.3s; }
.bsw-btn:hover { transform: scale(1.05); }
.bsw-btn:disabled { background: #ccc !important; cursor: default; transform: none; }
.bsw-btn-green { background: linear-gradient(135deg, #27ae60, #219a52); }
.bsw-btn-blue { background: linear-gradient(135deg, #2980b9, #2471a3); }
.bsw-btn-red { background: linear-gradient(135deg, #c0392b, #a93226); }

/* CMD panel */
.bsw-cmd { width: 300px; height: 580px; background: #1a1a2e; border: 1px solid #ddd; border-radius: 8px; font-family: 'Consolas', monospace; font-size: 10px; color: #ccc; display: flex; flex-direction: column; overflow: hidden; flex-shrink: 0; }
.bsw-cmd-title { background: #2d2d44; color: #aaa; padding: 4px 10px; font-size: 9px; border-bottom: 1px solid #444; }
.bsw-cmd-body { flex: 1; padding: 6px 8px; overflow-y: auto; line-height: 1.5; }
.bsw-cmd-body::-webkit-scrollbar { width: 4px; }
.bsw-cmd-body::-webkit-scrollbar-thumb { background: #444; border-radius: 2px; }
.bsw-cmd .cmd-line { opacity: 0; animation: bswCmdIn 0.3s forwards; }
.bsw-cmd .cmd-line .time { color: #555; }
.bsw-cmd .cmd-line .service { color: #e67e22; font-weight: 600; }
.bsw-cmd .cmd-line .action { color: #8fa4d4; }
.bsw-cmd .cmd-line .ok { color: #2ecc71; }
.bsw-cmd .cmd-line .err { color: #e74c3c; }
.bsw-cmd .cmd-line .info { color: #f1c40f; }
@keyframes bswCmdIn { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }

/* Step info */
.bsw-step { text-align: center; color: #999; font-size: 11px; height: 16px; }
